43 QML_NAMED_ELEMENT(Map)
44 QML_ADDED_IN_VERSION(5, 0)
45 Q_ENUMS(QGeoServiceProvider::Error)
46 Q_PROPERTY(QDeclarativeGeoServiceProvider *plugin READ plugin WRITE setPlugin NOTIFY pluginChanged)
47 Q_PROPERTY(qreal minimumZoomLevel READ minimumZoomLevel WRITE setMinimumZoomLevel NOTIFY minimumZoomLevelChanged)
48 Q_PROPERTY(qreal maximumZoomLevel READ maximumZoomLevel WRITE setMaximumZoomLevel NOTIFY maximumZoomLevelChanged)
49 Q_PROPERTY(qreal zoomLevel READ zoomLevel WRITE setZoomLevel NOTIFY zoomLevelChanged)
51 Q_PROPERTY(qreal tilt READ tilt WRITE setTilt NOTIFY tiltChanged)
52 Q_PROPERTY(qreal minimumTilt READ minimumTilt WRITE setMinimumTilt NOTIFY minimumTiltChanged)
53 Q_PROPERTY(qreal maximumTilt READ maximumTilt WRITE setMaximumTilt NOTIFY maximumTiltChanged)
55 Q_PROPERTY(qreal bearing READ bearing WRITE setBearing NOTIFY bearingChanged)
57 Q_PROPERTY(qreal fieldOfView READ fieldOfView WRITE setFieldOfView NOTIFY fieldOfViewChanged)
58 Q_PROPERTY(qreal minimumFieldOfView READ minimumFieldOfView WRITE setMinimumFieldOfView NOTIFY minimumFieldOfViewChanged)
59 Q_PROPERTY(qreal maximumFieldOfView READ maximumFieldOfView WRITE setMaximumFieldOfView NOTIFY minimumFieldOfViewChanged)
61 Q_PROPERTY(QGeoMapType activeMapType READ activeMapType WRITE setActiveMapType NOTIFY activeMapTypeChanged)
62 Q_PROPERTY(QList<QGeoMapType> supportedMapTypes READ supportedMapTypes NOTIFY supportedMapTypesChanged)
63 Q_PROPERTY(QGeoCoordinate center READ center WRITE setCenter NOTIFY centerChanged)
64 Q_PROPERTY(QList<QObject *> mapItems READ mapItems NOTIFY mapItemsChanged)
65 Q_PROPERTY(QGeoServiceProvider::Error error READ error NOTIFY errorChanged)
66 Q_PROPERTY(QString errorString READ errorString NOTIFY errorChanged)
67 Q_PROPERTY(QGeoShape visibleRegion READ visibleRegion WRITE setVisibleRegion NOTIFY visibleRegionChanged)
68 Q_PROPERTY(
bool copyrightsVisible READ copyrightsVisible WRITE setCopyrightsVisible NOTIFY copyrightsVisibleChanged)
69 Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged)
70 Q_PROPERTY(
bool mapReady READ mapReady NOTIFY mapReadyChanged)
71 Q_PROPERTY(QRectF visibleArea READ visibleArea WRITE setVisibleArea NOTIFY visibleAreaChanged REVISION(5, 12))
72 Q_INTERFACES(QQmlParserStatus)
76 explicit QDeclarativeGeoMap(QQuickItem *parent =
nullptr);
77 ~QDeclarativeGeoMap();
79 void setPlugin(QDeclarativeGeoServiceProvider *plugin);
80 QDeclarativeGeoServiceProvider *plugin()
const;
82 void setActiveMapType(
const QGeoMapType &mapType);
83 QGeoMapType activeMapType()
const;
85 void setMinimumZoomLevel(qreal minimumZoomLevel,
bool userSet =
true);
86 qreal minimumZoomLevel()
const;
88 void setMaximumZoomLevel(qreal maximumZoomLevel,
bool userSet =
true);
89 qreal maximumZoomLevel()
const;
91 void setZoomLevel(qreal zoomLevel);
92 qreal zoomLevel()
const;
94 void setBearing(qreal bearing);
95 qreal bearing()
const;
97 void setTilt(qreal tilt);
99 void setMinimumTilt(qreal minimumTilt,
bool userSet =
true);
100 qreal minimumTilt()
const;
101 void setMaximumTilt(qreal maximumTilt,
bool userSet =
true);
102 qreal maximumTilt()
const;
104 void setFieldOfView(qreal fieldOfView);
105 qreal fieldOfView()
const;
106 void setMinimumFieldOfView(qreal minimumFieldOfView,
bool userSet =
true);
107 qreal minimumFieldOfView()
const;
108 void setMaximumFieldOfView(qreal maximumFieldOfView,
bool userSet =
true);
109 qreal maximumFieldOfView()
const;
111 void setCenter(
const QGeoCoordinate ¢er);
112 QGeoCoordinate center()
const;
114 void setVisibleRegion(
const QGeoShape &shape);
115 QGeoShape visibleRegion()
const;
117 void setCopyrightsVisible(
bool visible);
118 bool copyrightsVisible()
const;
120 void setColor(
const QColor &color);
121 QColor color()
const;
123 QRectF visibleArea()
const;
124 void setVisibleArea(
const QRectF &visibleArea);
126 bool mapReady()
const;
128 QList<QGeoMapType> supportedMapTypes();
130 Q_INVOKABLE
void setBearing(qreal bearing,
const QGeoCoordinate &coordinate);
131 Q_INVOKABLE
void alignCoordinateToPoint(
const QGeoCoordinate &coordinate,
const QPointF &point);
133 Q_INVOKABLE
void removeMapItem(QDeclarativeGeoMapItemBase *item);
134 Q_INVOKABLE
void addMapItem(QDeclarativeGeoMapItemBase *item);
136 Q_INVOKABLE
void addMapItemGroup(QDeclarativeGeoMapItemGroup *itemGroup);
137 Q_INVOKABLE
void removeMapItemGroup(QDeclarativeGeoMapItemGroup *itemGroup);
139 Q_INVOKABLE
void removeMapItemView(QDeclarativeGeoMapItemView *itemView);
140 Q_INVOKABLE
void addMapItemView(QDeclarativeGeoMapItemView *itemView);
142 Q_INVOKABLE
void clearMapItems();
143 QList<QObject *> mapItems();
145 Q_INVOKABLE QGeoCoordinate toCoordinate(
const QPointF &position,
bool clipToViewPort =
true)
const;
146 Q_INVOKABLE QPointF fromCoordinate(
const QGeoCoordinate &coordinate,
bool clipToViewPort =
true)
const;
150 Q_INVOKABLE
void fitViewportToMapItems(
const QVariantList &items = {});
151 Q_INVOKABLE
void fitViewportToVisibleMapItems();
152 Q_INVOKABLE
void pan(
int dx,
int dy);
153 Q_INVOKABLE
void prefetchData();
154 Q_INVOKABLE
void clearData();
155 Q_REVISION(5, 13) Q_INVOKABLE
void fitViewportToGeoShape(
const QGeoShape &shape, QVariant margins);
156 void fitViewportToGeoShape(
const QGeoShape &shape,
const QMargins &borders = QMargins(10, 10, 10, 10));
158 QString errorString()
const;
159 QGeoServiceProvider::Error error()
const;
160 QGeoMap* map()
const;
163 void itemChange(ItemChange,
const ItemChangeData &) override;
166 void pluginChanged(QDeclarativeGeoServiceProvider *plugin);
167 void zoomLevelChanged(qreal zoomLevel);
168 void centerChanged(
const QGeoCoordinate &coordinate);
169 void activeMapTypeChanged();
170 void supportedMapTypesChanged();
171 void minimumZoomLevelChanged(qreal minimumZoomLevel);
172 void maximumZoomLevelChanged(qreal maximumZoomLevel);
173 void mapItemsChanged();
175 void copyrightLinkActivated(
const QString &link);
176 void copyrightsVisibleChanged(
bool visible);
177 void colorChanged(
const QColor &color);
178 void bearingChanged(qreal bearing);
179 void tiltChanged(qreal tilt);
180 void fieldOfViewChanged(qreal fieldOfView);
181 void minimumTiltChanged(qreal minimumTilt);
182 void maximumTiltChanged(qreal maximumTilt);
183 void minimumFieldOfViewChanged(qreal minimumFieldOfView);
184 void maximumFieldOfViewChanged(qreal maximumFieldOfView);
185 void copyrightsImageChanged(
const QImage ©rightsImage);
186 void copyrightsChanged(
const QString ©rightsHtml);
187 void mapReadyChanged(
bool ready);
188 void visibleAreaChanged();
189 Q_REVISION(5, 14)
void visibleRegionChanged();
192 void componentComplete() override;
193 QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) override;
194 void geometryChange(
const QRectF &newGeometry,
const QRectF &oldGeometry) override;
196 void setError(QGeoServiceProvider::Error error,
const QString &errorString);
198 void setZoomLevel(qreal zoomLevel,
bool overzoom);
199 bool addMapChild(QObject *child);
200 bool removeMapChild(QObject *child);
201 bool isGroupNested(QDeclarativeGeoMapItemGroup *group)
const;
203 bool addMapItem_real(QDeclarativeGeoMapItemBase *item);
204 bool removeMapItem_real(QDeclarativeGeoMapItemBase *item);
205 bool addMapItemGroup_real(QDeclarativeGeoMapItemGroup *itemGroup);
206 bool removeMapItemGroup_real(QDeclarativeGeoMapItemGroup *itemGroup);
207 bool addMapItemView_real(QDeclarativeGeoMapItemView *itemView);
208 bool removeMapItemView_real(QDeclarativeGeoMapItemView *itemView);
209 void updateItemToWindowTransform();
210 void onSGNodeChanged();
213 void mappingManagerInitialized();
215 void onSupportedMapTypesChanged();
216 void onCameraCapabilitiesChanged(
const QGeoCameraCapabilities &oldCameraCapabilities);
217 void onAttachedCopyrightNoticeVisibilityChanged();
218 void onCameraDataChanged(
const QGeoCameraData &cameraData);
221 void setupMapView(QDeclarativeGeoMapItemView *view);
223 void fitViewportToMapItemsRefine(
const QList<QPointer<QDeclarativeGeoMapItemBase> > &mapItems,
bool refine,
bool onlyVisible);
224 void attachCopyrightNotice(
bool initialVisibility);
225 void detachCopyrightNotice(
bool currentVisibility);
226 QMargins mapMargins()
const;
229 QQuickWindow *m_window =
nullptr;
230 QDeclarativeGeoServiceProvider *m_plugin =
nullptr;
231 QGeoMappingManager *m_mappingManager =
nullptr;
232 QGeoMapType m_activeMapType;
233 QList<QGeoMapType> m_supportedMapTypes;
234 QList<QDeclarativeGeoMapItemView *> m_mapViews;
235 QPointer<QGeoMap> m_map;
236 QPointer<QDeclarativeGeoMapCopyrightNotice> m_copyrights;
237 QList<QPointer<QDeclarativeGeoMapItemBase> > m_mapItems;
238 QList<QPointer<QDeclarativeGeoMapItemGroup> > m_mapItemGroups;
239 QString m_errorString;
240 QGeoServiceProvider::Error m_error = QGeoServiceProvider::NoError;
241 QGeoRectangle m_visibleRegion;
242 QColor m_color = QColor::fromRgbF(0.9f, 0.9f, 0.9f);
243 QGeoCameraData m_cameraData;
244 bool m_componentCompleted =
false;
245 bool m_pendingFitViewport =
false;
246 bool m_copyrightsVisible =
true;
247 double m_maximumViewportLatitude = 0.0;
248 double m_minimumViewportLatitude = 0.0;
249 bool m_initialized =
false;
250 bool m_sgNodeHasChanged =
false;
251 QGeoCameraCapabilities m_cameraCapabilities;
252 qreal m_minimumZoomLevel = Q_QNAN;
253 qreal m_maximumZoomLevel = Q_QNAN;
254 qreal m_userMinimumZoomLevel = 0;
255 qreal m_userMaximumZoomLevel = Q_INFINITY;
257 qreal m_minimumTilt = Q_QNAN;
258 qreal m_maximumTilt = Q_QNAN;
259 qreal m_userMinimumTilt = 0;
260 qreal m_userMaximumTilt = Q_INFINITY;
262 qreal m_minimumFieldOfView = Q_QNAN;
263 qreal m_maximumFieldOfView = Q_QNAN;
264 qreal m_userMinimumFieldOfView = 0;
265 qreal m_userMaximumFieldOfView = Q_INFINITY;
267 int m_copyNoticesVisible = 0;
268 qreal m_maxChildZ = 0;
269 QRectF m_visibleArea;
272 friend class QDeclarativeGeoMapItem;
273 friend class QDeclarativeGeoMapItemView;
274 friend class QDeclarativeGeoMapCopyrightNotice;
275 Q_DISABLE_COPY(QDeclarativeGeoMap)