summaryrefslogtreecommitdiff
path: root/src/location/declarativemaps
diff options
context:
space:
mode:
Diffstat (limited to 'src/location/declarativemaps')
-rw-r--r--src/location/declarativemaps/qdeclarativegeomap.cpp13
-rw-r--r--src/location/declarativemaps/qdeclarativegeomaptype.cpp115
-rw-r--r--src/location/declarativemaps/qdeclarativegeomaptype_p.h30
3 files changed, 155 insertions, 3 deletions
diff --git a/src/location/declarativemaps/qdeclarativegeomap.cpp b/src/location/declarativemaps/qdeclarativegeomap.cpp
index f5d2bdb5..cb991341 100644
--- a/src/location/declarativemaps/qdeclarativegeomap.cpp
+++ b/src/location/declarativemaps/qdeclarativegeomap.cpp
@@ -190,7 +190,11 @@ QDeclarativeGeoMap::QDeclarativeGeoMap(QQuickItem *parent)
m_activeMapType = new QDeclarativeGeoMapType(QGeoMapType(QGeoMapType::NoMap,
tr("No Map"),
- tr("No Map"), false, false, 0, QByteArrayLiteral("")), this);
+ tr("No Map"),
+ false, false,
+ 0,
+ QByteArrayLiteral(""),
+ QGeoCameraCapabilities()), this);
m_cameraData.setCenter(QGeoCoordinate(51.5073,-0.1277)); //London city center
m_cameraData.setZoomLevel(8.0);
@@ -750,7 +754,12 @@ void QDeclarativeGeoMap::mappingManagerInitialized()
} else {
m_activeMapType = new QDeclarativeGeoMapType(QGeoMapType(QGeoMapType::NoMap,
tr("No Map"),
- tr("No Map"), false, false, 0, QByteArrayLiteral("")), this);
+ tr("No Map"),
+ false,
+ false,
+ 0,
+ QByteArrayLiteral(""),
+ QGeoCameraCapabilities()), this);
}
}
diff --git a/src/location/declarativemaps/qdeclarativegeomaptype.cpp b/src/location/declarativemaps/qdeclarativegeomaptype.cpp
index 86444aa4..7e40d414 100644
--- a/src/location/declarativemaps/qdeclarativegeomaptype.cpp
+++ b/src/location/declarativemaps/qdeclarativegeomaptype.cpp
@@ -57,7 +57,8 @@ QT_BEGIN_NAMESPACE
QDeclarativeGeoMapType::QDeclarativeGeoMapType(const QGeoMapType mapType, QObject *parent)
: QObject(parent),
- mapType_(mapType) {}
+ mapType_(mapType),
+ cameraCapabilities_(new QDeclarativeGeoCameraCapabilities(mapType.cameraCapabilities(), this)) {}
QDeclarativeGeoMapType::~QDeclarativeGeoMapType() {}
@@ -131,4 +132,116 @@ bool QDeclarativeGeoMapType::night() const
return mapType_.night();
}
+/*!
+ \qmlproperty CameraCapabilities MapType::cameraCapabilities
+ \since Qt Location 5.10
+
+ This property holds the camera capabilities for this map type.
+*/
+QDeclarativeGeoCameraCapabilities *QDeclarativeGeoMapType::cameraCapabilities() const
+{
+ return cameraCapabilities_;
+}
+
+/*!
+ \qmlproperty VariantMap MapType::metadata
+ \since Qt Location 5.10
+
+ This property holds optional, extra metadata related to a specific map type.
+ The content of this property is entirely plugin-specific.
+*/
+QVariantMap QDeclarativeGeoMapType::metadata() const
+{
+ return mapType_.metadata();
+}
+
+/*
+ * QDeclarativeGeoCameraCapabilities implementation
+ */
+
+/*!
+ \qmltype CameraCapabilities
+ \instantiates QDeclarativeGeoCameraCapabilities
+ \inherits QObject
+ \inqmlmodule QtLocation
+ \ingroup qml-QtLocation5-maps
+ \since Qt Location 5.10
+
+ \brief The CameraCapabilities type holds information about the camera capabilities for a specific map type.
+
+ This includes the map minimum and maximum zoom level, minimum and maximum tilt angle and
+ minimum and maximum field of view.
+*/
+
+QDeclarativeGeoCameraCapabilities::QDeclarativeGeoCameraCapabilities(const QGeoCameraCapabilities &cameraCaps, QObject *parent)
+ : QObject(parent), cameraCaps_(cameraCaps)
+{
+
+}
+
+QDeclarativeGeoCameraCapabilities::~QDeclarativeGeoCameraCapabilities()
+{
+
+}
+
+/*!
+ \qmlproperty qreal CameraCapabilities::minimumZoomLevel
+
+ This read-only property holds the minimum available zoom level with this map type.
+*/
+qreal QDeclarativeGeoCameraCapabilities::minimumZoomLevel() const
+{
+ return cameraCaps_.minimumZoomLevelAt256();
+}
+
+/*!
+ \qmlproperty qreal CameraCapabilities::maximumZoomLevel
+
+ This read-only property holds the maximum available zoom level with this map type.
+*/
+qreal QDeclarativeGeoCameraCapabilities::maximumZoomLevel() const
+{
+ return cameraCaps_.maximumZoomLevelAt256();
+}
+
+/*!
+ \qmlproperty qreal CameraCapabilities::minimumTilt
+
+ This read-only property holds the minimum available tilt with this map type.
+*/
+qreal QDeclarativeGeoCameraCapabilities::minimumTilt() const
+{
+ return cameraCaps_.minimumTilt();
+}
+
+/*!
+ \qmlproperty qreal CameraCapabilities::maximumTilt
+
+ This read-only property holds the maximum available tilt with this map type.
+*/
+qreal QDeclarativeGeoCameraCapabilities::maximumTilt() const
+{
+ return cameraCaps_.maximumTilt();
+}
+
+/*!
+ \qmlproperty qreal CameraCapabilities::minimumFieldOfView
+
+ This read-only property holds the minimum available field of view with this map type.
+*/
+qreal QDeclarativeGeoCameraCapabilities::minimumFieldOfView() const
+{
+ return cameraCaps_.minimumFieldOfView();
+}
+
+/*!
+ \qmlproperty qreal CameraCapabilities::maximumFieldOfView
+
+ This read-only property holds the maximum available field of view with this map type.
+*/
+qreal QDeclarativeGeoCameraCapabilities::maximumFieldOfView() const
+{
+ return cameraCaps_.maximumFieldOfView();
+}
+
QT_END_NAMESPACE
diff --git a/src/location/declarativemaps/qdeclarativegeomaptype_p.h b/src/location/declarativemaps/qdeclarativegeomaptype_p.h
index 7b449aa0..5d99083d 100644
--- a/src/location/declarativemaps/qdeclarativegeomaptype_p.h
+++ b/src/location/declarativemaps/qdeclarativegeomaptype_p.h
@@ -56,6 +56,31 @@
QT_BEGIN_NAMESPACE
+class Q_LOCATION_PRIVATE_EXPORT QDeclarativeGeoCameraCapabilities: public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(qreal minimumZoomLevel READ minimumZoomLevel CONSTANT)
+ Q_PROPERTY(qreal maximumZoomLevel READ maximumZoomLevel CONSTANT)
+ Q_PROPERTY(qreal minimumTilt READ minimumTilt CONSTANT)
+ Q_PROPERTY(qreal maximumTilt READ maximumTilt CONSTANT)
+ Q_PROPERTY(qreal minimumFieldOfView READ minimumFieldOfView CONSTANT)
+ Q_PROPERTY(qreal maximumFieldOfView READ maximumFieldOfView CONSTANT)
+
+public:
+ QDeclarativeGeoCameraCapabilities(const QGeoCameraCapabilities &cameraCaps, QObject *parent = 0);
+ ~QDeclarativeGeoCameraCapabilities();
+
+ qreal minimumZoomLevel() const;
+ qreal maximumZoomLevel() const;
+ qreal minimumTilt() const;
+ qreal maximumTilt() const;
+ qreal minimumFieldOfView() const;
+ qreal maximumFieldOfView() const;
+
+private:
+ QGeoCameraCapabilities cameraCaps_;
+};
+
class Q_LOCATION_PRIVATE_EXPORT QDeclarativeGeoMapType : public QObject
{
Q_OBJECT
@@ -66,6 +91,8 @@ class Q_LOCATION_PRIVATE_EXPORT QDeclarativeGeoMapType : public QObject
Q_PROPERTY(QString description READ description CONSTANT)
Q_PROPERTY(bool mobile READ mobile CONSTANT)
Q_PROPERTY(bool night READ night CONSTANT REVISION 1)
+ Q_PROPERTY(QDeclarativeGeoCameraCapabilities *cameraCapabilities READ cameraCapabilities CONSTANT)
+ Q_PROPERTY(QVariantMap metadata READ metadata CONSTANT)
public:
enum MapStyle {
@@ -91,11 +118,14 @@ public:
QString description() const;
bool mobile() const;
bool night() const;
+ QDeclarativeGeoCameraCapabilities *cameraCapabilities() const;
+ QVariantMap metadata() const;
const QGeoMapType mapType() { return mapType_; }
private:
QGeoMapType mapType_;
+ QDeclarativeGeoCameraCapabilities *cameraCapabilities_;
};
QT_END_NAMESPACE