diff --git a/src/AutoPilotPlugins/PX4/AirframeFactMetaData.xml b/src/AutoPilotPlugins/PX4/AirframeFactMetaData.xml
index 8e5af0e1177077de55e4649e5d8b99f359e77f03..6a91e439475eaefb493ce80ad3aa53656f543242 100644
--- a/src/AutoPilotPlugins/PX4/AirframeFactMetaData.xml
+++ b/src/AutoPilotPlugins/PX4/AirframeFactMetaData.xml
@@ -430,9 +430,9 @@
Henry Zhang <zhanghui629@gmail.com>
Quadrotor x
-
+
Copter
- Jacob Dahl <jacob.dahl@tealdrones.com>
+ Matt McFadden <matt.mcfadden@tealdrones.com>
Quadrotor x
diff --git a/src/Camera/QGCCameraManager.cc b/src/Camera/QGCCameraManager.cc
index 33410b36158de7cfd4a4c6c67d84ff303845145a..90293e7eaa6ec14bed305c062ce9944464c5d7c2 100644
--- a/src/Camera/QGCCameraManager.cc
+++ b/src/Camera/QGCCameraManager.cc
@@ -110,8 +110,10 @@ QGCCameraManager::_handleHeartbeat(const mavlink_message_t &message)
{
mavlink_heartbeat_t heartbeat;
mavlink_msg_heartbeat_decode(&message, &heartbeat);
- //-- Only pay attention to "camera" component IDs
- if(_vehicleReadyState && _vehicle->id() == message.sysid && message.compid >= MAV_COMP_ID_CAMERA && message.compid <= MAV_COMP_ID_CAMERA6) {
+ //-- Only pay attention to camera components, as identified by their MAV_TYPE, and as fallback by their compId
+ if(_vehicleReadyState && _vehicle->id() == message.sysid &&
+ ((heartbeat.autopilot == MAV_AUTOPILOT_INVALID && heartbeat.type == MAV_TYPE_CAMERA) ||
+ (message.compid >= MAV_COMP_ID_CAMERA && message.compid <= MAV_COMP_ID_CAMERA6))) {
//-- First time hearing from this one?
QString sCompID = QString::number(message.compid);
if(!_cameraInfoRequest.contains(sCompID)) {
diff --git a/src/FlightMap/Widgets/CameraPageWidget.qml b/src/FlightMap/Widgets/CameraPageWidget.qml
index 874825f9728f6c8d01100e2adbf4e2698bc4e961..d811bc6b6b033f0aeeb7f4d7ca3db93b38e1f494 100644
--- a/src/FlightMap/Widgets/CameraPageWidget.qml
+++ b/src/FlightMap/Widgets/CameraPageWidget.qml
@@ -32,23 +32,23 @@ Column {
property var _dynamicCameras: activeVehicle ? activeVehicle.dynamicCameras : null
property bool _isCamera: _dynamicCameras ? _dynamicCameras.cameras.count > 0 : false
+ property int _curCameraIndex: _dynamicCameras ? _dynamicCameras.currentCamera : 0
property var _camera: _isCamera ? (_dynamicCameras.cameras.get(_curCameraIndex) && _dynamicCameras.cameras.get(_curCameraIndex).paramComplete ? _dynamicCameras.cameras.get(_curCameraIndex) : null) : null
- property bool _cameraModeUndefined: _camera ? _dynamicCameras.cameras.get(_curCameraIndex).cameraMode === QGCCameraControl.CAMERA_MODE_UNDEFINED : true
- property bool _cameraVideoMode: _camera ? _dynamicCameras.cameras.get(_curCameraIndex).cameraMode === 1 : false
- property bool _cameraPhotoMode: _camera ? _dynamicCameras.cameras.get(_curCameraIndex).cameraMode === 0 : false
- property bool _cameraPhotoIdle: _camera && _camera.photoStatus === QGCCameraControl.PHOTO_CAPTURE_IDLE
+ property bool _cameraModeUndefined: _camera ? _camera.cameraMode === QGCCameraControl.CAM_MODE_UNDEFINED : true
+ property bool _cameraVideoMode: _camera ? _camera.cameraMode === QGCCameraControl.CAM_MODE_VIDEO : false
+ property bool _cameraPhotoMode: _camera ? _camera.cameraMode === QGCCameraControl.CAM_MODE_PHOTO : false
property bool _cameraElapsedMode: _camera && _camera.cameraMode === QGCCameraControl.CAM_MODE_PHOTO && _camera.photoMode === QGCCameraControl.PHOTO_CAPTURE_TIMELAPSE
property real _spacers: ScreenTools.defaultFontPixelHeight * 0.5
property real _labelFieldWidth: ScreenTools.defaultFontPixelWidth * 30
property real _editFieldWidth: ScreenTools.defaultFontPixelWidth * 30
property bool _communicationLost: activeVehicle ? activeVehicle.connectionLost : false
- property bool _hasModes: _camera && _camera && _camera.hasModes
+ property bool _hasModes: _camera && _camera.hasModes
property bool _videoRecording: _camera && _camera.videoStatus === QGCCameraControl.VIDEO_CAPTURE_STATUS_RUNNING
+ property bool _photoIdle: _camera && _camera.photoStatus === QGCCameraControl.PHOTO_CAPTURE_IDLE
property bool _storageReady: _camera && _camera.storageStatus === QGCCameraControl.STORAGE_READY
property bool _batteryReady: _camera && _camera.batteryRemaining >= 0
property bool _storageIgnored: _camera && _camera.storageStatus === QGCCameraControl.STORAGE_NOT_SUPPORTED
- property bool _canShoot: !_videoRecording && _cameraPhotoIdle && ((_storageReady && _camera.storageFree > 0) || _storageIgnored)
- property int _curCameraIndex: _dynamicCameras ? _dynamicCameras.currentCamera : 0
+ property bool _canShoot: !_cameraModeUndefined && !_videoRecording && _photoIdle && ((_storageReady && _camera.storageFree > 0) || _storageIgnored)
function showSettings() {
mainWindow.showComponentDialog(cameraSettings, _cameraVideoMode ? qsTr("Video Settings") : qsTr("Camera Settings"), 70, StandardButton.Ok)
@@ -161,20 +161,20 @@ Column {
border.width: 3
anchors.horizontalCenter: parent.horizontalCenter
Rectangle {
- width: parent.width * (_videoRecording || (_cameraPhotoMode && !_cameraPhotoIdle && _cameraElapsedMode) ? 0.5 : 0.75)
+ width: parent.width * (_videoRecording || (_cameraPhotoMode && !_photoIdle && _cameraElapsedMode) ? 0.5 : 0.75)
height: width
- radius: _videoRecording || (_cameraPhotoMode && !_cameraPhotoIdle && _cameraElapsedMode) ? 0 : width * 0.5
- color: (_cameraModeUndefined || !_canShoot) ? qgcPal.colorGrey : qgcPal.colorRed
+ radius: _videoRecording || (_cameraPhotoMode && !_photoIdle && _cameraElapsedMode) ? 0 : width * 0.5
+ color: _canShoot ? qgcPal.colorRed : qgcPal.colorGrey
anchors.centerIn: parent
}
MouseArea {
anchors.fill: parent
- enabled: !_cameraModeUndefined && _canShoot
+ enabled: _canShoot
onClicked: {
if(_cameraVideoMode) {
_camera.toggleVideo()
} else {
- if(_cameraPhotoMode && !_cameraPhotoIdle && _cameraElapsedMode) {
+ if(_cameraPhotoMode && !_photoIdle && _cameraElapsedMode) {
_camera.stopTakePhoto()
} else {
_camera.takePhoto()
diff --git a/src/QtLocationPlugin/BingMapProvider.cpp b/src/QtLocationPlugin/BingMapProvider.cpp
index 7980e6d28fc3e4cc9e8338de21c2c710aa974587..b3f063a52169a72e920c90f5f0c99632c1a9f7af 100644
--- a/src/QtLocationPlugin/BingMapProvider.cpp
+++ b/src/QtLocationPlugin/BingMapProvider.cpp
@@ -1,51 +1,39 @@
+/****************************************************************************
+ *
+ * (c) 2009-2019 QGROUNDCONTROL PROJECT
+ *
+ * QGroundControl is licensed according to the terms in the file
+ * COPYING.md in the root of the source code directory.
+ *
+ ****************************************************************************/
+
#include "BingMapProvider.h"
-#if defined(DEBUG_GOOGLE_MAPS)
-#include
-#include
-#endif
-#include "QGCMapEngine.h"
-
-BingMapProvider::BingMapProvider(QString imageFormat, quint32 averageSize,
- QGeoMapType::MapStyle mapType, QObject* parent)
- : MapProvider(QString("https://www.bing.com/maps/"), imageFormat,
- averageSize, mapType, parent) {}
-
-BingMapProvider::~BingMapProvider() {}
-
-QString BingRoadMapProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
- Q_UNUSED(networkManager);
- QString key = _tileXYToQuadKey(x, y, zoom);
- return QString("http://ecn.t%1.tiles.virtualearth.net/tiles/"
- "r%2.png?g=%3&mkt=%4")
- .arg(_getServerNum(x, y, 4))
- .arg(key)
- .arg(_versionBingMaps)
- .arg(_language);
+
+BingMapProvider::BingMapProvider(const QString &imageFormat, const quint32 averageSize,
+ const QGeoMapType::MapStyle mapType, QObject* parent)
+ : MapProvider(QStringLiteral("https://www.bing.com/maps/"), imageFormat, averageSize, mapType, parent) {}
+
+static const QString RoadMapUrl = QStringLiteral("http://ecn.t%1.tiles.virtualearth.net/tiles/r%2.png?g=%3&mkt=%4");
+
+QString BingRoadMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
+ Q_UNUSED(networkManager)
+ const QString key = _tileXYToQuadKey(x, y, zoom);
+ return RoadMapUrl.arg(QString::number(_getServerNum(x, y, 4)), key, _versionBingMaps, _language);
}
-QString
-BingSatelliteMapProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
- Q_UNUSED(networkManager);
- QString key = _tileXYToQuadKey(x, y, zoom);
- return QString("http://ecn.t%1.tiles.virtualearth.net/tiles/"
- "a%2.jpeg?g=%3&mkt=%4")
- .arg(_getServerNum(x, y, 4))
- .arg(key)
- .arg(_versionBingMaps)
- .arg(_language);
+static const QString SatteliteMapUrl = QStringLiteral("http://ecn.t%1.tiles.virtualearth.net/tiles/a%2.jpeg?g=%3&mkt=%4");
+
+QString BingSatelliteMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
+ Q_UNUSED(networkManager)
+ const QString key = _tileXYToQuadKey(x, y, zoom);
+ return SatteliteMapUrl.arg(QString::number(_getServerNum(x, y, 4)) ,key ,_versionBingMaps ,_language);
}
-QString BingHybridMapProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
- Q_UNUSED(networkManager);
- QString key = _tileXYToQuadKey(x, y, zoom);
- return QString("http://ecn.t%1.tiles.virtualearth.net/tiles/"
- "h%2.jpeg?g=%3&mkt=%4")
- .arg(_getServerNum(x, y, 4))
- .arg(key)
- .arg(_versionBingMaps)
- .arg(_language);
+static const QString HybridMapUrl = QStringLiteral("http://ecn.t%1.tiles.virtualearth.net/tiles/h%2.jpeg?g=%3&mkt=%4");
+
+QString BingHybridMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
+ Q_UNUSED(networkManager)
+ const QString key = _tileXYToQuadKey(x, y, zoom);
+ return HybridMapUrl.arg(QString::number(_getServerNum(x, y, 4)), key, _versionBingMaps, _language);
}
diff --git a/src/QtLocationPlugin/BingMapProvider.h b/src/QtLocationPlugin/BingMapProvider.h
index 8b8fa6841badb741a6a03adacc11dff01d243806..092be8b2256cf498c910945c3167f4cf2dd3c0d7 100644
--- a/src/QtLocationPlugin/BingMapProvider.h
+++ b/src/QtLocationPlugin/BingMapProvider.h
@@ -1,46 +1,43 @@
+/****************************************************************************
+ *
+ * (c) 2009-2019 QGROUNDCONTROL PROJECT
+ *
+ * QGroundControl is licensed according to the terms in the file
+ * COPYING.md in the root of the source code directory.
+ *
+ ****************************************************************************/
+
#pragma once
#include "MapProvider.h"
-#include
-#include
-#include
-#include
-#include
-#include
-
class BingMapProvider : public MapProvider {
Q_OBJECT
- public:
- BingMapProvider(QString imageFormat, quint32 averageSize,
- QGeoMapType::MapStyle mapType, QObject* parent);
- ~BingMapProvider();
+public:
+ BingMapProvider(const QString &imageFormat, const quint32 averageSize,
+ const QGeoMapType::MapStyle mapType, QObject* parent = nullptr);
- protected:
- // Define the url to Request
- virtual QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) = 0;
+ ~BingMapProvider() = default;
- const QString _versionBingMaps = "563";
+protected:
+ const QString _versionBingMaps = QStringLiteral("563");
};
-const quint32 AVERAGE_BING_STREET_MAP = 1297;
-const quint32 AVERAGE_BING_SAT_MAP = 19597;
+static const quint32 AVERAGE_BING_STREET_MAP = 1297;
+static const quint32 AVERAGE_BING_SAT_MAP = 19597;
// -----------------------------------------------------------
// Bing Road Map
class BingRoadMapProvider : public BingMapProvider {
Q_OBJECT
- public:
- BingRoadMapProvider(QObject* parent)
- : BingMapProvider(QString("png"), AVERAGE_BING_STREET_MAP, QGeoMapType::StreetMap,
- parent) {}
-
- protected:
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+
+public:
+ BingRoadMapProvider(QObject* parent = nullptr)
+ : BingMapProvider(QStringLiteral("png"), AVERAGE_BING_STREET_MAP, QGeoMapType::StreetMap, parent) {}
+
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};
// -----------------------------------------------------------
@@ -48,14 +45,12 @@ class BingRoadMapProvider : public BingMapProvider {
class BingSatelliteMapProvider : public BingMapProvider {
Q_OBJECT
- public:
- BingSatelliteMapProvider(QObject* parent)
- : BingMapProvider(QString("jpg"), AVERAGE_BING_SAT_MAP, QGeoMapType::SatelliteMapDay,
- parent) {}
-
- protected:
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+
+public:
+ BingSatelliteMapProvider(QObject* parent = nullptr)
+ : BingMapProvider(QStringLiteral("jpg"), AVERAGE_BING_SAT_MAP, QGeoMapType::SatelliteMapDay, parent) {}
+
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};
// -----------------------------------------------------------
@@ -63,12 +58,9 @@ class BingSatelliteMapProvider : public BingMapProvider {
class BingHybridMapProvider : public BingMapProvider {
Q_OBJECT
- public:
- BingHybridMapProvider(QObject* parent)
- : BingMapProvider(QString("jpg"),AVERAGE_BING_SAT_MAP, QGeoMapType::HybridMap,
- parent) {}
-
- protected:
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+public:
+ BingHybridMapProvider(QObject* parent = nullptr)
+ : BingMapProvider(QStringLiteral("jpg"),AVERAGE_BING_SAT_MAP, QGeoMapType::HybridMap, parent) {}
+
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};
diff --git a/src/QtLocationPlugin/ElevationMapProvider.cpp b/src/QtLocationPlugin/ElevationMapProvider.cpp
index 03af2faece64aa7a900f89ea0970f838958e3446..717d7eb7abe852b0e31ef72351684f431b933bbf 100644
--- a/src/QtLocationPlugin/ElevationMapProvider.cpp
+++ b/src/QtLocationPlugin/ElevationMapProvider.cpp
@@ -5,42 +5,34 @@
#endif
#include "QGCMapEngine.h"
-ElevationProvider::ElevationProvider(QString imageFormat, quint32 averageSize,
- QGeoMapType::MapStyle mapType,
- QObject* parent)
- : MapProvider(QString("https://api.airmap.com/"), imageFormat, averageSize,
- mapType, parent) {}
-ElevationProvider::~ElevationProvider() {}
+ElevationProvider::ElevationProvider(const QString& imageFormat, quint32 averageSize, QGeoMapType::MapStyle mapType, QObject* parent)
+ : MapProvider(QStringLiteral("https://api.airmap.com/"), imageFormat, averageSize, mapType, parent) {}
//-----------------------------------------------------------------------------
-int AirmapElevationProvider::long2tileX(double lon, int z) {
- Q_UNUSED(z);
+int AirmapElevationProvider::long2tileX(const double lon, const int z) const {
+ Q_UNUSED(z)
return static_cast(floor((lon + 180.0) / srtm1TileSize));
}
//-----------------------------------------------------------------------------
-int AirmapElevationProvider::lat2tileY(double lat, int z) {
- Q_UNUSED(z);
+int AirmapElevationProvider::lat2tileY(const double lat, const int z) const {
+ Q_UNUSED(z)
return static_cast(floor((lat + 90.0) / srtm1TileSize));
}
-QString
-AirmapElevationProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
- Q_UNUSED(networkManager);
- Q_UNUSED(zoom);
- return QString("https://api.airmap.com/elevation/v1/ele/"
- "carpet?points=%1,%2,%3,%4")
+QString AirmapElevationProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
+ Q_UNUSED(networkManager)
+ Q_UNUSED(zoom)
+ return QString("https://api.airmap.com/elevation/v1/ele/carpet?points=%1,%2,%3,%4")
.arg(static_cast(y) * srtm1TileSize - 90.0)
.arg(static_cast(x) * srtm1TileSize - 180.0)
.arg(static_cast(y + 1) * srtm1TileSize - 90.0)
.arg(static_cast(x + 1) * srtm1TileSize - 180.0);
}
-QGCTileSet AirmapElevationProvider::getTileCount(int zoom, double topleftLon,
- double topleftLat,
- double bottomRightLon,
- double bottomRightLat) {
+QGCTileSet AirmapElevationProvider::getTileCount(const int zoom, const double topleftLon,
+ const double topleftLat, const double bottomRightLon,
+ const double bottomRightLat) const {
QGCTileSet set;
set.tileX0 = long2tileX(topleftLon, zoom);
set.tileY0 = lat2tileY(bottomRightLat, zoom);
diff --git a/src/QtLocationPlugin/ElevationMapProvider.h b/src/QtLocationPlugin/ElevationMapProvider.h
index 3694deb098ed2f898d75aecc8fc6169410b5c88d..5f7fadfdb59c373bd46f66c78f9e3bf8fe0e16e0 100644
--- a/src/QtLocationPlugin/ElevationMapProvider.h
+++ b/src/QtLocationPlugin/ElevationMapProvider.h
@@ -10,24 +10,17 @@
#include
#include
-const quint32 AVERAGE_AIRMAP_ELEV_SIZE = 2786;
+static const quint32 AVERAGE_AIRMAP_ELEV_SIZE = 2786;
//-----------------------------------------------------------------------------
-const double srtm1TileSize = 0.01;
+static const double srtm1TileSize = 0.01;
class ElevationProvider : public MapProvider {
Q_OBJECT
public:
- ElevationProvider(QString imageFormat, quint32 averageSize,
- QGeoMapType::MapStyle mapType, QObject* parent);
+ ElevationProvider(const QString& imageFormat, quint32 averageSize,
+ QGeoMapType::MapStyle mapType, QObject* parent = nullptr);
- ~ElevationProvider();
-
- bool _isElevationProvider(){return true;}
-
- protected:
- // Define the url to Request
- virtual QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) = 0;
+ virtual bool _isElevationProvider() const override { return true; }
};
// -----------------------------------------------------------
@@ -36,19 +29,19 @@ class ElevationProvider : public MapProvider {
class AirmapElevationProvider : public ElevationProvider {
Q_OBJECT
public:
- AirmapElevationProvider(QObject* parent)
- : ElevationProvider(QString("bin"), AVERAGE_AIRMAP_ELEV_SIZE,
+ AirmapElevationProvider(QObject* parent = nullptr)
+ : ElevationProvider(QStringLiteral("bin"), AVERAGE_AIRMAP_ELEV_SIZE,
QGeoMapType::StreetMap, parent) {}
- int long2tileX(double lon, int z);
- int lat2tileY(double lat, int z);
- QGCTileSet getTileCount(int zoom, double topleftLon,
- double topleftLat, double bottomRightLon,
- double bottomRightLat);
+ int long2tileX(const double lon, const int z) const override;
+
+ int lat2tileY(const double lat, const int z) const override;
+ QGCTileSet getTileCount(const int zoom, const double topleftLon,
+ const double topleftLat, const double bottomRightLon,
+ const double bottomRightLat) const override;
protected:
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};
diff --git a/src/QtLocationPlugin/EsriMapProvider.cpp b/src/QtLocationPlugin/EsriMapProvider.cpp
index 86a29c8f1b5bbb3a717b3de62ac82b927cae2c03..2ed0ea1ef129f108328c05b3c6af7d9922057748 100644
--- a/src/QtLocationPlugin/EsriMapProvider.cpp
+++ b/src/QtLocationPlugin/EsriMapProvider.cpp
@@ -1,61 +1,51 @@
+/****************************************************************************
+ *
+ * (c) 2009-2019 QGROUNDCONTROL PROJECT
+ *
+ * QGroundControl is licensed according to the terms in the file
+ * COPYING.md in the root of the source code directory.
+ *
+ ****************************************************************************/
+
#include "EsriMapProvider.h"
#include "QGCApplication.h"
-#include "QGCMapEngine.h"
#include "SettingsManager.h"
-QNetworkRequest
-EsriMapProvider::getTileURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
+EsriMapProvider::EsriMapProvider(const quint32 averageSize, const QGeoMapType::MapStyle mapType, QObject *parent)
+ : MapProvider(QString(), QString(), averageSize, mapType, parent) {}
+
+QNetworkRequest EsriMapProvider::getTileURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
//-- Build URL
QNetworkRequest request;
- QString url = _getURL(x, y, zoom, networkManager);
+ const QString url = _getURL(x, y, zoom, networkManager);
if (url.isEmpty()) {
return request;
}
request.setUrl(QUrl(url));
- request.setRawHeader("Accept", "*/*");
- QByteArray token = qgcApp()
- ->toolbox()
- ->settingsManager()
- ->appSettings()
- ->esriToken()
- ->rawValue()
- .toString()
- .toLatin1();
- request.setRawHeader("User-Agent",
- QByteArrayLiteral("Qt Location based application"));
- request.setRawHeader("User-Token", token);
+ request.setRawHeader(QByteArrayLiteral("Accept"), QByteArrayLiteral("*/*"));
+ const QByteArray token = qgcApp()->toolbox()->settingsManager()->appSettings()->esriToken()->rawValue().toString().toLatin1();
+ request.setRawHeader(QByteArrayLiteral("User-Agent"), QByteArrayLiteral("Qt Location based application"));
+ request.setRawHeader(QByteArrayLiteral("User-Token"), token);
return request;
}
-QString
-EsriWorldStreetMapProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
- Q_UNUSED(networkManager);
- return QString("http://services.arcgisonline.com/ArcGIS/rest/services/"
- "World_Street_Map/MapServer/tile/%1/%2/%3")
- .arg(zoom)
- .arg(y)
- .arg(x);
+static const QString WorldStreetMapUrl = QStringLiteral("http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/%1/%2/%3");
+
+QString EsriWorldStreetMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
+ Q_UNUSED(networkManager)
+ return WorldStreetMapUrl.arg(zoom).arg(y).arg(x);
}
-QString
-EsriWorldSatelliteMapProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
- Q_UNUSED(networkManager);
- return QString("http://server.arcgisonline.com/ArcGIS/rest/"
- "services/World_Imagery/MapServer/tile/%1/%2/%3")
- .arg(zoom)
- .arg(y)
- .arg(x);
+static const QString WorldSatelliteMapUrl = QStringLiteral("http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/%1/%2/%3");
+
+QString EsriWorldSatelliteMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
+ Q_UNUSED(networkManager)
+ return WorldSatelliteMapUrl.arg(zoom).arg(y).arg(x);
}
-QString EsriTerrainMapProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
- Q_UNUSED(networkManager);
- return QString("http://server.arcgisonline.com/ArcGIS/rest/services/"
- "World_Terrain_Base/MapServer/tile/%1/%2/%3")
- .arg(zoom)
- .arg(y)
- .arg(x);
+static const QString TerrainMapUrl = QStringLiteral("http://server.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer/tile/%1/%2/%3");
+
+QString EsriTerrainMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
+ Q_UNUSED(networkManager)
+ return TerrainMapUrl.arg(zoom).arg(y).arg(x);
}
diff --git a/src/QtLocationPlugin/EsriMapProvider.h b/src/QtLocationPlugin/EsriMapProvider.h
index bc703cc19638f7643a51d3675510dd2b7e60e9cb..ae1da84d78e1cff692fef71175557d914487c835 100644
--- a/src/QtLocationPlugin/EsriMapProvider.h
+++ b/src/QtLocationPlugin/EsriMapProvider.h
@@ -1,49 +1,51 @@
+/****************************************************************************
+ *
+ * (c) 2009-2019 QGROUNDCONTROL PROJECT
+ *
+ * QGroundControl is licensed according to the terms in the file
+ * COPYING.md in the root of the source code directory.
+ *
+ ****************************************************************************/
+
#pragma once
#include "MapProvider.h"
-#include
-#include
-#include
-#include
-#include
-#include
-
class EsriMapProvider : public MapProvider {
Q_OBJECT
+
public:
- using MapProvider::MapProvider;
+ EsriMapProvider(const quint32 averageSize, const QGeoMapType::MapStyle mapType, QObject* parent = nullptr);
- QNetworkRequest getTileURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+ QNetworkRequest getTileURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};
class EsriWorldStreetMapProvider : public EsriMapProvider {
Q_OBJECT
+
public:
- EsriWorldStreetMapProvider(QObject* parent)
- : EsriMapProvider(QString(""), QString(""), AVERAGE_TILE_SIZE,
- QGeoMapType::StreetMap, parent) {}
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+ EsriWorldStreetMapProvider(QObject* parent = nullptr)
+ : EsriMapProvider(AVERAGE_TILE_SIZE, QGeoMapType::StreetMap, parent) {}
+
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};
class EsriWorldSatelliteMapProvider : public EsriMapProvider {
Q_OBJECT
+
public:
- EsriWorldSatelliteMapProvider(QObject* parent)
- : EsriMapProvider(QString(""), QString(""), AVERAGE_TILE_SIZE,
- QGeoMapType::SatelliteMapDay, parent) {}
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+ EsriWorldSatelliteMapProvider(QObject* parent = nullptr)
+ : EsriMapProvider(AVERAGE_TILE_SIZE, QGeoMapType::SatelliteMapDay, parent) {}
+
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};
class EsriTerrainMapProvider : public EsriMapProvider {
Q_OBJECT
+
public:
- EsriTerrainMapProvider(QObject* parent)
- : EsriMapProvider(QString(""), QString(""), AVERAGE_TILE_SIZE,
- QGeoMapType::TerrainMap, parent) {}
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+ EsriTerrainMapProvider(QObject* parent = nullptr)
+ : EsriMapProvider(AVERAGE_TILE_SIZE, QGeoMapType::TerrainMap, parent) {}
+
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};
diff --git a/src/QtLocationPlugin/GenericMapProvider.cpp b/src/QtLocationPlugin/GenericMapProvider.cpp
index dfacb5f791b75ed18a849e391c875959f22056f1..d6a616258e67c5a9fb6aaf4dd5e331718b8c0eb6 100644
--- a/src/QtLocationPlugin/GenericMapProvider.cpp
+++ b/src/QtLocationPlugin/GenericMapProvider.cpp
@@ -1,103 +1,75 @@
+/****************************************************************************
+ *
+ * (c) 2009-2019 QGROUNDCONTROL PROJECT
+ *
+ * QGroundControl is licensed according to the terms in the file
+ * COPYING.md in the root of the source code directory.
+ *
+ ****************************************************************************/
#include "GenericMapProvider.h"
-#include "QGCMapEngine.h"
-QString StatkartMapProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
- Q_UNUSED(networkManager);
- return QString("http://opencache.statkart.no/gatekeeper/gk/"
- "gk.open_gmaps?layers=topo4&zoom=%1&x=%2&y=%3")
- .arg(zoom)
- .arg(x)
- .arg(y);
+static const QString StatkartMapUrl = QStringLiteral("http://opencache.statkart.no/gatekeeper/gk/gk.open_gmaps?layers=topo4&zoom=%1&x=%2&y=%3");
+
+QString StatkartMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
+ Q_UNUSED(networkManager)
+ return StatkartMapUrl.arg(zoom).arg(x).arg(y);
}
-QString EniroMapProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
- Q_UNUSED(networkManager);
- return QString("http://map.eniro.com/geowebcache/service/tms1.0.0/map/%1/"
- "%2/%3.png")
- .arg(zoom)
- .arg(x)
- .arg((1 << zoom) - 1 - y);
+static const QString EniroMapUrl = QStringLiteral("http://map.eniro.com/geowebcache/service/tms1.0.0/map/%1/%2/%3.png");
+
+QString EniroMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
+ Q_UNUSED(networkManager)
+ return EniroMapUrl.arg(zoom).arg(x).arg((1 << zoom) - 1 - y);
}
-QString MapQuestMapMapProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
- Q_UNUSED(networkManager);
- char letter = "1234"[_getServerNum(x, y, 4)];
- return QString("http://otile%1.mqcdn.com/tiles/1.0.0/map/%2/%3/%4.jpg")
- .arg(letter)
- .arg(zoom)
- .arg(x)
- .arg(y);
+static const QString MapQuestMapUrl = QStringLiteral("http://otile%1.mqcdn.com/tiles/1.0.0/map/%2/%3/%4.jpg");
+
+QString MapQuestMapMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
+ Q_UNUSED(networkManager)
+ return MapQuestMapUrl.arg(_getServerNum(x, y, 4)).arg(zoom).arg(x).arg(y);
}
-QString MapQuestSatMapProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
- Q_UNUSED(networkManager);
- char letter = "1234"[_getServerNum(x, y, 4)];
- return QString("http://otile%1.mqcdn.com/tiles/1.0.0/sat/%2/%3/%4.jpg")
- .arg(letter)
- .arg(zoom)
- .arg(x)
- .arg(y);
+static const QString MapQuestSatUrl = QStringLiteral("http://otile%1.mqcdn.com/tiles/1.0.0/sat/%2/%3/%4.jpg");
+
+QString MapQuestSatMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
+ Q_UNUSED(networkManager)
+ return MapQuestSatUrl.arg(_getServerNum(x, y, 4)).arg(zoom).arg(x).arg(y);
}
-QString
-VWorldStreetMapProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
- Q_UNUSED(networkManager);
- int gap = zoom - 6;
- int x_min = 53 * pow(2, gap);
- int x_max = 55 * pow(2, gap) + (2 * gap - 1);
- int y_min = 22 * pow(2, gap);
- int y_max = 26 * pow(2, gap) + (2 * gap - 1);
+QString VWorldStreetMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
+ Q_UNUSED(networkManager)
+ const int gap = zoom - 6;
+ const int x_min = int(53 * pow(2, gap));
+ const int x_max = int(55 * pow(2, gap) + (2 * gap - 1));
+ const int y_min = int(22 * pow(2, gap));
+ const int y_max = int(26 * pow(2, gap) + (2 * gap - 1));
if (zoom > 19) {
- return {};
- } else if (zoom > 5 && x >= x_min && x <= x_max && y >= y_min &&
- y <= y_max) {
- return QString(
- "http://xdworld.vworld.kr:8080/2d/Base/service/%1/%2/%3.png")
- .arg(zoom)
- .arg(x)
- .arg(y);
+ return QString();
+ } else if (zoom > 5 && x >= x_min && x <= x_max && y >= y_min && y <= y_max) {
+ return QString(QStringLiteral("http://xdworld.vworld.kr:8080/2d/Base/service/%1/%2/%3.png")).arg(zoom, x, y);
} else {
- QString key = _tileXYToQuadKey(x, y, zoom);
- return QString("http://ecn.t%1.tiles.virtualearth.net/tiles/"
- "r%2.png?g=%3&mkt=%4")
- .arg(_getServerNum(x, y, 4))
- .arg(key)
- .arg(_versionBingMaps)
- .arg(_language);
+ const QString key = _tileXYToQuadKey(x, y, zoom);
+ return QString(QStringLiteral("http://ecn.t%1.tiles.virtualearth.net/tiles/r%2.png?g=%3&mkt=%4"))
+ .arg(_getServerNum(x, y, 4)).arg(key, _versionBingMaps, _language);
}
}
-QString VWorldSatMapProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
- Q_UNUSED(networkManager);
- int gap = zoom - 6;
- int x_min = 53 * pow(2, gap);
- int x_max = 55 * pow(2, gap) + (2 * gap - 1);
- int y_min = 22 * pow(2, gap);
- int y_max = 26 * pow(2, gap) + (2 * gap - 1);
+QString VWorldSatMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
+ Q_UNUSED(networkManager)
+ const int gap = zoom - 6;
+ const int x_min = int(53 * pow(2, gap));
+ const int x_max = int(55 * pow(2, gap) + (2 * gap - 1));
+ const int y_min = int(22 * pow(2, gap));
+ const int y_max = int(26 * pow(2, gap) + (2 * gap - 1));
if (zoom > 19) {
- return {};
- } else if (zoom > 5 && x >= x_min && x <= x_max && y >= y_min &&
- y <= y_max) {
- return QString("http://xdworld.vworld.kr:8080/2d/Satellite/service/%1/"
- "%2/%3.jpeg")
- .arg(zoom)
- .arg(x)
- .arg(y);
+ return QString();
+ } else if (zoom > 5 && x >= x_min && x <= x_max && y >= y_min && y <= y_max) {
+ return QString("http://xdworld.vworld.kr:8080/2d/Satellite/service/%1/%2/%3.jpeg").arg(zoom, x, y);
} else {
- QString key = _tileXYToQuadKey(x, y, zoom);
- return QString("http://ecn.t%1.tiles.virtualearth.net/tiles/"
- "a%2.jpeg?g=%3&mkt=%4")
- .arg(_getServerNum(x, y, 4))
- .arg(key)
- .arg(_versionBingMaps)
- .arg(_language);
+ const QString key = _tileXYToQuadKey(x, y, zoom);
+ return QString("http://ecn.t%1.tiles.virtualearth.net/tiles/a%2.jpeg?g=%3&mkt=%4")
+ .arg(_getServerNum(x, y, 4)).arg(key, _versionBingMaps, _language);
}
}
diff --git a/src/QtLocationPlugin/GenericMapProvider.h b/src/QtLocationPlugin/GenericMapProvider.h
index 066af8e3790cb3a527c28293779f7c464e544395..9dafb9d0544328a0fdc4f08ea6d6ec4b3465c576 100644
--- a/src/QtLocationPlugin/GenericMapProvider.h
+++ b/src/QtLocationPlugin/GenericMapProvider.h
@@ -1,85 +1,77 @@
+/****************************************************************************
+ *
+ * (c) 2009-2019 QGROUNDCONTROL PROJECT
+ *
+ * QGroundControl is licensed according to the terms in the file
+ * COPYING.md in the root of the source code directory.
+ *
+ ****************************************************************************/
#pragma once
#include "MapProvider.h"
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
class StatkartMapProvider : public MapProvider {
Q_OBJECT
public:
- StatkartMapProvider(QObject* parent)
- : MapProvider(QString("https://www.norgeskart.no/"), QString("png"),
+ StatkartMapProvider(QObject* parent = nullptr)
+ : MapProvider(QStringLiteral("https://www.norgeskart.no/"), QStringLiteral("png"),
AVERAGE_TILE_SIZE, QGeoMapType::StreetMap, parent) {}
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};
class EniroMapProvider : public MapProvider {
Q_OBJECT
public:
- EniroMapProvider(QObject* parent)
- : MapProvider(QString("https://www.eniro.se/"), QString("png"),
+ EniroMapProvider(QObject* parent = nullptr)
+ : MapProvider(QStringLiteral("https://www.eniro.se/"), QStringLiteral("png"),
AVERAGE_TILE_SIZE, QGeoMapType::StreetMap, parent) {}
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};
class MapQuestMapMapProvider : public MapProvider {
Q_OBJECT
public:
- MapQuestMapMapProvider(QObject* parent)
- : MapProvider(QString("https://mapquest.com"), QString("jpg"),
+ MapQuestMapMapProvider(QObject* parent = nullptr)
+ : MapProvider(QStringLiteral("https://mapquest.com"), QStringLiteral("jpg"),
AVERAGE_TILE_SIZE, QGeoMapType::StreetMap, parent) {}
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};
class MapQuestSatMapProvider : public MapProvider {
Q_OBJECT
public:
- MapQuestSatMapProvider(QObject* parent)
- : MapProvider(QString("https://mapquest.com"), QString("jpg"),
- AVERAGE_TILE_SIZE, QGeoMapType::SatelliteMapDay, parent) {
- }
+ MapQuestSatMapProvider(QObject* parent = nullptr)
+ : MapProvider(QStringLiteral("https://mapquest.com"), QStringLiteral("jpg"),
+ AVERAGE_TILE_SIZE, QGeoMapType::SatelliteMapDay, parent) {}
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};
class VWorldStreetMapProvider : public MapProvider {
Q_OBJECT
public:
- VWorldStreetMapProvider(QObject* parent)
- : MapProvider(QString("www.vworld.kr"), QString("png"),
+ VWorldStreetMapProvider(QObject* parent = nullptr)
+ : MapProvider(QStringLiteral("www.vworld.kr"), QStringLiteral("png"),
AVERAGE_TILE_SIZE, QGeoMapType::StreetMap, parent) {}
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
private:
- const QString _versionBingMaps = "563";
+ const QString _versionBingMaps = QStringLiteral("563");
};
class VWorldSatMapProvider : public MapProvider {
Q_OBJECT
public:
- VWorldSatMapProvider(QObject* parent)
- : MapProvider(QString("www.vworld.kr"), QString("jpg"),
- AVERAGE_TILE_SIZE, QGeoMapType::SatelliteMapDay, parent) {
- }
+ VWorldSatMapProvider(QObject* parent = nullptr)
+ : MapProvider(QStringLiteral("www.vworld.kr"), QStringLiteral("jpg"),
+ AVERAGE_TILE_SIZE, QGeoMapType::SatelliteMapDay, parent) {}
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
private:
- const QString _versionBingMaps = "563";
+ const QString _versionBingMaps = QStringLiteral("563");
};
diff --git a/src/QtLocationPlugin/GoogleMapProvider.cpp b/src/QtLocationPlugin/GoogleMapProvider.cpp
index c2505dd09c963732bde158dafae58ea5325f6fc2..021b3c49b66a8d4c6667f274486c0b8086c79157 100644
--- a/src/QtLocationPlugin/GoogleMapProvider.cpp
+++ b/src/QtLocationPlugin/GoogleMapProvider.cpp
@@ -1,24 +1,33 @@
+/****************************************************************************
+ *
+ * (c) 2009-2019 QGROUNDCONTROL PROJECT
+ *
+ * QGroundControl is licensed according to the terms in the file
+ * COPYING.md in the root of the source code directory.
+ *
+ ****************************************************************************/
+
#include "GoogleMapProvider.h"
#if defined(DEBUG_GOOGLE_MAPS)
#include
#include
#endif
-#include "QGCMapEngine.h"
+#include
-GoogleMapProvider::GoogleMapProvider(QString imageFormat, quint32 averageSize,
- QGeoMapType::MapStyle mapType,
- QObject* parent)
- : MapProvider(QString("https://www.google.com/maps/preview"), imageFormat,
- averageSize, mapType, parent),
- _googleVersionRetrieved(false), _googleReply(nullptr) {
+#include "QGCMapEngine.h"
+GoogleMapProvider::GoogleMapProvider(const QString &imageFormat, const quint32 averageSize, const QGeoMapType::MapStyle mapType, QObject* parent)
+ : MapProvider(QStringLiteral("https://www.google.com/maps/preview"), imageFormat, averageSize, mapType, parent)
+ , _googleVersionRetrieved(false)
+ , _googleReply(nullptr)
+{
// Google version strings
- _versionGoogleMap = "m@354000000";
- _versionGoogleSatellite = "692";
- _versionGoogleLabels = "h@336";
- _versionGoogleTerrain = "t@354,r@354000000";
- _versionGoogleHybrid = "y";
- _secGoogleWord = "Galileo";
+ _versionGoogleMap = QStringLiteral("m@354000000");
+ _versionGoogleSatellite = QStringLiteral("692");
+ _versionGoogleLabels = QStringLiteral("h@336");
+ _versionGoogleTerrain = QStringLiteral("t@354,r@354000000");
+ _versionGoogleHybrid = QStringLiteral("y");
+ _secGoogleWord = QStringLiteral("Galileo");
}
GoogleMapProvider::~GoogleMapProvider() {
@@ -27,14 +36,13 @@ GoogleMapProvider::~GoogleMapProvider() {
}
//-----------------------------------------------------------------------------
-void GoogleMapProvider::_getSecGoogleWords(int x, int y, QString& sec1,
- QString& sec2) {
- sec1 = ""; // after &x=...
- sec2 = ""; // after &zoom=...
+void GoogleMapProvider::_getSecGoogleWords(const int x, const int y, QString& sec1, QString& sec2) const {
+ sec1 = QStringLiteral(""); // after &x=...
+ sec2 = QStringLiteral(""); // after &zoom=...
int seclen = ((x * 3) + y) % 8;
sec2 = _secGoogleWord.left(seclen);
if (y >= 10000 && y < 100000) {
- sec1 = "&s=";
+ sec1 = QStringLiteral("&s=");
}
}
@@ -47,19 +55,20 @@ void GoogleMapProvider::_networkReplyError(QNetworkReply::NetworkError error) {
}
}
//-----------------------------------------------------------------------------
-void GoogleMapProvider::_replyDestroyed() { _googleReply = nullptr; }
+void GoogleMapProvider::_replyDestroyed() {
+ _googleReply = nullptr;
+}
void GoogleMapProvider::_googleVersionCompleted() {
if (!_googleReply || (_googleReply->error() != QNetworkReply::NoError)) {
qDebug() << "Error collecting Google maps version info";
return;
}
- QString html = QString(_googleReply->readAll());
+ const QString html = QString(_googleReply->readAll());
#if defined(DEBUG_GOOGLE_MAPS)
- QString filename =
- QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
- filename += "/google.output";
+ QString filename = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
+ filename += QStringLiteral("/google.output");
QFile file(filename);
if (file.open(QIODevice::ReadWrite)) {
QTextStream stream(&file);
@@ -67,30 +76,24 @@ void GoogleMapProvider::_googleVersionCompleted() {
}
#endif
- QRegExp reg("\"*https?://mt\\D?\\d..*/vt\\?lyrs=m@(\\d*)",
- Qt::CaseInsensitive);
+ QRegExp reg(QStringLiteral("\"*https?://mt\\D?\\d..*/vt\\?lyrs=m@(\\d*)"), Qt::CaseInsensitive);
if (reg.indexIn(html) != -1) {
- QStringList gc = reg.capturedTexts();
- _versionGoogleMap = QString("m@%1").arg(gc[1]);
+ _versionGoogleMap = QString(QStringLiteral("m@%1")).arg(reg.capturedTexts().value(1, QString()));
}
- reg = QRegExp("\"*https?://khm\\D?\\d.googleapis.com/kh\\?v=(\\d*)",
- Qt::CaseInsensitive);
+ reg = QRegExp(QStringLiteral("\"*https?://khm\\D?\\d.googleapis.com/kh\\?v=(\\d*)"), Qt::CaseInsensitive);
if (reg.indexIn(html) != -1) {
- QStringList gc = reg.capturedTexts();
- _versionGoogleSatellite = gc[1];
+ _versionGoogleSatellite = reg.capturedTexts().value(1);
}
- reg = QRegExp("\"*https?://mt\\D?\\d..*/vt\\?lyrs=t@(\\d*),r@(\\d*)",
- Qt::CaseInsensitive);
+ reg = QRegExp(QStringLiteral("\"*https?://mt\\D?\\d..*/vt\\?lyrs=t@(\\d*),r@(\\d*)"), Qt::CaseInsensitive);
if (reg.indexIn(html) != -1) {
- QStringList gc = reg.capturedTexts();
- _versionGoogleTerrain = QString("t@%1,r@%2").arg(gc[1]).arg(gc[2]);
+ const QStringList gc = reg.capturedTexts();
+ _versionGoogleTerrain = QString(QStringLiteral("t@%1,r@%2")).arg(gc.value(1), gc.value(2));
}
_googleReply->deleteLater();
_googleReply = nullptr;
}
-void GoogleMapProvider::_tryCorrectGoogleVersions(
- QNetworkAccessManager* networkManager) {
+void GoogleMapProvider::_tryCorrectGoogleVersions(QNetworkAccessManager* networkManager) {
QMutexLocker locker(&_googleVersionMutex);
if (_googleVersionRetrieved) {
return;
@@ -105,37 +108,28 @@ void GoogleMapProvider::_tryCorrectGoogleVersions(
QSslConfiguration conf = qheader.sslConfiguration();
conf.setPeerVerifyMode(QSslSocket::VerifyNone);
qheader.setSslConfiguration(conf);
- QString url = "http://maps.google.com/maps/api/js?v=3.2&sensor=false";
+ const QString url = QStringLiteral("http://maps.google.com/maps/api/js?v=3.2&sensor=false");
qheader.setUrl(QUrl(url));
QByteArray ua;
ua.append(getQGCMapEngine()->userAgent());
qheader.setRawHeader("User-Agent", ua);
_googleReply = networkManager->get(qheader);
- connect(_googleReply, &QNetworkReply::finished, this,
- &GoogleMapProvider::_googleVersionCompleted);
- connect(_googleReply, &QNetworkReply::destroyed, this,
- &GoogleMapProvider::_replyDestroyed);
- connect(
- _googleReply,
- static_cast(
- &QNetworkReply::error),
- this, &GoogleMapProvider::_networkReplyError);
+ connect(_googleReply, &QNetworkReply::finished, this, &GoogleMapProvider::_googleVersionCompleted);
+ connect(_googleReply, &QNetworkReply::destroyed, this, &GoogleMapProvider::_replyDestroyed);
+ connect(_googleReply, QOverload::of(&QNetworkReply::error), this, &GoogleMapProvider::_networkReplyError);
networkManager->setProxy(proxy);
}
}
-QString
-GoogleStreetMapProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
+QString GoogleStreetMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
// http://mt1.google.com/vt/lyrs=m
- QString server = "mt";
- QString request = "vt";
- QString sec1 = ""; // after &x=...
- QString sec2 = ""; // after &zoom=...
+ QString server = QStringLiteral("mt");
+ QString request = QStringLiteral("vt");
+ QString sec1; // after &x=...
+ QString sec2; // after &zoom=...
_getSecGoogleWords(x, y, sec1, sec2);
_tryCorrectGoogleVersions(networkManager);
- return QString(
- "http://%1%2.google.com/%3/lyrs=%4&hl=%5&x=%6%7&y=%8&z=%9&s=%10")
+ return QString(QStringLiteral("http://%1%2.google.com/%3/lyrs=%4&hl=%5&x=%6%7&y=%8&z=%9&s=%10"))
.arg(server)
.arg(_getServerNum(x, y, 4))
.arg(request)
@@ -148,18 +142,15 @@ GoogleStreetMapProvider::_getURL(int x, int y, int zoom,
.arg(sec2);
}
-QString
-GoogleSatelliteMapProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
+QString GoogleSatelliteMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
// http://mt1.google.com/vt/lyrs=s
- QString server = "khm";
- QString request = "kh";
- QString sec1 = ""; // after &x=...
- QString sec2 = ""; // after &zoom=...
+ QString server = QStringLiteral("khm");
+ QString request = QStringLiteral("kh");
+ QString sec1; // after &x=...
+ QString sec2; // after &zoom=...
_getSecGoogleWords(x, y, sec1, sec2);
_tryCorrectGoogleVersions(networkManager);
- return QString(
- "http://%1%2.google.com/%3/v=%4&hl=%5&x=%6%7&y=%8&z=%9&s=%10")
+ return QString(QStringLiteral("http://%1%2.google.com/%3/v=%4&hl=%5&x=%6%7&y=%8&z=%9&s=%10"))
.arg(server)
.arg(_getServerNum(x, y, 4))
.arg(request)
@@ -172,17 +163,14 @@ GoogleSatelliteMapProvider::_getURL(int x, int y, int zoom,
.arg(sec2);
}
-QString
-GoogleLabelsMapProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
+QString GoogleLabelsMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
QString server = "mts";
QString request = "vt";
- QString sec1 = ""; // after &x=...
- QString sec2 = ""; // after &zoom=...
+ QString sec1; // after &x=...
+ QString sec2; // after &zoom=...
_getSecGoogleWords(x, y, sec1, sec2);
_tryCorrectGoogleVersions(networkManager);
- return QString(
- "http://%1%2.google.com/%3/lyrs=%4&hl=%5&x=%6%7&y=%8&z=%9&s=%10")
+ return QString(QStringLiteral("http://%1%2.google.com/%3/lyrs=%4&hl=%5&x=%6%7&y=%8&z=%9&s=%10"))
.arg(server)
.arg(_getServerNum(x, y, 4))
.arg(request)
@@ -195,17 +183,14 @@ GoogleLabelsMapProvider::_getURL(int x, int y, int zoom,
.arg(sec2);
}
-QString
-GoogleTerrainMapProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
- QString server = "mt";
- QString request = "vt";
- QString sec1 = ""; // after &x=...
- QString sec2 = ""; // after &zoom=...
+QString GoogleTerrainMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
+ QString server = QStringLiteral("mt");
+ QString request = QStringLiteral("vt");
+ QString sec1; // after &x=...
+ QString sec2; // after &zoom=...
_getSecGoogleWords(x, y, sec1, sec2);
_tryCorrectGoogleVersions(networkManager);
- return QString(
- "http://%1%2.google.com/%3/v=%4&hl=%5&x=%6%7&y=%8&z=%9&s=%10")
+ return QString(QStringLiteral("http://%1%2.google.com/%3/v=%4&hl=%5&x=%6%7&y=%8&z=%9&s=%10"))
.arg(server)
.arg(_getServerNum(x, y, 4))
.arg(request)
@@ -218,17 +203,14 @@ GoogleTerrainMapProvider::_getURL(int x, int y, int zoom,
.arg(sec2);
}
-QString
-GoogleHybridMapProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
- QString server = "mt";
- QString request = "vt";
- QString sec1 = ""; // after &x=...
- QString sec2 = ""; // after &zoom=...
+QString GoogleHybridMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
+ QString server = QStringLiteral("mt");
+ QString request = QStringLiteral("vt");
+ QString sec1; // after &x=...
+ QString sec2; // after &zoom=...
_getSecGoogleWords(x, y, sec1, sec2);
_tryCorrectGoogleVersions(networkManager);
- return QString(
- "http://%1%2.google.com/%3/lyrs=%4&hl=%5&x=%6%7&y=%8&z=%9&s=%10")
+ return QString(QStringLiteral("http://%1%2.google.com/%3/lyrs=%4&hl=%5&x=%6%7&y=%8&z=%9&s=%10"))
.arg(server)
.arg(_getServerNum(x, y, 4))
.arg(request)
diff --git a/src/QtLocationPlugin/GoogleMapProvider.h b/src/QtLocationPlugin/GoogleMapProvider.h
index 40921ea4b21d57e0396ac0c4fb58da0a0d45608c..51bcebce07142c6867d1795e27552d291f37cd80 100644
--- a/src/QtLocationPlugin/GoogleMapProvider.h
+++ b/src/QtLocationPlugin/GoogleMapProvider.h
@@ -1,35 +1,37 @@
+/****************************************************************************
+ *
+ * (c) 2009-2019 QGROUNDCONTROL PROJECT
+ *
+ * QGroundControl is licensed according to the terms in the file
+ * COPYING.md in the root of the source code directory.
+ *
+ ****************************************************************************/
+
#pragma once
#include "MapProvider.h"
-#include
-#include
-#include
#include
-#include
-#include
+#include
class GoogleMapProvider : public MapProvider {
Q_OBJECT
- public:
- GoogleMapProvider(QString imageFormat, quint32 averageSize,
- QGeoMapType::MapStyle mapType, QObject* parent);
+
+public:
+ GoogleMapProvider(const QString& imageFormat, const quint32 averageSize,
+ const QGeoMapType::MapStyle _mapType, QObject* parent = nullptr);
~GoogleMapProvider();
// Google Specific private slots
- private slots:
+private slots:
void _networkReplyError(QNetworkReply::NetworkError error);
void _googleVersionCompleted();
void _replyDestroyed();
- protected:
- // Define the url to Request
- virtual QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) = 0;
-
+protected:
// Google Specific private methods
- void _getSecGoogleWords(int x, int y, QString& sec1, QString& sec2);
+ void _getSecGoogleWords(const int x, const int y, QString& sec1, QString& sec2) const;
void _tryCorrectGoogleVersions(QNetworkAccessManager* networkManager);
// Google Specific attributes
@@ -57,23 +59,22 @@ class GoogleMapProvider : public MapProvider {
// CycleMap,
// CustomMap = 100
-const quint32 AVERAGE_GOOGLE_STREET_MAP = 4913;
-const quint32 AVERAGE_GOOGLE_SAT_MAP = 56887;
-const quint32 AVERAGE_GOOGLE_TERRAIN_MAP = 19391;
+static const quint32 AVERAGE_GOOGLE_STREET_MAP = 4913;
+static const quint32 AVERAGE_GOOGLE_SAT_MAP = 56887;
+static const quint32 AVERAGE_GOOGLE_TERRAIN_MAP = 19391;
// -----------------------------------------------------------
// Google Street Map
class GoogleStreetMapProvider : public GoogleMapProvider {
Q_OBJECT
- public:
- GoogleStreetMapProvider(QObject* parent)
- : GoogleMapProvider(QString("png"), AVERAGE_GOOGLE_STREET_MAP,
- QGeoMapType::StreetMap, parent) {}
-
- protected:
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+
+public:
+ GoogleStreetMapProvider(QObject* parent = nullptr)
+ : GoogleMapProvider(QStringLiteral("png"), AVERAGE_GOOGLE_STREET_MAP, QGeoMapType::StreetMap, parent) {}
+
+protected:
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};
// -----------------------------------------------------------
@@ -81,14 +82,14 @@ class GoogleStreetMapProvider : public GoogleMapProvider {
class GoogleSatelliteMapProvider : public GoogleMapProvider {
Q_OBJECT
- public:
- GoogleSatelliteMapProvider(QObject* parent)
- : GoogleMapProvider(QString("jpg"), AVERAGE_GOOGLE_SAT_MAP,
+
+public:
+ GoogleSatelliteMapProvider(QObject* parent = nullptr)
+ : GoogleMapProvider(QStringLiteral("jpg"), AVERAGE_GOOGLE_SAT_MAP,
QGeoMapType::SatelliteMapDay, parent) {}
- protected:
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+protected:
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};
// -----------------------------------------------------------
@@ -96,14 +97,13 @@ class GoogleSatelliteMapProvider : public GoogleMapProvider {
class GoogleLabelsMapProvider : public GoogleMapProvider {
Q_OBJECT
- public:
- GoogleLabelsMapProvider(QObject* parent)
- : GoogleMapProvider(QString("png"), AVERAGE_TILE_SIZE,
- QGeoMapType::CustomMap, parent) {}
-
- protected:
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+
+public:
+ GoogleLabelsMapProvider(QObject* parent = nullptr)
+ : GoogleMapProvider(QStringLiteral("png"), AVERAGE_TILE_SIZE, QGeoMapType::CustomMap, parent) {}
+
+protected:
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};
// -----------------------------------------------------------
@@ -111,14 +111,13 @@ class GoogleLabelsMapProvider : public GoogleMapProvider {
class GoogleTerrainMapProvider : public GoogleMapProvider {
Q_OBJECT
- public:
- GoogleTerrainMapProvider(QObject* parent)
- : GoogleMapProvider(QString("png"), AVERAGE_GOOGLE_TERRAIN_MAP,
- QGeoMapType::TerrainMap, parent) {}
-
- protected:
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+
+public:
+ GoogleTerrainMapProvider(QObject* parent = nullptr)
+ : GoogleMapProvider(QStringLiteral("png"), AVERAGE_GOOGLE_TERRAIN_MAP, QGeoMapType::TerrainMap, parent) {}
+
+protected:
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};
// -----------------------------------------------------------
@@ -126,12 +125,11 @@ class GoogleTerrainMapProvider : public GoogleMapProvider {
class GoogleHybridMapProvider : public GoogleMapProvider {
Q_OBJECT
- public:
- GoogleHybridMapProvider(QObject* parent)
- : GoogleMapProvider(QString("png"), AVERAGE_GOOGLE_SAT_MAP,
- QGeoMapType::HybridMap, parent) {}
-
- protected:
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+
+public:
+ GoogleHybridMapProvider(QObject* parent = nullptr)
+ : GoogleMapProvider(QStringLiteral("png"), AVERAGE_GOOGLE_SAT_MAP, QGeoMapType::HybridMap, parent) {}
+
+protected:
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
};
diff --git a/src/QtLocationPlugin/MapProvider.cpp b/src/QtLocationPlugin/MapProvider.cpp
index 2d1a8fee3df6039f1a28c8455a31f3ce27905960..e96f50ea305892ffb4cfc758e75b17bc63246dd2 100644
--- a/src/QtLocationPlugin/MapProvider.cpp
+++ b/src/QtLocationPlugin/MapProvider.cpp
@@ -1,39 +1,54 @@
+/****************************************************************************
+ *
+ * (c) 2009-2019 QGROUNDCONTROL PROJECT
+ *
+ * QGroundControl is licensed according to the terms in the file
+ * COPYING.md in the root of the source code directory.
+ *
+ ****************************************************************************/
+
+#include
+#include
+
#include "MapProvider.h"
-MapProvider::MapProvider(QString referrer, QString imageFormat,
- quint32 averageSize, QGeoMapType::MapStyle mapType,QObject* parent)
- : QObject(parent), _referrer(referrer), _imageFormat(imageFormat),
- _averageSize(averageSize), _mapType(mapType) {
- QStringList langs = QLocale::system().uiLanguages();
+MapProvider::MapProvider(const QString &referrer, const QString &imageFormat,
+ const quint32 averageSize, const QGeoMapType::MapStyle mapType, QObject* parent)
+ : QObject(parent)
+ , _referrer(referrer)
+ , _imageFormat(imageFormat)
+ , _averageSize(averageSize)
+ , _mapType(mapType)
+{
+ const QStringList langs = QLocale::system().uiLanguages();
if (langs.length() > 0) {
_language = langs[0];
}
}
-QNetworkRequest MapProvider::getTileURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
+QNetworkRequest MapProvider::getTileURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
//-- Build URL
QNetworkRequest request;
- QString url = _getURL(x, y, zoom, networkManager);
+ const QString url = _getURL(x, y, zoom, networkManager);
if (url.isEmpty()) {
return request;
}
request.setUrl(QUrl(url));
- request.setRawHeader("Accept", "*/*");
- request.setRawHeader("Referrer", _referrer.toUtf8());
- request.setRawHeader("User-Agent", _userAgent);
+ request.setRawHeader(QByteArrayLiteral("Accept"), QByteArrayLiteral("*/*"));
+ request.setRawHeader(QByteArrayLiteral("Referrer"), _referrer.toUtf8());
+ request.setRawHeader(QByteArrayLiteral("User-Agent"), _userAgent);
return request;
}
-QString MapProvider::getImageFormat(const QByteArray& image) {
+QString MapProvider::getImageFormat(const QByteArray& image) const {
QString format;
if (image.size() > 2) {
if (image.startsWith(reinterpret_cast(pngSignature)))
- format = "png";
+ format = QStringLiteral("png");
else if (image.startsWith(reinterpret_cast(jpegSignature)))
- format = "jpg";
+ format = QStringLiteral("jpg");
else if (image.startsWith(reinterpret_cast(gifSignature)))
- format = "gif";
+ format = QStringLiteral("gif");
else {
return _imageFormat;
}
@@ -41,11 +56,11 @@ QString MapProvider::getImageFormat(const QByteArray& image) {
return format;
}
-QString MapProvider::_tileXYToQuadKey(int tileX, int tileY, int levelOfDetail) {
+QString MapProvider::_tileXYToQuadKey(const int tileX, const int tileY, const int levelOfDetail) const {
QString quadKey;
for (int i = levelOfDetail; i > 0; i--) {
char digit = '0';
- int mask = 1 << (i - 1);
+ const int mask = 1 << (i - 1);
if ((tileX & mask) != 0) {
digit++;
}
@@ -58,27 +73,29 @@ QString MapProvider::_tileXYToQuadKey(int tileX, int tileY, int levelOfDetail) {
return quadKey;
}
-int MapProvider::_getServerNum(int x, int y, int max) {
+int MapProvider::_getServerNum(const int x, const int y, const int max) const {
return (x + 2 * y) % max;
}
-int MapProvider::long2tileX(double lon, int z) {
+int MapProvider::long2tileX(const double lon, const int z) const {
return static_cast(floor((lon + 180.0) / 360.0 * pow(2.0, z)));
}
//-----------------------------------------------------------------------------
-int MapProvider::lat2tileY(double lat, int z) {
+int MapProvider::lat2tileY(const double lat, const int z) const {
return static_cast(floor(
(1.0 -
log(tan(lat * M_PI / 180.0) + 1.0 / cos(lat * M_PI / 180.0)) / M_PI) /
2.0 * pow(2.0, z)));
}
-bool MapProvider::_isElevationProvider() { return false; }
+bool MapProvider::_isElevationProvider() const {
+ return false;
+}
-QGCTileSet MapProvider::getTileCount(int zoom, double topleftLon,
- double topleftLat, double bottomRightLon,
- double bottomRightLat) {
+QGCTileSet MapProvider::getTileCount(const int zoom, const double topleftLon,
+ const double topleftLat, const double bottomRightLon,
+ const double bottomRightLat) const {
QGCTileSet set;
set.tileX0 = long2tileX(topleftLon, zoom);
set.tileY0 = lat2tileY(topleftLat, zoom);
diff --git a/src/QtLocationPlugin/MapProvider.h b/src/QtLocationPlugin/MapProvider.h
index b053a05c673d31d899b6176da04c07ff500f4844..74fdcdead2cdc91205e5c4c650d5604c2c06a57a 100644
--- a/src/QtLocationPlugin/MapProvider.h
+++ b/src/QtLocationPlugin/MapProvider.h
@@ -1,50 +1,61 @@
-#pragma once
+/****************************************************************************
+ *
+ * (c) 2009-2019 QGROUNDCONTROL PROJECT
+ *
+ * QGroundControl is licensed according to the terms in the file
+ * COPYING.md in the root of the source code directory.
+ *
+ ****************************************************************************/
-#include
-#include "QGCTileSet.h"
+#pragma once
#include
-#include
-#include
#include
+
+#include
+
+#include "QGCTileSet.h"
#include
-static const unsigned char pngSignature[] = {0x89, 0x50, 0x4E, 0x47, 0x0D,
- 0x0A, 0x1A, 0x0A, 0x00};
+static const unsigned char pngSignature[] = {0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00};
static const unsigned char jpegSignature[] = {0xFF, 0xD8, 0xFF, 0x00};
static const unsigned char gifSignature[] = {0x47, 0x49, 0x46, 0x38, 0x00};
-const quint32 AVERAGE_TILE_SIZE = 13652;
+static const quint32 AVERAGE_TILE_SIZE = 13652;
+
+class QNetworkRequest;
+class QNetworkAccessManager;
class MapProvider : public QObject {
Q_OBJECT
- public:
- MapProvider(
- QString referrer, QString imageFormat, quint32 averageSize,
- QGeoMapType::MapStyle _mapType = QGeoMapType::CustomMap, QObject* parent = nullptr);
- QNetworkRequest getTileURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
+public:
+ MapProvider(const QString& referrer, const QString& imageFormat, const quint32 averageSize,
+ const QGeoMapType::MapStyle mapType = QGeoMapType::CustomMap, QObject* parent = nullptr);
- QString getImageFormat(const QByteArray& image);
+ virtual QNetworkRequest getTileURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager);
- quint32 getAverageSize(){return _averageSize;}
+ QString getImageFormat(const QByteArray& image) const;
- QGeoMapType::MapStyle getMapStyle(){return _mapType;}
+ quint32 getAverageSize() const { return _averageSize; }
- virtual int long2tileX(double lon, int z);
+ QGeoMapType::MapStyle getMapStyle() { return _mapType; }
- virtual int lat2tileY(double lat, int z);
+ virtual int long2tileX(const double lon, const int z) const;
- virtual bool _isElevationProvider();
+ virtual int lat2tileY(const double lat, const int z) const;
- virtual QGCTileSet getTileCount(int zoom, double topleftLon,
- double topleftLat, double bottomRightLon,
- double bottomRightLat);
+ virtual bool _isElevationProvider() const;
- protected:
- QString _tileXYToQuadKey(int tileX, int tileY, int levelOfDetail);
- int _getServerNum(int x, int y, int max);
+ virtual QGCTileSet getTileCount(const int zoom, const double topleftLon,
+ const double topleftLat, const double bottomRightLon,
+ const double bottomRightLat) const;
+
+protected:
+ QString _tileXYToQuadKey(const int tileX, const int tileY, const int levelOfDetail) const;
+ int _getServerNum(const int x, const int y, const int max) const;
+ // Define the url to Request
+ virtual QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) = 0;
// Define Referrer for Request RawHeader
QString _referrer;
@@ -54,7 +65,4 @@ class MapProvider : public QObject {
QString _language;
QGeoMapType::MapStyle _mapType;
- // Define the url to Request
- virtual QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) = 0;
};
diff --git a/src/QtLocationPlugin/MapboxMapProvider.cpp b/src/QtLocationPlugin/MapboxMapProvider.cpp
index 555a52fa0461e0730beba7ff660090dfa3a74781..214bd8beca9f8338c5619e1f60a8bcae05d55152 100644
--- a/src/QtLocationPlugin/MapboxMapProvider.cpp
+++ b/src/QtLocationPlugin/MapboxMapProvider.cpp
@@ -3,33 +3,19 @@
#include "QGCMapEngine.h"
#include "SettingsManager.h"
-MapboxMapProvider::MapboxMapProvider(QString mapName, quint32 averageSize,
- QGeoMapType::MapStyle mapType,
- QObject* parent)
- : MapProvider(QString("https://www.mapbox.com/"), QString("jpg"),
- averageSize, mapType, parent), mapboxName(mapName) {
+static const QString MapBoxUrl = QStringLiteral("https://api.mapbox.com/v4/%1/%2/%3/%4.jpg80?access_token=%5");
+
+MapboxMapProvider::MapboxMapProvider(const QString &mapName, const quint32 averageSize, const QGeoMapType::MapStyle mapType, QObject* parent)
+ : MapProvider(QStringLiteral("https://www.mapbox.com/"), QStringLiteral("jpg"), averageSize, mapType, parent)
+ , _mapboxName(mapName)
+{
}
-QString
-MapboxMapProvider::_getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager) {
- Q_UNUSED(networkManager);
- QString mapBoxToken = qgcApp()
- ->toolbox()
- ->settingsManager()
- ->appSettings()
- ->mapboxToken()
- ->rawValue()
- .toString();
+QString MapboxMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
+ Q_UNUSED(networkManager)
+ const QString mapBoxToken = qgcApp()->toolbox()->settingsManager()->appSettings()->mapboxToken()->rawValue().toString();
if (!mapBoxToken.isEmpty()) {
- QString server = "https://api.mapbox.com/v4/";
- server += mapboxName;
- server += QString("/%1/%2/%3.jpg80?access_token=%4")
- .arg(zoom)
- .arg(x)
- .arg(y)
- .arg(mapBoxToken);
- return server;
+ return MapBoxUrl.arg(_mapboxName).arg(zoom).arg(x).arg(y).arg(mapBoxToken);
}
- return QString("");
+ return QString();
}
diff --git a/src/QtLocationPlugin/MapboxMapProvider.h b/src/QtLocationPlugin/MapboxMapProvider.h
index 9b31e308dbfc2f5f78e3e223711a184fccc7771b..a6eb90a3cb26fec023cf52e7ca224f27983406db 100644
--- a/src/QtLocationPlugin/MapboxMapProvider.h
+++ b/src/QtLocationPlugin/MapboxMapProvider.h
@@ -1,136 +1,153 @@
+/****************************************************************************
+ *
+ * (c) 2009-2019 QGROUNDCONTROL PROJECT
+ *
+ * QGroundControl is licensed according to the terms in the file
+ * COPYING.md in the root of the source code directory.
+ *
+ ****************************************************************************/
+
#pragma once
#include "MapProvider.h"
-#include
-#include
-#include
-#include
-#include
-#include
-
-const quint32 AVERAGE_MAPBOX_SAT_MAP = 15739;
-const quint32 AVERAGE_MAPBOX_STREET_MAP = 5648;
+static const quint32 AVERAGE_MAPBOX_SAT_MAP = 15739;
+static const quint32 AVERAGE_MAPBOX_STREET_MAP = 5648;
class MapboxMapProvider : public MapProvider {
Q_OBJECT
- public:
- MapboxMapProvider(QString mapName, quint32 averageSize,
- QGeoMapType::MapStyle mapType, QObject* parent);
- QString _getURL(int x, int y, int zoom,
- QNetworkAccessManager* networkManager);
- protected:
- QString mapboxName;
+
+public:
+ MapboxMapProvider(const QString& mapName, const quint32 averageSize, const QGeoMapType::MapStyle mapType, QObject* parent = nullptr);
+
+protected:
+ QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;
+
+ QString _mapboxName;
};
class MapboxStreetMapProvider : public MapboxMapProvider {
Q_OBJECT
- public:
- MapboxStreetMapProvider(QObject* parent)
- : MapboxMapProvider("mapbox.streets", AVERAGE_MAPBOX_STREET_MAP,
+
+public:
+ MapboxStreetMapProvider(QObject* parent = nullptr)
+ : MapboxMapProvider(QStringLiteral("mapbox.streets"), AVERAGE_MAPBOX_STREET_MAP,
QGeoMapType::StreetMap, parent) {}
};
class MapboxLightMapProvider : public MapboxMapProvider {
Q_OBJECT
- public:
- MapboxLightMapProvider(QObject* parent)
- : MapboxMapProvider("mapbox.light", AVERAGE_TILE_SIZE,
+
+public:
+ MapboxLightMapProvider(QObject* parent = nullptr)
+ : MapboxMapProvider(QStringLiteral("mapbox.light"), AVERAGE_TILE_SIZE,
QGeoMapType::CustomMap, parent) {}
};
class MapboxDarkMapProvider : public MapboxMapProvider {
Q_OBJECT
- public:
- MapboxDarkMapProvider(QObject* parent)
- : MapboxMapProvider("mapbox.dark", AVERAGE_TILE_SIZE,
+
+public:
+ MapboxDarkMapProvider(QObject* parent = nullptr)
+ : MapboxMapProvider(QStringLiteral("mapbox.dark"), AVERAGE_TILE_SIZE,
QGeoMapType::CustomMap, parent) {}
};
class MapboxSatelliteMapProvider : public MapboxMapProvider {
Q_OBJECT
- public:
- MapboxSatelliteMapProvider(QObject* parent)
- : MapboxMapProvider("mapbox.satellite", AVERAGE_MAPBOX_SAT_MAP,
+
+public:
+ MapboxSatelliteMapProvider(QObject* parent = nullptr)
+ : MapboxMapProvider(QStringLiteral("mapbox.satellite"), AVERAGE_MAPBOX_SAT_MAP,
QGeoMapType::SatelliteMapDay, parent) {}
};
class MapboxHybridMapProvider : public MapboxMapProvider {
Q_OBJECT
- public:
- MapboxHybridMapProvider(QObject* parent)
- : MapboxMapProvider("mapbox.hybrid", AVERAGE_MAPBOX_SAT_MAP,
+
+public:
+ MapboxHybridMapProvider(QObject* parent = nullptr)
+ : MapboxMapProvider(QStringLiteral("mapbox.hybrid"), AVERAGE_MAPBOX_SAT_MAP,
QGeoMapType::HybridMap, parent) {}
};
class MapboxWheatPasteMapProvider : public MapboxMapProvider {
Q_OBJECT
- public:
- MapboxWheatPasteMapProvider(QObject* parent)
- : MapboxMapProvider("mapbox.wheatpaste", AVERAGE_TILE_SIZE,
+
+public:
+ MapboxWheatPasteMapProvider(QObject* parent = nullptr)
+ : MapboxMapProvider(QStringLiteral("mapbox.wheatpaste"), AVERAGE_TILE_SIZE,
QGeoMapType::CustomMap, parent) {}
};
class MapboxStreetsBasicMapProvider : public MapboxMapProvider {
Q_OBJECT
- public:
- MapboxStreetsBasicMapProvider(QObject* parent)
- : MapboxMapProvider("mapbox.streets-basic", AVERAGE_TILE_SIZE,
+
+public:
+ MapboxStreetsBasicMapProvider(QObject* parent = nullptr)
+ : MapboxMapProvider(QStringLiteral("mapbox.streets-basic"), AVERAGE_TILE_SIZE,
QGeoMapType::StreetMap, parent) {}
};
class MapboxComicMapProvider : public MapboxMapProvider {
Q_OBJECT
- public:
- MapboxComicMapProvider(QObject* parent)
- : MapboxMapProvider("mapbox.comic", AVERAGE_TILE_SIZE,
+
+public:
+ MapboxComicMapProvider(QObject* parent = nullptr)
+ : MapboxMapProvider(QStringLiteral("mapbox.comic"), AVERAGE_TILE_SIZE,
QGeoMapType::CustomMap, parent) {}
};
class MapboxOutdoorsMapProvider : public MapboxMapProvider {
Q_OBJECT
- public:
- MapboxOutdoorsMapProvider(QObject* parent)
- : MapboxMapProvider("mapbox.outdoors", AVERAGE_TILE_SIZE,
+
+public:
+ MapboxOutdoorsMapProvider(QObject* parent = nullptr)
+ : MapboxMapProvider(QStringLiteral("mapbox.outdoors"), AVERAGE_TILE_SIZE,
QGeoMapType::CustomMap, parent) {}
};
class MapboxRunBikeHikeMapProvider : public MapboxMapProvider {
Q_OBJECT
- public:
- MapboxRunBikeHikeMapProvider(QObject* parent)
- : MapboxMapProvider("mapbox.run-bike-hike", AVERAGE_MAPBOX_STREET_MAP,
+
+public:
+ MapboxRunBikeHikeMapProvider(QObject* parent = nullptr)
+ : MapboxMapProvider(QStringLiteral("mapbox.run-bike-hike"), AVERAGE_MAPBOX_STREET_MAP,
QGeoMapType::CycleMap, parent) {}
};
class MapboxPencilMapProvider : public MapboxMapProvider {
Q_OBJECT
- public:
- MapboxPencilMapProvider(QObject* parent)
- : MapboxMapProvider("mapbox.pencil", AVERAGE_TILE_SIZE,
+
+public:
+ MapboxPencilMapProvider(QObject* parent = nullptr)
+ : MapboxMapProvider(QStringLiteral("mapbox.pencil"), AVERAGE_TILE_SIZE,
QGeoMapType::CustomMap, parent) {}
};
class MapboxPiratesMapProvider : public MapboxMapProvider {
Q_OBJECT
- public:
- MapboxPiratesMapProvider(QObject* parent)
- : MapboxMapProvider("mapbox.pirates", AVERAGE_TILE_SIZE,
+
+public:
+ MapboxPiratesMapProvider(QObject* parent = nullptr)
+ : MapboxMapProvider(QStringLiteral("mapbox.pirates"), AVERAGE_TILE_SIZE,
QGeoMapType::CustomMap, parent) {}
};
class MapboxEmeraldMapProvider : public MapboxMapProvider {
Q_OBJECT
- public:
- MapboxEmeraldMapProvider(QObject* parent)
- : MapboxMapProvider("mapbox.emerald", AVERAGE_TILE_SIZE,
+
+public:
+ MapboxEmeraldMapProvider(QObject* parent = nullptr)
+ : MapboxMapProvider(QStringLiteral("mapbox.emerald"), AVERAGE_TILE_SIZE,
QGeoMapType::CustomMap, parent) {}
};
class MapboxHighContrastMapProvider : public MapboxMapProvider {
Q_OBJECT
- public:
- MapboxHighContrastMapProvider(QObject* parent)
- : MapboxMapProvider("mapbox.high-contrast", AVERAGE_TILE_SIZE,
+
+public:
+ MapboxHighContrastMapProvider(QObject* parent = nullptr)
+ : MapboxMapProvider(QStringLiteral("mapbox.high-contrast"), AVERAGE_TILE_SIZE,
QGeoMapType::CustomMap, parent) {}
};
diff --git a/src/Terrain/patch b/src/Terrain/patch
deleted file mode 100644
index 56b10ed499b2045da72b665ea87a4713f0e0e12a..0000000000000000000000000000000000000000
--- a/src/Terrain/patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff --git a/libs/mavlink/include/mavlink/v2.0 b/libs/mavlink/include/mavlink/v2.0
---- a/libs/mavlink/include/mavlink/v2.0
-+++ b/libs/mavlink/include/mavlink/v2.0
-@@ -1 +1 @@
--Subproject commit 68869da6575d4ca61b92e9081b7c81587f157ed6
-+Subproject commit 68869da6575d4ca61b92e9081b7c81587f157ed6-dirty
-diff --git a/src/Terrain/TerrainQueryManager.cc b/src/Terrain/TerrainQueryManager.cc
-index 59ec2d4..c38a870 100644
---- a/src/Terrain/TerrainQueryManager.cc
-+++ b/src/Terrain/TerrainQueryManager.cc
-@@ -3,17 +3,20 @@
- TerrainQueryManager::TerrainQueryManager(QObject* parent)
- : TerrainQueryInterface(parent)
- {
-- _providerAirMap = new TerrainOfflineAirMapQuery(parent);
-+ connect(&_providerAirMap, &TerrainQueryInterface::coordinateHeightsReceived, this, &TerrainQueryInterface::coordinateHeightsReceived);
-+ connect(&_providerAirMap, &TerrainQueryInterface::pathHeightsReceived, this, &TerrainQueryInterface::pathHeightsReceived);
-+ connect(&_providerAirMap, &TerrainQueryInterface::carpetHeightsReceived, this, &TerrainQueryInterface::carpetHeightsReceived);
- }
-
- void TerrainQueryManager::requestCoordinateHeights(const QList& coordinates){
-- _providerAirMap->requestCoordinateHeights(coordinates);
-+ _providerAirMap.requestCoordinateHeights(coordinates);
- }
-
- void TerrainQueryManager::requestPathHeights(const QGeoCoordinate& fromCoord, const QGeoCoordinate& toCoord){
-- _providerAirMap->requestPathHeights(fromCoord,toCoord);
-+ _providerAirMap.requestPathHeights(fromCoord,toCoord);
- }
-
- void TerrainQueryManager::requestCarpetHeights(const QGeoCoordinate& swCoord, const QGeoCoordinate& neCoord, bool statsOnly){
-- _providerAirMap->requestCarpetHeights(swCoord,neCoord,statsOnly);
-+ _providerAirMap.requestCarpetHeights(swCoord,neCoord,statsOnly);
- }
-+
-diff --git a/src/Terrain/TerrainQueryManager.h b/src/Terrain/TerrainQueryManager.h
-index 2921679..9b4494c 100644
---- a/src/Terrain/TerrainQueryManager.h
-+++ b/src/Terrain/TerrainQueryManager.h
-@@ -27,12 +27,12 @@ public:
- /// @param neCoord North-East bound of rectangular area to query
- /// @param statsOnly true: Return only stats, no carpet data
- void requestCarpetHeights(const QGeoCoordinate& swCoord, const QGeoCoordinate& neCoord, bool statsOnly);
--
-+
- signals:
- void coordinateHeightsReceived(bool success, QList heights);
- void pathHeightsReceived(bool success, double latStep, double lonStep, const QList& heights);
- void carpetHeightsReceived(bool success, double minHeight, double maxHeight, const QList>& carpet);
-
- private:
-- TerrainOfflineAirMapQuery * _providerAirMap;
-+ TerrainOfflineAirMapQuery _providerAirMap;
- };