diff options
author | Paolo Angelelli <paolo.angelelli@qt.io> | 2018-04-17 13:43:27 +0200 |
---|---|---|
committer | Paolo Angelelli <paolo.angelelli@qt.io> | 2018-05-04 12:53:07 +0000 |
commit | 3c4b3d3666d66584144975a2d2278927392cce8e (patch) | |
tree | 062fa95d3a92749995739656c22f957b6865a8d1 /src/imports | |
parent | d5b31c5b61e43546d5e8bc3637acf3f7cc4f14d6 (diff) | |
download | qtlocation-3c4b3d3666d66584144975a2d2278927392cce8e.tar.gz |
Expose mercatorToCoord and coordToMercator to QML
Handy to manipulate geo-geometries in JS.
Change-Id: I9866849a8b94e8fb8a9ebc24a0a2d93f2c4cbaf5
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'src/imports')
-rw-r--r-- | src/imports/positioning/locationsingleton.cpp | 28 | ||||
-rw-r--r-- | src/imports/positioning/locationsingleton.h | 4 |
2 files changed, 32 insertions, 0 deletions
diff --git a/src/imports/positioning/locationsingleton.cpp b/src/imports/positioning/locationsingleton.cpp index 89b93617..ea70d47f 100644 --- a/src/imports/positioning/locationsingleton.cpp +++ b/src/imports/positioning/locationsingleton.cpp @@ -38,6 +38,8 @@ ****************************************************************************/ #include "locationsingleton.h" +#include <QtPositioning/private/qwebmercator_p.h> +#include <QtPositioning/private/qdoublevector2d_p.h> static QGeoCoordinate parseCoordinate(const QJSValue &value, bool *ok) { @@ -315,3 +317,29 @@ QGeoPolygon LocationSingleton::shapeToPolygon(const QGeoShape &shape) const { return QGeoPolygon(shape); } + +/*! + \qmlmethod coordinate QtPositioning::mercatorToCoord(point mercator) const + + Converts a mercator coordinate into a latitude-longitude coordinate. + + \sa {coordToMercator} + \since 5.12 +*/ +QGeoCoordinate LocationSingleton::mercatorToCoord(const QPointF &mercator) const +{ + return QWebMercator::mercatorToCoord(QDoubleVector2D(mercator.x(), mercator.y())); +} + +/*! + \qmlmethod point QtPositioning::coordToMercator(coordinate coord) const + + Converts a coordinate into a mercator coordinate. + + \sa {mercatorToCoord} + \since 5.12 +*/ +QPointF LocationSingleton::coordToMercator(const QGeoCoordinate &coord) const +{ + return QWebMercator::coordToMercator(coord).toPointF(); +} diff --git a/src/imports/positioning/locationsingleton.h b/src/imports/positioning/locationsingleton.h index 6a560fa8..92e03f1b 100644 --- a/src/imports/positioning/locationsingleton.h +++ b/src/imports/positioning/locationsingleton.h @@ -50,6 +50,7 @@ #include <QtPositioning/QGeoPolygon> #include <QtQml/QJSValue> #include <QVariant> +#include <QPointF> class LocationSingleton : public QObject { @@ -84,6 +85,9 @@ public: Q_INVOKABLE QGeoRectangle shapeToRectangle(const QGeoShape &shape) const; Q_INVOKABLE QGeoPath shapeToPath(const QGeoShape &shape) const; Q_INVOKABLE QGeoPolygon shapeToPolygon(const QGeoShape &shape) const; + + Q_REVISION(12) Q_INVOKABLE QGeoCoordinate mercatorToCoord(const QPointF &mercator) const; + Q_REVISION(12) Q_INVOKABLE QPointF coordToMercator(const QGeoCoordinate &coord) const; }; #endif // LOCATIONSINGLETON_H |