summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortobrun <tobrun.van.nuland@gmail.com>2018-05-30 13:28:49 +0200
committertobrun <tobrun.van.nuland@gmail.com>2018-05-30 13:28:49 +0200
commit21a9a67df011e3a556a6510df27580065dd37308 (patch)
tree4a2f33ef81425d76ed71f83c65c1579752259d1b
parent83ebd5f6ff56fddd4a2923f6c082977476cddd99 (diff)
downloadqtlocation-mapboxgl-upstream/tvn-style-json-setter.tar.gz
[core] [android] - add style json setter/getter to map snapshotterupstream/tvn-style-json-setter
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotter.java6
-rw-r--r--platform/android/src/snapshotter/map_snapshotter.cpp6
-rw-r--r--platform/android/src/snapshotter/map_snapshotter.hpp2
-rw-r--r--platform/default/mbgl/map/map_snapshotter.cpp19
-rw-r--r--platform/default/mbgl/map/map_snapshotter.hpp3
5 files changed, 36 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotter.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotter.java
index 641c283798..a2c7ed5dfd 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotter.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotter.java
@@ -278,6 +278,12 @@ public class MapSnapshotter {
*/
public native void setStyleUrl(String styleUrl);
+ /**
+ * Updates the snapshotter with a new style json
+ *
+ * @param styleJson the style json
+ */
+ public native void setStyleJson(String styleJson);
/**
* Must be called in on the thread
diff --git a/platform/android/src/snapshotter/map_snapshotter.cpp b/platform/android/src/snapshotter/map_snapshotter.cpp
index ca1307dd16..8c064f5707 100644
--- a/platform/android/src/snapshotter/map_snapshotter.cpp
+++ b/platform/android/src/snapshotter/map_snapshotter.cpp
@@ -107,6 +107,10 @@ void MapSnapshotter::setStyleUrl(JNIEnv& env, jni::String styleURL) {
snapshotter->setStyleURL(jni::Make<std::string>(env, styleURL));
}
+void MapSnapshotter::setStyleJson(JNIEnv& env, jni::String styleJSON) {
+ snapshotter->setStyleJSON(jni::Make<std::string>(env, styleJSON));
+}
+
void MapSnapshotter::setSize(JNIEnv&, jni::jint width, jni::jint height) {
auto size = mbgl::Size { static_cast<uint32_t>(width), static_cast<uint32_t>(height) };
snapshotter->setSize(size);
@@ -121,6 +125,7 @@ void MapSnapshotter::setRegion(JNIEnv& env, jni::Object<LatLngBounds> region) {
snapshotter->setRegion(LatLngBounds::getLatLngBounds(env, region));
}
+
// Private methods //
void MapSnapshotter::activateFilesource(JNIEnv& env) {
@@ -153,6 +158,7 @@ void MapSnapshotter::registerNative(jni::JNIEnv& env) {
"nativeInitialize",
"finalize",
METHOD(&MapSnapshotter::setStyleUrl, "setStyleUrl"),
+ METHOD(&MapSnapshotter::setStyleJson, "setStyleJson"),
METHOD(&MapSnapshotter::setSize, "setSize"),
METHOD(&MapSnapshotter::setCameraPosition, "setCameraPosition"),
METHOD(&MapSnapshotter::setRegion, "setRegion"),
diff --git a/platform/android/src/snapshotter/map_snapshotter.hpp b/platform/android/src/snapshotter/map_snapshotter.hpp
index 33d32e01a1..3be2cb4f6c 100644
--- a/platform/android/src/snapshotter/map_snapshotter.hpp
+++ b/platform/android/src/snapshotter/map_snapshotter.hpp
@@ -44,6 +44,8 @@ public:
void setStyleUrl(JNIEnv&, jni::String styleURL);
+ void setStyleJson(JNIEnv&, jni::String styleJSON);
+
void setSize(JNIEnv&, jni::jint width, jni::jint height);
void setCameraPosition(JNIEnv&, jni::Object<CameraPosition> position);
diff --git a/platform/default/mbgl/map/map_snapshotter.cpp b/platform/default/mbgl/map/map_snapshotter.cpp
index da3a250e0f..39f96d7210 100644
--- a/platform/default/mbgl/map/map_snapshotter.cpp
+++ b/platform/default/mbgl/map/map_snapshotter.cpp
@@ -25,6 +25,9 @@ public:
void setStyleURL(std::string styleURL);
std::string getStyleURL() const;
+ void setStyleJSON(std::string styleJSON);
+ std::string getStyleJSON() const;
+
void setSize(Size);
Size getSize() const;
@@ -107,6 +110,14 @@ std::string MapSnapshotter::Impl::getStyleURL() const {
return map.getStyle().getURL();
}
+void MapSnapshotter::Impl::setStyleJSON(std::string styleJSON) {
+ map.getStyle().loadJSON(styleJSON);
+}
+
+std::string MapSnapshotter::Impl::getStyleJSON() const {
+ return map.getStyle().getJSON();
+}
+
void MapSnapshotter::Impl::setSize(Size size) {
map.setSize(size);
frontend.setSize(size);
@@ -160,6 +171,14 @@ std::string MapSnapshotter::getStyleURL() const {
return impl->actor().ask(&Impl::getStyleURL).get();
}
+void MapSnapshotter::setStyleJSON(const std::string& styleJSON) {
+ impl->actor().invoke(&Impl::setStyleJSON, styleJSON);
+}
+
+std::string MapSnapshotter::getStyleJSON() const {
+ return impl->actor().ask(&Impl::getStyleJSON).get();
+}
+
void MapSnapshotter::setSize(const Size& size) {
impl->actor().invoke(&Impl::setSize, size);
}
diff --git a/platform/default/mbgl/map/map_snapshotter.hpp b/platform/default/mbgl/map/map_snapshotter.hpp
index a71da121c0..e0363a7b38 100644
--- a/platform/default/mbgl/map/map_snapshotter.hpp
+++ b/platform/default/mbgl/map/map_snapshotter.hpp
@@ -39,6 +39,9 @@ public:
void setStyleURL(const std::string& styleURL);
std::string getStyleURL() const;
+ void setStyleJSON(const std::string& styleJSON);
+ std::string getStyleJSON() const;
+
void setSize(const Size&);
Size getSize() const;