summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/location/doc/src/plugins/mapboxgl.qdoc4
-rw-r--r--src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp5
-rw-r--r--src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp11
3 files changed, 15 insertions, 5 deletions
diff --git a/src/location/doc/src/plugins/mapboxgl.qdoc b/src/location/doc/src/plugins/mapboxgl.qdoc
index 119868d1..f2cea8e8 100644
--- a/src/location/doc/src/plugins/mapboxgl.qdoc
+++ b/src/location/doc/src/plugins/mapboxgl.qdoc
@@ -88,6 +88,10 @@ 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.api_base_url
+ \li Set a custom API base URL. When not set, the URL defaults to \l{https://api.mapbox.com}.
+ This parameter is ignored if the the \b mapboxgl.china property is set.
+\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
diff --git a/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp b/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp
index 5cbde041..cde7871e 100644
--- a/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp
+++ b/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp
@@ -73,6 +73,11 @@ QGeoMappingManagerEngineMapboxGL::QGeoMappingManagerEngineMapboxGL(const QVarian
m_useChinaEndpoint = parameters.value(QStringLiteral("mapboxgl.china")).toBool();
}
+ if (parameters.contains(QStringLiteral("mapboxgl.api_base_url"))) {
+ const QString apiBaseUrl = parameters.value(QStringLiteral("mapboxgl.api_base_url")).toString();
+ m_settings.setApiBaseUrl(apiBaseUrl);
+ }
+
QVariantMap metadata;
metadata["isHTTPS"] = true;
diff --git a/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp b/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp
index a9cc164f..28a405c3 100644
--- a/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp
+++ b/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp
@@ -115,6 +115,7 @@ enum class InitializationState {
class QGeoPositionInfoSourceWinRTPrivate {
public:
ComPtr<IGeolocator> locator;
+ mutable ComPtr<IGeolocatorStatics> statics;
QTimer periodicTimer;
QTimer singleUpdateTimer;
QGeoPositionInfo lastPosition;
@@ -638,21 +639,21 @@ HRESULT QGeoPositionInfoSourceWinRT::onStatusChanged(IGeolocator *, IStatusChang
bool QGeoPositionInfoSourceWinRT::requestAccess() const
{
+ Q_D(const QGeoPositionInfoSourceWinRT);
qCDebug(lcPositioningWinRT) << __FUNCTION__;
GeolocationAccessStatus accessStatus;
- static ComPtr<IGeolocatorStatics> statics;
ComPtr<IAsyncOperation<GeolocationAccessStatus>> op;
HRESULT hr;
- hr = QEventDispatcherWinRT::runOnXamlThread([&op]() {
+ hr = QEventDispatcherWinRT::runOnXamlThread([&op, d]() {
HRESULT hr;
- if (!statics) {
+ if (!d->statics) {
hr = RoGetActivationFactory(HString::MakeReference(RuntimeClass_Windows_Devices_Geolocation_Geolocator).Get(),
- IID_PPV_ARGS(&statics));
+ IID_PPV_ARGS(&d->statics));
RETURN_HR_IF_FAILED("Could not access Geolocation Statics.");
}
- hr = statics->RequestAccessAsync(&op);
+ hr = d->statics->RequestAccessAsync(&op);
return hr;
});
if (FAILED(hr)) {