Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qgroundcontrol
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
15340511
Commit
15340511
authored
Sep 17, 2019
by
Pierre TILAK
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Re-add Mapbox
parent
671987ba
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
185 additions
and
60 deletions
+185
-60
GenericMapProvider.cpp
src/QtLocationPlugin/GenericMapProvider.cpp
+1
-1
MapboxMapProvider.cpp
src/QtLocationPlugin/MapboxMapProvider.cpp
+35
-0
MapboxMapProvider.h
src/QtLocationPlugin/MapboxMapProvider.h
+133
-0
QGCLocationPlugin.pri
src/QtLocationPlugin/QGCLocationPlugin.pri
+2
-0
QGCMapUrlEngine.cpp
src/QtLocationPlugin/QGCMapUrlEngine.cpp
+12
-1
QGCMapUrlEngine.h
src/QtLocationPlugin/QGCMapUrlEngine.h
+2
-25
QGeoTiledMappingManagerEngineQGC.cpp
src/QtLocationPlugin/QGeoTiledMappingManagerEngineQGC.cpp
+0
-33
No files found.
src/QtLocationPlugin/GenericMapProvider.cpp
View file @
15340511
#include "QGCMapEngine.h"
#include "GenericMapProvider.h"
#include "GenericMapProvider.h"
#include "QGCMapEngine.h"
QString
StatkartMapProvider
::
_getURL
(
int
x
,
int
y
,
int
zoom
,
QString
StatkartMapProvider
::
_getURL
(
int
x
,
int
y
,
int
zoom
,
QNetworkAccessManager
*
networkManager
)
{
QNetworkAccessManager
*
networkManager
)
{
...
...
src/QtLocationPlugin/MapboxMapProvider.cpp
0 → 100644
View file @
15340511
#include "MapboxMapProvider.h"
#include "QGCApplication.h"
#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
)
{
}
QString
MapboxMapProvider
::
_getURL
(
int
x
,
int
y
,
int
zoom
,
QNetworkAccessManager
*
networkManager
)
{
Q_UNUSED
(
networkManager
);
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
QString
(
""
);
}
src/QtLocationPlugin/MapboxMapProvider.h
0 → 100644
View file @
15340511
#pragma once
#include "MapProvider.h"
#include <QByteArray>
#include <QMutex>
#include <QNetworkProxy>
#include <QNetworkReply>
#include <QPoint>
#include <QString>
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
;
};
class
MapboxStreetMapProvider
:
public
MapboxMapProvider
{
Q_OBJECT
public:
MapboxStreetMapProvider
(
QObject
*
parent
)
:
MapboxMapProvider
(
"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
,
QGeoMapType
::
CustomMap
,
parent
)
{}
};
class
MapboxDarkMapProvider
:
public
MapboxMapProvider
{
Q_OBJECT
public:
MapboxDarkMapProvider
(
QObject
*
parent
)
:
MapboxMapProvider
(
"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
,
QGeoMapType
::
SatelliteMapDay
,
parent
)
{}
};
class
MapboxHybridMapProvider
:
public
MapboxMapProvider
{
Q_OBJECT
public:
MapboxHybridMapProvider
(
QObject
*
parent
)
:
MapboxMapProvider
(
"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
,
QGeoMapType
::
CustomMap
,
parent
)
{}
};
class
MapboxStreetsBasicMapProvider
:
public
MapboxMapProvider
{
Q_OBJECT
public:
MapboxStreetsBasicMapProvider
(
QObject
*
parent
)
:
MapboxMapProvider
(
"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
,
QGeoMapType
::
CustomMap
,
parent
)
{}
};
class
MapboxOutdoorsMapProvider
:
public
MapboxMapProvider
{
Q_OBJECT
public:
MapboxOutdoorsMapProvider
(
QObject
*
parent
)
:
MapboxMapProvider
(
"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
,
QGeoMapType
::
CycleMap
,
parent
)
{}
};
class
MapboxPencilMapProvider
:
public
MapboxMapProvider
{
Q_OBJECT
public:
MapboxPencilMapProvider
(
QObject
*
parent
)
:
MapboxMapProvider
(
"mapbox.pencil"
,
AVERAGE_TILE_SIZE
,
QGeoMapType
::
CustomMap
,
parent
)
{}
};
class
MapboxPiratesMapProvider
:
public
MapboxMapProvider
{
Q_OBJECT
public:
MapboxPiratesMapProvider
(
QObject
*
parent
)
:
MapboxMapProvider
(
"mapbox.pirates"
,
AVERAGE_TILE_SIZE
,
QGeoMapType
::
CustomMap
,
parent
)
{}
};
class
MapboxEmeraldMapProvider
:
public
MapboxMapProvider
{
Q_OBJECT
public:
MapboxEmeraldMapProvider
(
QObject
*
parent
)
:
MapboxMapProvider
(
"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
,
QGeoMapType
::
CustomMap
,
parent
)
{}
};
src/QtLocationPlugin/QGCLocationPlugin.pri
View file @
15340511
...
@@ -27,6 +27,7 @@ HEADERS += \
...
@@ -27,6 +27,7 @@ HEADERS += \
$$PWD/BingMapProvider.h \
$$PWD/BingMapProvider.h \
$$PWD/GenericMapProvider.h \
$$PWD/GenericMapProvider.h \
$$PWD/EsriMapProvider.h \
$$PWD/EsriMapProvider.h \
$$PWD/MapboxMapProvider.h \
SOURCES += \
SOURCES += \
$$PWD/QGCMapEngine.cpp \
$$PWD/QGCMapEngine.cpp \
...
@@ -44,6 +45,7 @@ SOURCES += \
...
@@ -44,6 +45,7 @@ SOURCES += \
$$PWD/BingMapProvider.cpp \
$$PWD/BingMapProvider.cpp \
$$PWD/GenericMapProvider.cpp \
$$PWD/GenericMapProvider.cpp \
$$PWD/EsriMapProvider.cpp \
$$PWD/EsriMapProvider.cpp \
$$PWD/MapboxMapProvider.cpp \
OTHER_FILES += \
OTHER_FILES += \
$$PWD/qgc_maps_plugin.json
$$PWD/qgc_maps_plugin.json
src/QtLocationPlugin/QGCMapUrlEngine.cpp
View file @
15340511
...
@@ -24,6 +24,7 @@ QGC_LOGGING_CATEGORY(QGCMapUrlEngineLog, "QGCMapUrlEngineLog")
...
@@ -24,6 +24,7 @@ QGC_LOGGING_CATEGORY(QGCMapUrlEngineLog, "QGCMapUrlEngineLog")
#include "QGCMapEngine.h"
#include "QGCMapEngine.h"
#include "SettingsManager.h"
#include "SettingsManager.h"
#include <QByteArray>
#include <QByteArray>
#include <QEventLoop>
#include <QEventLoop>
#include <QNetworkReply>
#include <QNetworkReply>
...
@@ -58,6 +59,16 @@ UrlFactory::UrlFactory() : _timeout(5 * 1000) {
...
@@ -58,6 +59,16 @@ UrlFactory::UrlFactory() : _timeout(5 * 1000) {
//_providersTable["Esri World Street"] = new EsriWorldStreetMapProvider(this);
//_providersTable["Esri World Street"] = new EsriWorldStreetMapProvider(this);
//_providersTable["Esri World Satellite"] = new EsriWorldSatelliteMapProvider(this);
//_providersTable["Esri World Satellite"] = new EsriWorldSatelliteMapProvider(this);
//_providersTable["Esri Terrain"] = new EsriTerrainMapProvider(this);
//_providersTable["Esri Terrain"] = new EsriTerrainMapProvider(this);
_providersTable
[
"Mapbox Streets"
]
=
new
MapboxStreetMapProvider
(
this
);
_providersTable
[
"Mapbox Light"
]
=
new
MapboxLightMapProvider
(
this
);
_providersTable
[
"Mapbox Dark"
]
=
new
MapboxDarkMapProvider
(
this
);
_providersTable
[
"Mapbox Satellite"
]
=
new
MapboxSatelliteMapProvider
(
this
);
_providersTable
[
"Mapbox Hybrid"
]
=
new
MapboxHybridMapProvider
(
this
);
_providersTable
[
"Mapbox StreetsBasic"
]
=
new
MapboxStreetsBasicMapProvider
(
this
);
_providersTable
[
"Mapbox Outdoors"
]
=
new
MapboxOutdoorsMapProvider
(
this
);
_providersTable
[
"Mapbox RunBikeHike"
]
=
new
MapboxRunBikeHikeMapProvider
(
this
);
_providersTable
[
"Mapbox HighContrast"
]
=
new
MapboxHighContrastMapProvider
(
this
);
}
}
void
UrlFactory
::
registerProvider
(
QString
name
,
MapProvider
*
provider
)
{
void
UrlFactory
::
registerProvider
(
QString
name
,
MapProvider
*
provider
)
{
...
@@ -219,7 +230,7 @@ QString
...
@@ -219,7 +230,7 @@ QString
UrlFactory::_getURL(QString type, int x, int y, int zoom, QNetworkAccessManager* networkManager)
UrlFactory::_getURL(QString type, int x, int y, int zoom, QNetworkAccessManager* networkManager)
{
{
switch (type) {
switch (type) {
Q_UNUSED
(networkManager);
(networkManager);
case StatkartTopo:
case StatkartTopo:
{
{
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);
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);
...
...
src/QtLocationPlugin/QGCMapUrlEngine.h
View file @
15340511
...
@@ -16,10 +16,12 @@
...
@@ -16,10 +16,12 @@
#ifndef QGC_MAP_URL_ENGINE_H
#ifndef QGC_MAP_URL_ENGINE_H
#define QGC_MAP_URL_ENGINE_H
#define QGC_MAP_URL_ENGINE_H
#include "GoogleMapProvider.h"
#include "GoogleMapProvider.h"
#include "BingMapProvider.h"
#include "BingMapProvider.h"
#include "GenericMapProvider.h"
#include "GenericMapProvider.h"
#include "EsriMapProvider.h"
#include "EsriMapProvider.h"
#include "MapboxMapProvider.h"
#define MAX_MAP_ZOOM (20.0)
#define MAX_MAP_ZOOM (20.0)
...
@@ -27,28 +29,6 @@ class UrlFactory : public QObject {
...
@@ -27,28 +29,6 @@ class UrlFactory : public QObject {
Q_OBJECT
Q_OBJECT
public:
public:
//
//
// enum QString
// {
// Invalid = -1,
//
// GoogleMap = 1,
// GoogleSatellite = 4,
// GoogleLabels = 8,
// GoogleTerrain = 16,
// GoogleHybrid = 20,
//
// OpenStreetMap = 32,
// OpenStreetOsm = 33,
// OpenStreetMapSurfer = 34,
// OpenStreetMapSurferTerrain=35,
//
// StatkartTopo = 100,
// EniroTopo = 110,
//
// BingMap = 444,
// BingSatellite = 555,
// BingHybrid = 666,
//
// /*
// /*
// MapQuestMap = 700,
// MapQuestMap = 700,
// MapQuestSat = 701,
// MapQuestSat = 701,
...
@@ -73,9 +53,6 @@ public:
...
@@ -73,9 +53,6 @@ public:
// MapboxEmerald = 6012,
// MapboxEmerald = 6012,
// MapboxHighContrast = 6013,
// MapboxHighContrast = 6013,
//
//
// EsriWorldStreet = 7000,
// EsriWorldSatellite = 7001,
// EsriTerrain = 7002,
//
//
// AirmapElevation = 8001
// AirmapElevation = 8001
// };
// };
...
...
src/QtLocationPlugin/QGeoTiledMappingManagerEngineQGC.cpp
View file @
15340511
...
@@ -102,7 +102,6 @@ QGeoTiledMappingManagerEngineQGC::QGeoTiledMappingManagerEngineQGC(const QVarian
...
@@ -102,7 +102,6 @@ QGeoTiledMappingManagerEngineQGC::QGeoTiledMappingManagerEngineQGC(const QVarian
QList
<
QGeoMapType
>
mapList
;
QList
<
QGeoMapType
>
mapList
;
QHashIterator
<
QString
,
MapProvider
*>
i
(
getQGCMapEngine
()
->
urlFactory
()
->
getProviderTable
());
QHashIterator
<
QString
,
MapProvider
*>
i
(
getQGCMapEngine
()
->
urlFactory
()
->
getProviderTable
());
int
id
=
0
;
while
(
i
.
hasNext
()){
while
(
i
.
hasNext
()){
i
.
next
();
i
.
next
();
...
@@ -113,38 +112,6 @@ QGeoTiledMappingManagerEngineQGC::QGeoTiledMappingManagerEngineQGC(const QVarian
...
@@ -113,38 +112,6 @@ QGeoTiledMappingManagerEngineQGC::QGeoTiledMappingManagerEngineQGC(const QVarian
setSupportedMapTypes
(
mapList
);
setSupportedMapTypes
(
mapList
);
qDebug
()
<<
"End Adding Provider"
;
qDebug
()
<<
"End Adding Provider"
;
//-- IMPORTANT
// Changes here must reflect those in QGCMapEngine.cpp
// setSupportedMapTypes({
//#ifndef QGC_NO_GOOGLE_MAPS
// QGCGEOMAPTYPE(QGeoMapType::StreetMap, "Google Street Map", "Google street map", false, false, UrlFactory::GoogleMap),
// QGCGEOMAPTYPE(QGeoMapType::SatelliteMapDay, "Google Satellite Map", "Google satellite map", false, false, UrlFactory::GoogleSatellite),
// QGCGEOMAPTYPE(QGeoMapType::TerrainMap, "Google Terrain Map", "Google terrain map", false, false, UrlFactory::GoogleTerrain),
//#endif
//
// /* TODO:
// * Proper google hybrid maps requires collecting two separate bitmaps and overlaying them.
// *
// * mapTypes << QGCGEOMAPTYPE(QGeoMapType::HybridMap, "Google Hybrid Map", "Google hybrid map", false, false, UrlFactory::GoogleHybrid),
// *
// */
//
// // Bing
// QGCGEOMAPTYPE(QGeoMapType::StreetMap, "Bing Street Map", "Bing street map", false, false, UrlFactory::BingMap),
// QGCGEOMAPTYPE(QGeoMapType::SatelliteMapDay, "Bing Satellite Map", "Bing satellite map", false, false, UrlFactory::BingSatellite),
// QGCGEOMAPTYPE(QGeoMapType::HybridMap, "Bing Hybrid Map", "Bing hybrid map", false, false, UrlFactory::BingHybrid),
//
// // Statkart
// QGCGEOMAPTYPE(QGeoMapType::TerrainMap, "Statkart Terrain Map", "Statkart Terrain Map", false, false, UrlFactory::StatkartTopo),
// // Eniro
// QGCGEOMAPTYPE(QGeoMapType::TerrainMap, "Eniro Terrain Map", "Eniro Terrain Map", false, false, UrlFactory::EniroTopo),
//
// // Esri
// QGCGEOMAPTYPE(QGeoMapType::StreetMap, "Esri Street Map", "ArcGIS Online World Street Map", true, false, UrlFactory::EsriWorldStreet),
// QGCGEOMAPTYPE(QGeoMapType::SatelliteMapDay, "Esri Satellite Map", "ArcGIS Online World Imagery", true, false, UrlFactory::EsriWorldSatellite),
// QGCGEOMAPTYPE(QGeoMapType::TerrainMap, "Esri Terrain Map", "World Terrain Base", false, false, UrlFactory::EsriTerrain),
//
// // VWorld
// // VWorld
// QGCGEOMAPTYPE(QGeoMapType::SatelliteMapDay, "VWorld Satellite Map", "VWorld Satellite Map", false, false, UrlFactory::VWorldSatellite),
// QGCGEOMAPTYPE(QGeoMapType::SatelliteMapDay, "VWorld Satellite Map", "VWorld Satellite Map", false, false, UrlFactory::VWorldSatellite),
// QGCGEOMAPTYPE(QGeoMapType::StreetMap, "VWorld Street Map", "VWorld Street Map", false, false, UrlFactory::VWorldStreet),
// QGCGEOMAPTYPE(QGeoMapType::StreetMap, "VWorld Street Map", "VWorld Street Map", false, false, UrlFactory::VWorldStreet),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment