diff options
author | Thiago Marcos P. Santos <thiago@mapbox.com> | 2017-05-11 17:23:23 +0300 |
---|---|---|
committer | Thiago Marcos P. Santos <tmpsantos@gmail.com> | 2017-05-11 20:28:18 +0300 |
commit | c307273dae23751f1c2c621804a6c54761665348 (patch) | |
tree | 7993e69a42f82f2e5f9158945ae19501afd93bbd /platform/qt | |
parent | c74edece35676c3f17aaec2bcce594f51c6e97ee (diff) | |
download | qtlocation-mapboxgl-c307273dae23751f1c2c621804a6c54761665348.tar.gz |
[Qt] Make it possible to add a layer before another layer
Diffstat (limited to 'platform/qt')
-rw-r--r-- | platform/qt/include/qmapboxgl.hpp | 4 | ||||
-rw-r--r-- | platform/qt/src/qmapboxgl.cpp | 12 |
2 files changed, 9 insertions, 7 deletions
diff --git a/platform/qt/include/qmapboxgl.hpp b/platform/qt/include/qmapboxgl.hpp index 00c5735a93..478c15a51e 100644 --- a/platform/qt/include/qmapboxgl.hpp +++ b/platform/qt/include/qmapboxgl.hpp @@ -219,8 +219,8 @@ public: QMapbox::CustomLayerRenderFunction, QMapbox::CustomLayerDeinitializeFunction, void* context, - char* before = NULL); - void addLayer(const QVariantMap ¶ms); + const QString& before = QString()); + void addLayer(const QVariantMap ¶ms, const QString& before = QString()); bool layerExists(const QString &id); void removeLayer(const QString &id); diff --git a/platform/qt/src/qmapboxgl.cpp b/platform/qt/src/qmapboxgl.cpp index e1b8889603..80b64f05df 100644 --- a/platform/qt/src/qmapboxgl.cpp +++ b/platform/qt/src/qmapboxgl.cpp @@ -1334,7 +1334,7 @@ void QMapboxGL::addCustomLayer(const QString &id, QMapbox::CustomLayerRenderFunction renderFn, QMapbox::CustomLayerDeinitializeFunction deinitFn, void *context, - char *before) + const QString& before) { d_ptr->mapObj->addLayer(std::make_unique<mbgl::style::CustomLayer>( id.toStdString(), @@ -1344,13 +1344,14 @@ void QMapboxGL::addCustomLayer(const QString &id, (mbgl::style::CustomLayerRenderFunction)renderFn, reinterpret_cast<mbgl::style::CustomLayerDeinitializeFunction>(deinitFn), context), - before ? mbgl::optional<std::string>(before) : mbgl::optional<std::string>()); + before.isEmpty() ? mbgl::optional<std::string>() : mbgl::optional<std::string>(before.toStdString())); } /*! Adds a style layer to the map as specified by the \l {https://www.mapbox.com/mapbox-gl-style-spec/#root-layers}{Mapbox style specification} with - \a params. + \a params. The layer will be added under the layer specified by \a before, if specified. + Otherwise it will be added as the topmost layer. This example shows how to add a layer that will be used to show a route line on the map. Note that nothing will be drawn until we set paint properties using setPaintProperty(). @@ -1366,7 +1367,7 @@ void QMapboxGL::addCustomLayer(const QString &id, /note The source must exist prior to adding a layer. */ -void QMapboxGL::addLayer(const QVariantMap ¶ms) +void QMapboxGL::addLayer(const QVariantMap ¶ms, const QString& before) { using namespace mbgl::style; using namespace mbgl::style::conversion; @@ -1378,7 +1379,8 @@ void QMapboxGL::addLayer(const QVariantMap ¶ms) return; } - d_ptr->mapObj->addLayer(std::move(*layer)); + d_ptr->mapObj->addLayer(std::move(*layer), + before.isEmpty() ? mbgl::optional<std::string>() : mbgl::optional<std::string>(before.toStdString())); } /*! |