summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2018-10-30 14:56:44 +0200
committerPaolo Angelelli <paolo.angelelli@qt.io>2018-10-31 16:40:03 +0000
commitd64e59001884e942de087cdcd1bcef8b8e5f99e0 (patch)
treef712e7a80f401c8dcfb9e7befbbd015a27453eaa
parent563f6eb62fc614d435bf29337e182d82131b5b87 (diff)
downloadqtlocation-d64e59001884e942de087cdcd1bcef8b8e5f99e0.tar.gz
Mapbox GL: Add mapboxgl.china plugin parameter
Adds support for setting up Mapbox China API base URL + China government-approved styles. Change-Id: I66d9e15f336804466285e0996b0e326ef288be44 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
-rw-r--r--src/location/doc/src/plugins/mapboxgl.qdoc5
-rw-r--r--src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.cpp9
-rw-r--r--src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.h2
-rw-r--r--src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp65
-rw-r--r--src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.h1
5 files changed, 54 insertions, 28 deletions
diff --git a/src/location/doc/src/plugins/mapboxgl.qdoc b/src/location/doc/src/plugins/mapboxgl.qdoc
index 51b49f93..b1d721bf 100644
--- a/src/location/doc/src/plugins/mapboxgl.qdoc
+++ b/src/location/doc/src/plugins/mapboxgl.qdoc
@@ -88,6 +88,11 @@ The following table lists optional parameters that can be passed to the Mapbox p
\l{https://www.mapbox.com/tos}{Terms of Services} and must not be used in production. This property has
no effect on styles hosted outside the Mapbox servers.
\row
+ \li mapboxgl.china
+ \li Use Mapbox China API base URLs and styles.
+ Please notice that Mapbox China requires a specific access token. Contact \l
+ {https://www.mapbox.com/contact/sales/} {Mapbox sales} for more information.
+\row
\li mapboxgl.mapping.additional_style_urls
\li Additional, comma separated, Mapbox \l{https://www.mapbox.com/help/define-style-url}
{style URLs} to be added to the available style URLs. Additional styles will be prepended to
diff --git a/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.cpp b/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.cpp
index 4614de89..ed36cd5f 100644
--- a/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.cpp
+++ b/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.cpp
@@ -378,7 +378,7 @@ QString QGeoMapMapboxGL::copyrightsStyleSheet() const
return QStringLiteral("* { vertical-align: middle; font-weight: normal }");
}
-void QGeoMapMapboxGL::setMapboxGLSettings(const QMapboxGLSettings& settings)
+void QGeoMapMapboxGL::setMapboxGLSettings(const QMapboxGLSettings& settings, bool useChinaEndpoint)
{
Q_D(QGeoMapMapboxGL);
@@ -386,8 +386,13 @@ void QGeoMapMapboxGL::setMapboxGLSettings(const QMapboxGLSettings& settings)
// If the access token is not set, use the development access token.
// This will only affect mapbox:// styles.
+ // Mapbox China requires a China-specific access token.
if (d->m_settings.accessToken().isEmpty()) {
- d->m_settings.setAccessToken(developmentToken);
+ if (useChinaEndpoint) {
+ qWarning("Mapbox China requires an access token: https://www.mapbox.com/contact/sales");
+ } else {
+ d->m_settings.setAccessToken(developmentToken);
+ }
}
}
diff --git a/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.h b/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.h
index 0ffaf4ea..5fc2260e 100644
--- a/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.h
+++ b/src/plugins/geoservices/mapboxgl/qgeomapmapboxgl.h
@@ -54,7 +54,7 @@ public:
virtual ~QGeoMapMapboxGL();
QString copyrightsStyleSheet() const override;
- void setMapboxGLSettings(const QMapboxGLSettings &);
+ void setMapboxGLSettings(const QMapboxGLSettings &, bool useChinaEndpoint);
void setUseFBO(bool);
void setMapItemsBefore(const QString &);
Capabilities capabilities() const override;
diff --git a/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp b/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp
index cc48afb2..d2463106 100644
--- a/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp
+++ b/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp
@@ -69,30 +69,45 @@ QGeoMappingManagerEngineMapboxGL::QGeoMappingManagerEngineMapboxGL(const QVarian
int mapId = 0;
const QByteArray pluginName = "mapboxgl";
- mapTypes << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("mapbox://styles/mapbox/streets-v10"),
- tr("Streets"), false, false, ++mapId, pluginName, cameraCaps);
- mapTypes << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("mapbox://styles/mapbox/basic-v9"),
- tr("Basic"), false, false, ++mapId, pluginName, cameraCaps);
- mapTypes << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("mapbox://styles/mapbox/bright-v9"),
- tr("Bright"), false, false, ++mapId, pluginName, cameraCaps);
- mapTypes << QGeoMapType(QGeoMapType::TerrainMap, QStringLiteral("mapbox://styles/mapbox/outdoors-v10"),
- tr("Outdoors"), false, false, ++mapId, pluginName, cameraCaps);
- mapTypes << QGeoMapType(QGeoMapType::SatelliteMapDay, QStringLiteral("mapbox://styles/mapbox/satellite-v9"),
- tr("Satellite"), false, false, ++mapId, pluginName, cameraCaps);
- mapTypes << QGeoMapType(QGeoMapType::HybridMap, QStringLiteral("mapbox://styles/mapbox/satellite-streets-v10"),
- tr("Satellite Streets"), false, false, ++mapId, pluginName, cameraCaps);
- mapTypes << QGeoMapType(QGeoMapType::GrayStreetMap, QStringLiteral("mapbox://styles/mapbox/light-v9"),
- tr("Light"), false, false, ++mapId, pluginName, cameraCaps);
- mapTypes << QGeoMapType(QGeoMapType::GrayStreetMap, QStringLiteral("mapbox://styles/mapbox/dark-v9"),
- tr("Dark"), false, false, ++mapId, pluginName, cameraCaps);
- mapTypes << QGeoMapType(QGeoMapType::TransitMap, QStringLiteral("mapbox://styles/mapbox/navigation-preview-day-v2"),
- tr("Navigation Preview Day"), false, false, ++mapId, pluginName, cameraCaps);
- mapTypes << QGeoMapType(QGeoMapType::TransitMap, QStringLiteral("mapbox://styles/mapbox/navigation-preview-night-v2"),
- tr("Navigation Preview Night"), false, true, ++mapId, pluginName, cameraCaps);
- mapTypes << QGeoMapType(QGeoMapType::CarNavigationMap, QStringLiteral("mapbox://styles/mapbox/navigation-guidance-day-v2"),
- tr("Navigation Guidance Day"), false, false, ++mapId, pluginName, cameraCaps);
- mapTypes << QGeoMapType(QGeoMapType::CarNavigationMap, QStringLiteral("mapbox://styles/mapbox/navigation-guidance-night-v2"),
- tr("Navigation Guidance Night"), false, true, ++mapId, pluginName, cameraCaps);
+ if (parameters.contains(QStringLiteral("mapboxgl.china"))) {
+ m_useChinaEndpoint = parameters.value(QStringLiteral("mapboxgl.china")).toBool();
+ }
+
+ if (m_useChinaEndpoint) {
+ m_settings.setApiBaseUrl(QStringLiteral("https://api.mapbox.cn"));
+
+ mapTypes << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("mapbox://styles/mapbox/streets-zh-v1"),
+ tr("China Streets"), false, false, ++mapId, pluginName, cameraCaps);
+ mapTypes << QGeoMapType(QGeoMapType::GrayStreetMap, QStringLiteral("mapbox://styles/mapbox/light-zh-v1"),
+ tr("China Light"), false, false, ++mapId, pluginName, cameraCaps);
+ mapTypes << QGeoMapType(QGeoMapType::GrayStreetMap, QStringLiteral("mapbox://styles/mapbox/dark-zh-v1"),
+ tr("China Dark"), false, false, ++mapId, pluginName, cameraCaps);
+ } else {
+ mapTypes << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("mapbox://styles/mapbox/streets-v10"),
+ tr("Streets"), false, false, ++mapId, pluginName, cameraCaps);
+ mapTypes << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("mapbox://styles/mapbox/basic-v9"),
+ tr("Basic"), false, false, ++mapId, pluginName, cameraCaps);
+ mapTypes << QGeoMapType(QGeoMapType::StreetMap, QStringLiteral("mapbox://styles/mapbox/bright-v9"),
+ tr("Bright"), false, false, ++mapId, pluginName, cameraCaps);
+ mapTypes << QGeoMapType(QGeoMapType::TerrainMap, QStringLiteral("mapbox://styles/mapbox/outdoors-v10"),
+ tr("Outdoors"), false, false, ++mapId, pluginName, cameraCaps);
+ mapTypes << QGeoMapType(QGeoMapType::SatelliteMapDay, QStringLiteral("mapbox://styles/mapbox/satellite-v9"),
+ tr("Satellite"), false, false, ++mapId, pluginName, cameraCaps);
+ mapTypes << QGeoMapType(QGeoMapType::HybridMap, QStringLiteral("mapbox://styles/mapbox/satellite-streets-v10"),
+ tr("Satellite Streets"), false, false, ++mapId, pluginName, cameraCaps);
+ mapTypes << QGeoMapType(QGeoMapType::GrayStreetMap, QStringLiteral("mapbox://styles/mapbox/light-v9"),
+ tr("Light"), false, false, ++mapId, pluginName, cameraCaps);
+ mapTypes << QGeoMapType(QGeoMapType::GrayStreetMap, QStringLiteral("mapbox://styles/mapbox/dark-v9"),
+ tr("Dark"), false, false, ++mapId, pluginName, cameraCaps);
+ mapTypes << QGeoMapType(QGeoMapType::TransitMap, QStringLiteral("mapbox://styles/mapbox/navigation-preview-day-v2"),
+ tr("Navigation Preview Day"), false, false, ++mapId, pluginName, cameraCaps);
+ mapTypes << QGeoMapType(QGeoMapType::TransitMap, QStringLiteral("mapbox://styles/mapbox/navigation-preview-night-v2"),
+ tr("Navigation Preview Night"), false, true, ++mapId, pluginName, cameraCaps);
+ mapTypes << QGeoMapType(QGeoMapType::CarNavigationMap, QStringLiteral("mapbox://styles/mapbox/navigation-guidance-day-v2"),
+ tr("Navigation Guidance Day"), false, false, ++mapId, pluginName, cameraCaps);
+ mapTypes << QGeoMapType(QGeoMapType::CarNavigationMap, QStringLiteral("mapbox://styles/mapbox/navigation-guidance-night-v2"),
+ tr("Navigation Guidance Night"), false, true, ++mapId, pluginName, cameraCaps);
+ }
if (parameters.contains(QStringLiteral("mapboxgl.mapping.additional_style_urls"))) {
const QString ids = parameters.value(QStringLiteral("mapboxgl.mapping.additional_style_urls")).toString();
@@ -156,7 +171,7 @@ QGeoMappingManagerEngineMapboxGL::~QGeoMappingManagerEngineMapboxGL()
QGeoMap *QGeoMappingManagerEngineMapboxGL::createMap()
{
QGeoMapMapboxGL* map = new QGeoMapMapboxGL(this, 0);
- map->setMapboxGLSettings(m_settings);
+ map->setMapboxGLSettings(m_settings, m_useChinaEndpoint);
map->setUseFBO(m_useFBO);
map->setMapItemsBefore(m_mapItemsBefore);
diff --git a/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.h b/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.h
index b3afe77b..9ceb8ccc 100644
--- a/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.h
+++ b/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.h
@@ -59,6 +59,7 @@ public:
private:
QMapboxGLSettings m_settings;
bool m_useFBO = true;
+ bool m_useChinaEndpoint = false;
QString m_mapItemsBefore;
};