diff options
author | Paolo Angelelli <paolo.angelelli@qt.io> | 2017-06-06 16:01:17 +0200 |
---|---|---|
committer | Paolo Angelelli <paolo.angelelli@qt.io> | 2017-08-03 10:33:14 +0000 |
commit | e92bf21dfb0de4595a39e172fdbdc16b8ae8579c (patch) | |
tree | c777804dd0918825127a323fe68bb8fc3187e886 /src | |
parent | 61776400fe4b18a62fd9b4880fc1e799cf0f2cde (diff) | |
download | qtlocation-e92bf21dfb0de4595a39e172fdbdc16b8ae8579c.tar.gz |
Add alignCoordinateToPoint method
This method effectively extends the functionalities offered by
the center qml property, allowing to set a coordinate to an item
position other than the center of the item.
This is useful in those applications where the center of the scene
(e.g., a cursor) is not to be place exactly in the center of the map.
[ChangeLog][QtLocation][QDeclarativeGeoMap] Added alignCoordinateToPoint
method to QDeclarativeGeoMap.
Change-Id: I68a3d12e8376b83c4c1775a3af5e2125d3e71d63
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/location/declarativemaps/qdeclarativegeomap.cpp | 24 | ||||
-rw-r--r-- | src/location/declarativemaps/qdeclarativegeomap_p.h | 1 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/location/declarativemaps/qdeclarativegeomap.cpp b/src/location/declarativemaps/qdeclarativegeomap.cpp index 47283d85..67130bb9 100644 --- a/src/location/declarativemaps/qdeclarativegeomap.cpp +++ b/src/location/declarativemaps/qdeclarativegeomap.cpp @@ -1487,6 +1487,30 @@ void QDeclarativeGeoMap::setBearing(qreal bearing, const QGeoCoordinate &coordin } /*! + \qmlmethod void QtLocation::Map::alignCoordinateToPoint(coordinate coordinate, QPointF point) + + Aligns \a coordinate to \a point. + This method effectively extends the functionality offered by the \l center qml property, allowing + to align a coordinate to point of the Map element other than its center. + This is useful in those applications where the center of the scene (e.g., a cursor) is not to be + placed exactly in the center of the map. + + If the map is tilted, and \a coordinate happens to be behind the camera, or if the map is not ready + (see \l mapReady), calling this method will have no effect. + + \sa center + + \since 5.10 +*/ +void QDeclarativeGeoMap::alignCoordinateToPoint(const QGeoCoordinate &coordinate, const QPointF &point) +{ + if (!m_map) + return; + + setCenter(m_map->geoProjection().anchorCoordinateToPoint(coordinate, point)); +} + +/*! \qmlmethod coordinate QtLocation::Map::toCoordinate(QPointF position, bool clipToViewPort) Returns the coordinate which corresponds to the \a position relative to the map item. diff --git a/src/location/declarativemaps/qdeclarativegeomap_p.h b/src/location/declarativemaps/qdeclarativegeomap_p.h index 2f20e3ae..f88eb03f 100644 --- a/src/location/declarativemaps/qdeclarativegeomap_p.h +++ b/src/location/declarativemaps/qdeclarativegeomap_p.h @@ -156,6 +156,7 @@ public: QQmlListProperty<QDeclarativeGeoMapType> supportedMapTypes(); Q_INVOKABLE void setBearing(qreal bearing, const QGeoCoordinate &coordinate); + Q_INVOKABLE void alignCoordinateToPoint(const QGeoCoordinate &coordinate, const QPointF &point); Q_INVOKABLE void removeMapItem(QDeclarativeGeoMapItemBase *item); Q_INVOKABLE void addMapItem(QDeclarativeGeoMapItemBase *item); |