1 #ifndef OSMSCOUT_CLIENT_QT_NEARPOIMODEL_H 2 #define OSMSCOUT_CLIENT_QT_NEARPOIMODEL_H 29 #include <QAbstractListModel> 33 #define INVALID_COORD -1000.0 44 Q_PROPERTY(
int count READ rowCount NOTIFY countChanged)
49 Q_PROPERTY(
bool searching READ isSearching NOTIFY SearchingChanged)
57 Q_PROPERTY(
double lat READ GetLat WRITE SetLat)
62 Q_PROPERTY(
double lon READ GetLon WRITE SetLon)
67 Q_PROPERTY(
double maxDistance READ GetMaxDistance WRITE SetMaxDistance)
72 Q_PROPERTY(
int resultLimit READ GetResultLimit WRITE SetResultLimit)
77 Q_PROPERTY(QStringList types READ GetTypes WRITE SetTypes)
81 LabelRole = Qt::UserRole,
82 TypeRole = Qt::UserRole +1,
83 RegionRole = Qt::UserRole +2,
84 LatRole = Qt::UserRole +3,
85 LonRole = Qt::UserRole +4,
86 DistanceRole = Qt::UserRole +5,
87 BearingRole = Qt::UserRole +6,
88 LocationObjectRole = Qt::UserRole +7
93 void countChanged(
int);
95 void SearchingChanged(
bool);
97 void lookupPOIRequest(
int requestId,
99 osmscout::GeoCoord searchCenter,
104 void onLookupFinished(
int requestId);
105 void onLookupResult(
int requestId, QList<LocationEntry> locations);
108 bool searching{
false};
109 int currentRequest{0};
110 QList<LocationEntryRef> locations;
112 int resultLimit{100};
114 Distance maxDistance{Distance::Of<Kilometer>(1)};
117 POILookupModule *poiModule{
nullptr};
121 virtual ~NearPOIModel();
123 Q_INVOKABLE
virtual QVariant data(
const QModelIndex &index,
int role)
const;
125 Q_INVOKABLE
virtual int rowCount(
const QModelIndex &parent = QModelIndex())
const;
127 Q_INVOKABLE
virtual Qt::ItemFlags flags(
const QModelIndex &index)
const;
129 Q_INVOKABLE QObject*
get(
int row)
const;
131 virtual QHash<int, QByteArray> roleNames()
const;
140 return searchCenter.GetLat();
145 if (lat!=searchCenter.GetLat()) {
146 searchCenter.Set(lat, searchCenter.GetLon());
153 return searchCenter.GetLon();
158 if (lon!=searchCenter.GetLon()){
159 searchCenter.Set(searchCenter.GetLat(), lon);
166 return maxDistance.AsMeter();
171 if (maxDistance.AsMeter()!=d){
172 maxDistance=Distance::Of<Meter>(d);
184 if (resultLimit!=limit){
209 #endif //OSMSCOUT_CLIENT_QT_NEARPOIMODEL_H double GetLon() const
Definition: NearPOIModel.h:151
#define OSMSCOUT_CLIENT_QT_API
Definition: ClientQtImportExport.h:45
std::shared_ptr< Breaker > BreakerRef
Definition: Breaker.h:65
void SetLat(double lat)
Definition: NearPOIModel.h:143
int GetResultLimit() const
Definition: NearPOIModel.h:177
QStringList GetTypes() const
Definition: NearPOIModel.h:190
double GetLat() const
Definition: NearPOIModel.h:138
#define INVALID_COORD
Definition: NearPOIModel.h:33
void SetLon(double lon)
Definition: NearPOIModel.h:156
Definition: NearPOIModel.h:38
double GetMaxDistance() const
Definition: NearPOIModel.h:164
void SetResultLimit(int limit)
Definition: NearPOIModel.h:182
bool isSearching() const
Definition: NearPOIModel.h:133
void SetTypes(QStringList t)
Definition: NearPOIModel.h:195
Roles
Definition: NearPOIModel.h:80
void SetMaxDistance(double d)
Definition: NearPOIModel.h:169