summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/location/mapviewer/doc/images/mapviewer.pngbin359712 -> 176944 bytes
-rw-r--r--examples/location/mapviewer/main.cpp25
-rw-r--r--examples/location/mapviewer/map/MapComponent.qml28
-rw-r--r--examples/location/mapviewer/map/MapSliders.qml323
-rw-r--r--examples/location/mapviewer/mapviewer.pro1
-rw-r--r--examples/location/mapviewer/mapviewer.qml17
-rw-r--r--examples/location/mapviewer/mapviewer.qrc1
-rw-r--r--examples/location/minimal_map/doc/images/minimal_map.pngbin156053 -> 229975 bytes
-rw-r--r--examples/location/minimal_map/main.qml8
-rw-r--r--examples/location/places/doc/images/places.pngbin151611 -> 233430 bytes
-rw-r--r--examples/location/places/main.cpp18
-rw-r--r--examples/location/places_map/doc/images/places_map.pngbin167995 -> 157761 bytes
-rw-r--r--examples/location/places_map/places_map.qml2
-rw-r--r--examples/location/planespotter/doc/images/planespotter.pngbin139390 -> 135872 bytes
-rw-r--r--examples/location/planespotter/main.cpp4
-rw-r--r--examples/location/planespotter/planespotter.qml2
16 files changed, 401 insertions, 28 deletions
diff --git a/examples/location/mapviewer/doc/images/mapviewer.png b/examples/location/mapviewer/doc/images/mapviewer.png
index 4dc13f72..b55d7ff3 100644
--- a/examples/location/mapviewer/doc/images/mapviewer.png
+++ b/examples/location/mapviewer/doc/images/mapviewer.png
Binary files differ
diff --git a/examples/location/mapviewer/main.cpp b/examples/location/mapviewer/main.cpp
index 1b526435..c44e3d9e 100644
--- a/examples/location/mapviewer/main.cpp
+++ b/examples/location/mapviewer/main.cpp
@@ -84,11 +84,36 @@ static bool parseArgs(QStringList& args, QVariantMap& parameters)
int main(int argc, char *argv[])
{
+ const QByteArray additionalLibraryPaths = qgetenv("QTLOCATION_EXTRA_LIBRARY_PATH");
+ for (const QByteArray &p : additionalLibraryPaths.split(':'))
+ QCoreApplication::addLibraryPath(QString(p));
+
+ QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication application(argc, argv);
QVariantMap parameters;
QStringList args(QCoreApplication::arguments());
+ // Fetch tokens from the environment, if present
+ const QByteArray mapboxMapID = qgetenv("MAPBOX_MAP_ID");
+ const QByteArray mapboxAccessToken = qgetenv("MAPBOX_ACCESS_TOKEN");
+ const QByteArray hereAppID = qgetenv("HERE_APP_ID");
+ const QByteArray hereToken = qgetenv("HERE_TOKEN");
+ const QByteArray esriToken = qgetenv("ESRI_TOKEN");
+
+ if (!mapboxMapID.isEmpty())
+ parameters["mapbox.map_id"] = QString::fromLocal8Bit(mapboxMapID);
+ if (!mapboxAccessToken.isEmpty()) {
+ parameters["mapbox.access_token"] = QString::fromLocal8Bit(mapboxAccessToken);
+ parameters["mapboxgl.access_token"] = QString::fromLocal8Bit(mapboxAccessToken);
+ }
+ if (!hereAppID.isEmpty())
+ parameters["here.app_id"] = QString::fromLocal8Bit(hereAppID);
+ if (!hereToken.isEmpty())
+ parameters["here.token"] = QString::fromLocal8Bit(hereToken);
+ if (!esriToken.isEmpty())
+ parameters["esri.token"] = QString::fromLocal8Bit(esriToken);
+
if (parseArgs(args, parameters))
return 0;
if (!args.contains(QStringLiteral("osm.useragent")))
diff --git a/examples/location/mapviewer/map/MapComponent.qml b/examples/location/mapviewer/map/MapComponent.qml
index 008a4a00..570505a0 100644
--- a/examples/location/mapviewer/map/MapComponent.qml
+++ b/examples/location/mapviewer/map/MapComponent.qml
@@ -39,7 +39,7 @@
****************************************************************************/
import QtQuick 2.5
import QtQuick.Controls 1.4
-import QtLocation 5.6
+import QtLocation 5.9
import QtPositioning 5.5
import "../helper.js" as Helper
@@ -61,6 +61,7 @@ Map {
property alias routeQuery: routeQuery
property alias routeModel: routeModel
property alias geocodeModel: geocodeModel
+ property alias slidersExpanded: sliders.expanded
signal showGeocodeInfo()
signal geocodeFinished()
@@ -269,7 +270,7 @@ Map {
//! [mapnavigation]
// Enable pan, flick, and pinch gestures to zoom in and out
- gesture.acceptedGestures: MapGestureArea.PanGesture | MapGestureArea.FlickGesture | MapGestureArea.PinchGesture
+ gesture.acceptedGestures: MapGestureArea.PanGesture | MapGestureArea.FlickGesture | MapGestureArea.PinchGesture | MapGestureArea.RotationGesture | MapGestureArea.TiltGesture
gesture.flickDeceleration: 3000
gesture.enabled: true
//! [mapnavigation]
@@ -364,22 +365,11 @@ Map {
anchorPoint: Qt.point(-poiTheQtComapny.sourceItem.width * 0.5,poiTheQtComapny.sourceItem.height * 1.5)
}
-
- Slider {
- id: zoomSlider;
+ MapSliders {
+ id: sliders
z: map.z + 3
- minimumValue: map.minimumZoomLevel;
- maximumValue: map.maximumZoomLevel;
- anchors.margins: 10
- anchors.bottom: scale.top
- anchors.top: parent.top
- anchors.right: parent.right
- orientation : Qt.Vertical
- value: map.zoomLevel
- onValueChanged: {
- if (value >= 0)
- map.zoomLevel = value
- }
+ mapSource: map
+ edge: Qt.LeftEdge
}
Item {
@@ -614,9 +604,9 @@ Map {
var mouseGeoPos = map.toCoordinate(Qt.point(mouse.x, mouse.y));
var preZoomPoint = map.fromCoordinate(mouseGeoPos, false);
if (mouse.button === Qt.LeftButton) {
- map.zoomLevel++;
+ map.zoomLevel = Math.floor(map.zoomLevel + 1)
} else if (mouse.button === Qt.RightButton) {
- map.zoomLevel--;
+ map.zoomLevel = Math.floor(map.zoomLevel - 1)
}
var postZoomPoint = map.fromCoordinate(mouseGeoPos, false);
var dx = postZoomPoint.x - preZoomPoint.x;
diff --git a/examples/location/mapviewer/map/MapSliders.qml b/examples/location/mapviewer/map/MapSliders.qml
new file mode 100644
index 00000000..8e24481f
--- /dev/null
+++ b/examples/location/mapviewer/map/MapSliders.qml
@@ -0,0 +1,323 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of The Qt Company Ltd nor the names of its
+** contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.6
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
+import QtQuick.Controls 2.0 as C2
+
+Row {
+ id: containerRow
+
+ property var mapSource
+ property real fontSize : 14
+ property color labelBackground : "transparent"
+ property int edge: Qt.RightEdge
+ property alias expanded: sliderToggler.checked
+
+ function rightEdge() {
+ return (containerRow.edge === Qt.RightEdge);
+ }
+
+ layoutDirection: rightEdge() ? Qt.LeftToRight : Qt.RightToLeft
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ anchors.right: rightEdge() ? parent.right : undefined
+ anchors.left: rightEdge() ? undefined : parent.left
+
+ Button {
+ id: sliderToggler
+ width: 32
+ height: 96
+ checkable: true
+ checked: true
+ anchors.verticalCenter: parent.verticalCenter
+
+ transform: Scale {
+ origin.x: rightEdge() ? 0 : sliderToggler.width / 2
+ xScale: rightEdge() ? 1 : -1
+ }
+
+ style: ButtonStyle {
+ background: Rectangle {
+ color: "transparent"
+ }
+ }
+
+ property real shear: 0.333
+ property real buttonOpacity: 0.5
+ property real mirror : rightEdge() ? 1.0 : -1.0
+
+ Rectangle {
+ width: 16
+ height: 48
+ color: "seagreen"
+ antialiasing: true
+ opacity: sliderToggler.buttonOpacity
+ anchors.top: parent.top
+ anchors.left: sliderToggler.checked ? parent.left : parent.horizontalCenter
+ transform: Matrix4x4 {
+ property real d : sliderToggler.checked ? 1.0 : -1.0
+ matrix: Qt.matrix4x4(1.0, d * sliderToggler.shear, 0.0, 0.0,
+ 0.0, 1.0, 0.0, 0.0,
+ 0.0, 0.0, 1.0, 0.0,
+ 0.0, 0.0, 0.0, 1.0)
+ }
+ }
+
+ Rectangle {
+ width: 16
+ height: 48
+ color: "seagreen"
+ antialiasing: true
+ opacity: sliderToggler.buttonOpacity
+ anchors.top: parent.verticalCenter
+ anchors.right: sliderToggler.checked ? parent.right : parent.horizontalCenter
+ transform: Matrix4x4 {
+ property real d : sliderToggler.checked ? -1.0 : 1.0
+ matrix: Qt.matrix4x4(1.0, d * sliderToggler.shear, 0.0, 0.0,
+ 0.0, 1.0, 0.0, 0.0,
+ 0.0, 0.0, 1.0, 0.0,
+ 0.0, 0.0, 0.0, 1.0)
+ }
+ }
+ }
+
+ Rectangle {
+ id: sliderContainer
+ height: parent.height
+ width: sliderRow.width + 10
+ visible: sliderToggler.checked
+ color: Qt.rgba( 0, 191 / 255.0, 255 / 255.0, 0.07)
+
+ property var labelBorderColor: "transparent"
+ property var slidersHeight : sliderContainer.height
+ - rowSliderValues.height
+ - rowSliderLabels.height
+ - sliderColumn.spacing * 2
+ - sliderColumn.topPadding
+ - sliderColumn.bottomPadding
+
+ Column {
+ id: sliderColumn
+ spacing: 10
+ topPadding: 16
+ bottomPadding: 48
+ anchors.centerIn: parent
+
+ // the sliders value labels
+ Row {
+ id: rowSliderValues
+ spacing: sliderRow.spacing
+ width: sliderRow.width
+ height: 32
+ property real entryWidth: zoomSlider.width
+
+ Rectangle{
+ color: labelBackground
+ height: parent.height
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelZoomValue
+ text: zoomSlider.value.toFixed(3)
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ Rectangle{
+ color: labelBackground
+ height: parent.height
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelBearingValue
+ text: bearingSlider.value.toFixed(2)
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ Rectangle{
+ color: labelBackground
+ height: parent.height
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelTiltValue
+ text: tiltSlider.value.toFixed(2)
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ Rectangle{
+ color: labelBackground
+ height: parent.height
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelFovValue
+ text: fovSlider.value.toFixed(2)
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ } // rowSliderValues
+
+ // The sliders row
+ Row {
+ spacing: -10
+ id: sliderRow
+ height: sliderContainer.slidersHeight
+
+ C2.Slider {
+ id: zoomSlider
+ height: parent.height
+ orientation : Qt.Vertical
+ from : containerRow.mapSource.minimumZoomLevel
+ to : containerRow.mapSource.maximumZoomLevel
+ value : containerRow.mapSource.zoomLevel
+ onValueChanged: {
+ containerRow.mapSource.zoomLevel = value
+ }
+ }
+ C2.Slider {
+ id: bearingSlider
+ height: parent.height
+ from: 0
+ to: 360
+ orientation : Qt.Vertical
+ value: containerRow.mapSource.bearing
+ onValueChanged: {
+ containerRow.mapSource.bearing = value;
+ }
+ }
+ C2.Slider {
+ id: tiltSlider
+ height: parent.height
+ orientation : Qt.Vertical
+ from: containerRow.mapSource.minimumTilt;
+ to: containerRow.mapSource.maximumTilt
+ value: containerRow.mapSource.tilt
+ onValueChanged: {
+ containerRow.mapSource.tilt = value;
+ }
+ }
+ C2.Slider {
+ id: fovSlider
+ height: parent.height
+ orientation : Qt.Vertical
+ from: containerRow.mapSource.minimumFieldOfView
+ to: containerRow.mapSource.maximumFieldOfView
+ value: containerRow.mapSource.fieldOfView
+ onValueChanged: {
+ containerRow.mapSource.fieldOfView = value;
+ }
+ }
+ } // Row sliders
+
+ // The labels row
+ Row {
+ id: rowSliderLabels
+ spacing: sliderRow.spacing
+ width: sliderRow.width
+ property real entryWidth: zoomSlider.width
+ property real entryHeight: 64
+
+ Rectangle{
+ color: labelBackground
+ height: parent.entryHeight
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelZoom
+ text: "Zoom"
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+
+ Rectangle{
+ color: labelBackground
+ height: parent.entryHeight
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelBearing
+ text: "Bearing"
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ Rectangle{
+ color: labelBackground
+ height: parent.entryHeight
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelTilt
+ text: "Tilt"
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ Rectangle{
+ color: labelBackground
+ height: parent.entryHeight
+ width: parent.entryWidth
+ border.color: sliderContainer.labelBorderColor
+ Label {
+ id: labelFov
+ text: "FoV"
+ font.pixelSize: fontSize
+ rotation: -90
+ anchors.centerIn: parent
+ }
+ }
+ } // rowSliderLabels
+ } // Column
+ } // sliderContainer
+} // containerRow
diff --git a/examples/location/mapviewer/mapviewer.pro b/examples/location/mapviewer/mapviewer.pro
index 5f463c85..90d85e62 100644
--- a/examples/location/mapviewer/mapviewer.pro
+++ b/examples/location/mapviewer/mapviewer.pro
@@ -11,6 +11,7 @@ RESOURCES += \
OTHER_FILES +=mapviewer.qml \
helper.js \
map/MapComponent.qml \
+ map/MapSliders.qml \
map/Marker.qml \
map/CircleItem.qml \
map/RectangleItem.qml \
diff --git a/examples/location/mapviewer/mapviewer.qml b/examples/location/mapviewer/mapviewer.qml
index 08ef2663..debc329f 100644
--- a/examples/location/mapviewer/mapviewer.qml
+++ b/examples/location/mapviewer/mapviewer.qml
@@ -73,10 +73,18 @@ ApplicationWindow {
}
var zoomLevel = null
+ var tilt = null
+ var bearing = null
+ var fov = null
var center = null
+ var panelExpanded = null
if (map) {
zoomLevel = map.zoomLevel
+ tilt = map.tilt
+ bearing = map.bearing
+ fov = map.fieldOfView
center = map.center
+ panelExpanded = map.slidersExpanded
map.destroy()
}
@@ -84,10 +92,17 @@ ApplicationWindow {
map.plugin = plugin;
if (zoomLevel != null) {
+ map.tilt = tilt
+ map.bearing = bearing
+ map.fieldOfView = fov
map.zoomLevel = zoomLevel
map.center = center
+ map.slidersExpanded = panelExpanded
} else {
- map.zoomLevel = (map.maximumZoomLevel - map.minimumZoomLevel)/2
+ // Use an integer ZL to enable nearest interpolation, if possible.
+ map.zoomLevel = Math.floor((map.maximumZoomLevel - map.minimumZoomLevel)/2)
+ // defaulting to 45 degrees, if possible.
+ map.fieldOfView = Math.min(Math.max(45.0, map.minimumFieldOfView), map.maximumFieldOfView)
}
map.forceActiveFocus()
diff --git a/examples/location/mapviewer/mapviewer.qrc b/examples/location/mapviewer/mapviewer.qrc
index a84c67da..7a7d1f4c 100644
--- a/examples/location/mapviewer/mapviewer.qrc
+++ b/examples/location/mapviewer/mapviewer.qrc
@@ -2,6 +2,7 @@
<qresource prefix="/">
<file>mapviewer.qml</file>
<file>map/MapComponent.qml</file>
+ <file>map/MapSliders.qml</file>
<file>map/Marker.qml</file>
<file>map/PolylineItem.qml</file>
<file>map/RectangleItem.qml</file>
diff --git a/examples/location/minimal_map/doc/images/minimal_map.png b/examples/location/minimal_map/doc/images/minimal_map.png
index 31ad0f8b..73a16fd5 100644
--- a/examples/location/minimal_map/doc/images/minimal_map.png
+++ b/examples/location/minimal_map/doc/images/minimal_map.png
Binary files differ
diff --git a/examples/location/minimal_map/main.qml b/examples/location/minimal_map/main.qml
index 26f24986..58b1c54f 100644
--- a/examples/location/minimal_map/main.qml
+++ b/examples/location/minimal_map/main.qml
@@ -49,8 +49,8 @@ Window {
visible: true
Plugin {
- id: osmPlugin
- name: "osm"
+ id: mapPlugin
+ name: "osm" // "mapboxgl", "esri", ...
// specify plugin parameters if necessary
// PluginParameter {
// name:
@@ -60,8 +60,8 @@ Window {
Map {
anchors.fill: parent
- plugin: osmPlugin
+ plugin: mapPlugin
center: QtPositioning.coordinate(59.91, 10.75) // Oslo
- zoomLevel: 10
+ zoomLevel: 14
}
}
diff --git a/examples/location/places/doc/images/places.png b/examples/location/places/doc/images/places.png
index 0b1ac8b7..c8ada27d 100644
--- a/examples/location/places/doc/images/places.png
+++ b/examples/location/places/doc/images/places.png
Binary files differ
diff --git a/examples/location/places/main.cpp b/examples/location/places/main.cpp
index 8c3b64ed..a30fb857 100644
--- a/examples/location/places/main.cpp
+++ b/examples/location/places/main.cpp
@@ -90,6 +90,24 @@ int main(int argc, char *argv[])
QVariantMap parameters;
QStringList args(QCoreApplication::arguments());
+ // Fetch tokens from the environment, if present
+ const QByteArray mapboxMapID = qgetenv("MAPBOX_MAP_ID");
+ const QByteArray mapboxAccessToken = qgetenv("MAPBOX_ACCESS_TOKEN");
+ const QByteArray hereAppID = qgetenv("HERE_APP_ID");
+ const QByteArray hereToken = qgetenv("HERE_TOKEN");
+ const QByteArray esriToken = qgetenv("ESRI_TOKEN");
+
+ if (!mapboxMapID.isEmpty())
+ parameters["mapbox.map_id"] = QString::fromLocal8Bit(mapboxMapID);
+ if (!mapboxAccessToken.isEmpty())
+ parameters["mapbox.access_token"] = QString::fromLocal8Bit(mapboxAccessToken);
+ if (!hereAppID.isEmpty())
+ parameters["here.app_id"] = QString::fromLocal8Bit(hereAppID);
+ if (!hereToken.isEmpty())
+ parameters["here.token"] = QString::fromLocal8Bit(hereToken);
+ if (!esriToken.isEmpty())
+ parameters["esri.token"] = QString::fromLocal8Bit(esriToken);
+
if (parseArgs(args, parameters))
return 0;
diff --git a/examples/location/places_map/doc/images/places_map.png b/examples/location/places_map/doc/images/places_map.png
index 4982df23..72317e2d 100644
--- a/examples/location/places_map/doc/images/places_map.png
+++ b/examples/location/places_map/doc/images/places_map.png
Binary files differ
diff --git a/examples/location/places_map/places_map.qml b/examples/location/places_map/places_map.qml
index e7d20e7b..467a31de 100644
--- a/examples/location/places_map/places_map.qml
+++ b/examples/location/places_map/places_map.qml
@@ -51,7 +51,7 @@ Rectangle {
//! [Initialize Plugin]
Plugin {
id: myPlugin
- name: "osm"
+ name: "osm" // "mapboxgl", "esri", ...
//specify plugin parameters if necessary
//PluginParameter {...}
//PluginParameter {...}
diff --git a/examples/location/planespotter/doc/images/planespotter.png b/examples/location/planespotter/doc/images/planespotter.png
index dcfd55fe..f68f6f22 100644
--- a/examples/location/planespotter/doc/images/planespotter.png
+++ b/examples/location/planespotter/doc/images/planespotter.png
Binary files differ
diff --git a/examples/location/planespotter/main.cpp b/examples/location/planespotter/main.cpp
index c71a6999..76b706c9 100644
--- a/examples/location/planespotter/main.cpp
+++ b/examples/location/planespotter/main.cpp
@@ -47,7 +47,7 @@
#include <QDebug>
#include <QEasingCurve>
#include <QGeoCoordinate>
-#include <QtPositioning/private/qgeoprojection_p.h>
+#include <QtPositioning/private/qwebmercator_p.h>
#define ANIMATION_DURATION 4000
@@ -162,7 +162,7 @@ private:
progress = ((qreal)startTime.msecsTo(current) / ANIMATION_DURATION);
}
- setPosition(QGeoProjection::coordinateInterpolation(
+ setPosition(QWebMercator::coordinateInterpolation(
fromCoordinate, toCoordinate, easingCurve.valueForProgress(progress)));
if (!timer.isActive())
diff --git a/examples/location/planespotter/planespotter.qml b/examples/location/planespotter/planespotter.qml
index 624a015e..62930ba7 100644
--- a/examples/location/planespotter/planespotter.qml
+++ b/examples/location/planespotter/planespotter.qml
@@ -62,7 +62,7 @@ Window {
anchors.centerIn: parent;
anchors.fill: parent
plugin: Plugin {
- name: "osm"
+ name: "osm" // "mapboxgl", "esri", ...
}
Plane {