96 QRectF filterRectangle;
97 std::map<QString,std::map<osmscout::FileOffset,AdminRegionInfoRef>> adminRegionCache;
100 [
this](
const osmscout::GeoBox &b) {
108 const QList<LookupModule::ObjectInfo> &objects);
111 const QList<LookupModule::ObjectInfo> &objects);
114 const QString database,
115 const osmscout::LocationDescription description,
116 const QList<AdminRegionInfoRef> regions);
120 QList<AdminRegionInfoRef> adminRegionList);
165 static QStringList
AdminRegionNames(
const QList<AdminRegionInfoRef> ®ionList,
bool useAltNames);
181 void addObjectInfo(QList<ObjectInfo> &objectList,
183 const ObjectFileRef &ref,
184 const std::vector<osmscout::Point> &points,
185 const osmscout::GeoCoord ¢er,
187 const osmscout::FeatureValueBuffer &features,
188 const std::map<ObjectFileRef,LocationDescriptionService::ReverseLookupResult> &reverseLookupMap,
189 const DBInstanceRef &db,
190 std::map<osmscout::FileOffset,osmscout::AdminRegionRef> ®ionMap)
196 info.
objectType=QString::fromStdString(objectType->GetName());
197 info.
id=ref.GetFileOffset();
200 info.
name=QString::fromStdString(name->GetLabel(Locale(), 0));
204 info.
altLangName=QString::fromStdString(nameAlt->GetLabel(Locale(), 0));
208 info.
phone=QString::fromStdString(phone->GetPhone());
211 if (
const osmscout::WebsiteFeatureValue *website=features.findValue<osmscout::WebsiteFeatureValue>(); website!=
nullptr){
212 info.
website=QString::fromStdString(website->GetWebsite());
215 if (
const osmscout::OpeningHoursFeatureValue *openingHours=features.findValue<osmscout::OpeningHoursFeatureValue>(); openingHours!=
nullptr){
216 info.
openingHours=QString::fromStdString(openingHours->GetValue());
219 if (
const osmscout::AddressFeatureValue *address=features.findValue<osmscout::AddressFeatureValue>(); address!=
nullptr){
220 info.
addressNumber=QString::fromStdString(address->GetAddress());
223 if (
const auto &it=reverseLookupMap.find(ref); it!=reverseLookupMap.end()){
224 info.
adminRegionList=BuildAdminRegionList(db, it->second.adminRegion, regionMap);
225 info.
reverseLookupRef=std::make_shared<LocationDescriptionService::ReverseLookupResult>(it->second);
233 template<
class T>
void addObjectInfo(QList<ObjectInfo> &objectList,
235 const ObjectFileRef &ref,
236 const std::vector<osmscout::Point> &points,
237 const osmscout::GeoCoord ¢er,
239 const std::map<ObjectFileRef,LocationDescriptionService::ReverseLookupResult> &reverseLookupMap,
240 const DBInstanceRef &db,
241 std::map<osmscout::FileOffset,osmscout::AdminRegionRef> ®ionMap)
243 addObjectInfo(objectList,type,ref,points,center,o->GetType(),o->GetFeatureValueBuffer(),reverseLookupMap,db,regionMap);
246 void addObjectInfo(QList<ObjectInfo> &objectList,
248 const std::map<ObjectFileRef,LocationDescriptionService::ReverseLookupResult> &reverseLookupMap,
249 const DBInstanceRef &db,
250 std::map<osmscout::FileOffset,osmscout::AdminRegionRef> ®ionMap);
252 void addObjectInfo(QList<ObjectInfo> &objectList,
254 const std::map<ObjectFileRef,LocationDescriptionService::ReverseLookupResult> &reverseLookupMap,
255 const DBInstanceRef &db,
256 std::map<osmscout::FileOffset,osmscout::AdminRegionRef> ®ionMap);
258 void addObjectInfo(QList<ObjectInfo> &objectList,
260 const std::map<ObjectFileRef,LocationDescriptionService::ReverseLookupResult> &reverseLookupMap,
261 const DBInstanceRef &db,
262 std::map<osmscout::FileOffset,osmscout::AdminRegionRef> ®ionMap);
266 static QList<AdminRegionInfoRef> BuildAdminRegionInfoList(AdminRegionInfoRef &bottom,
267 std::map<osmscout::FileOffset,AdminRegionInfoRef> ®ionInfoMap);
269 static QList<AdminRegionInfoRef> BuildAdminRegionList(
const DBInstanceRef &db,
271 std::map<osmscout::FileOffset,osmscout::AdminRegionRef> ®ionMap);
273 void filterObjectInView(
const osmscout::MapData &data,
274 QList<ObjectInfo> &objectList);