summaryrefslogtreecommitdiff
path: root/src/imports/positioning/locationsingleton.cpp
diff options
context:
space:
mode:
authorPaolo Angelelli <paolo.angelelli@qt.io>2017-07-11 15:55:27 +0200
committerPaolo Angelelli <paolo.angelelli@qt.io>2017-08-04 11:19:14 +0000
commit92d8e4dc93400250b47f8dbe96ec7e2f748d8d4b (patch)
tree0545f115d23f74be1979ec483a63f19bbc9b1d55 /src/imports/positioning/locationsingleton.cpp
parent4511bc9b9bc85a0021ce59feab1a28c711dec691 (diff)
downloadqtlocation-92d8e4dc93400250b47f8dbe96ec7e2f748d8d4b.tar.gz
Add QGeoPolygon to QtPositioning
This patch introduces a new QGeoShape, QGeoPolygon, together with helper functions in the location singleton (QtPositioning.*) to create and convert geopolygons from QML. [ChangeLog][QtPositioning][QGeoPolygon] Added QGeoPolygon shape. Change-Id: I111c576d7428f2a953f0459d16c25eea7ab2bd7c Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'src/imports/positioning/locationsingleton.cpp')
-rw-r--r--src/imports/positioning/locationsingleton.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/imports/positioning/locationsingleton.cpp b/src/imports/positioning/locationsingleton.cpp
index 19b05761..e9b58834 100644
--- a/src/imports/positioning/locationsingleton.cpp
+++ b/src/imports/positioning/locationsingleton.cpp
@@ -234,6 +234,37 @@ QGeoPath LocationSingleton::path(const QJSValue &value, qreal width) const
}
/*!
+ \qmlmethod geopolygon QtPositioning::polygon() const
+
+ Constructs an empty geopolygon.
+
+ \sa {geopolygon}
+ \since 5.10
+*/
+QGeoPath LocationSingleton::polygon() const
+{
+ return QGeoPolygon();
+}
+
+/*!
+ \qmlmethod geopolygon QtPositioning::polygon(list<coordinate> coordinates) const
+
+ Constructs a geopolygon from coordinates.
+
+ \sa {geopolygon}
+ \since 5.10
+*/
+QGeoPath LocationSingleton::polygon(const QVariantList &coordinates) const
+{
+ QList<QGeoCoordinate> internalCoordinates;
+ for (int i = 0; i < coordinates.size(); i++) {
+ if (coordinates.at(i).canConvert<QGeoCoordinate>())
+ internalCoordinates << coordinates.at(i).value<QGeoCoordinate>();
+ }
+ return QGeoPolygon(internalCoordinates);
+}
+
+/*!
\qmlmethod geocircle QtPositioning::shapeToCircle(geoshape shape) const
Converts \a shape to a geocircle.
@@ -272,3 +303,15 @@ QGeoPath LocationSingleton::shapeToPath(const QGeoShape &shape) const
return QGeoPath(shape);
}
+/*!
+ \qmlmethod geopath QtPositioning::shapeToPolygon(geoshape shape) const
+
+ Converts \a shape to a geopolygon.
+
+ \sa {geopolygon}
+ \since 5.10
+*/
+QGeoPolygon LocationSingleton::shapeToPolygon(const QGeoShape &shape) const
+{
+ return QGeoPolygon(shape);
+}