diff options
author | Peng Liu <peng.liu@mapbox.com> | 2019-10-07 15:43:28 +0300 |
---|---|---|
committer | Peng Liu <peng.liu@mapbox.com> | 2019-10-07 15:43:28 +0300 |
commit | 71e7932129eb61dfae40ee0c81b5fbe2d887c327 (patch) | |
tree | ac287217730b5c296bde0331baaed2d15bae933f | |
parent | bd283fc1be2f90ce02b37617411a0ce4246d898e (diff) | |
download | qtlocation-mapboxgl-71e7932129eb61dfae40ee0c81b5fbe2d887c327.tar.gz |
[android] Expose pre-fetching zoom delta.
5 files changed, 68 insertions, 2 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index acd5093dad..b6b9004fc2 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -6,6 +6,7 @@ import android.graphics.PointF; import android.graphics.RectF; import android.os.Bundle; import android.support.annotation.FloatRange; +import android.support.annotation.IntRange; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.Size; @@ -274,6 +275,28 @@ public final class MapboxMap { return nativeMapView.getPrefetchTiles(); } + /** + * Set the tile pre-fetching zoom delta. Pre-fetching makes sure that a low-resolution + * tile at the (current_zoom_level - delta) is rendered as soon as possible at the + * expense of a little bandwidth. + * + * @param delta zoom delta + */ + public void setPrefetchZoomDelta(@IntRange(from = 0) int delta) { + nativeMapView.setPrefetchZoomDelta(delta); + } + + /** + * Check current pre-fetching zoom delta. + * + * @return current zoom delta. + * @see MapboxMap#setPrefetchZoomDelta(int) + */ + @IntRange(from = 0) + public int getPrefetchZoomDelta() { + return nativeMapView.getPrefetchZoomDelta(); + } + // // MinZoom // diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMap.java index 7f3017c7ae..c805dcddb0 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMap.java @@ -6,6 +6,7 @@ import android.graphics.RectF; import android.support.annotation.IntRange; import android.support.annotation.NonNull; import android.support.annotation.Nullable; + import com.mapbox.geojson.Feature; import com.mapbox.geojson.Geometry; import com.mapbox.mapboxsdk.annotations.Marker; @@ -214,6 +215,11 @@ interface NativeMap { boolean getPrefetchTiles(); + void setPrefetchZoomDelta(@IntRange(from = 0) int delta); + + @IntRange(from = 0) + int getPrefetchZoomDelta(); + void setGestureInProgress(boolean inProgress); float getPixelRatio(); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java index c844133f41..75ca5edfca 100755 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java @@ -724,6 +724,23 @@ final class NativeMapView implements NativeMap { return nativeGetPrefetchTiles(); } + @Override + public void setPrefetchZoomDelta(@IntRange(from = 0) int delta) { + if (checkState("nativeSetPrefetchZoomDelta")) { + return; + } + nativeSetPrefetchZoomDelta(delta); + } + + @Override + @IntRange(from = 0) + public int getPrefetchZoomDelta() { + if (checkState("nativeGetPrefetchZoomDelta")) { + return 0; + } + return nativeGetPrefetchZoomDelta(); + } + // Runtime style Api @Override @@ -1383,6 +1400,12 @@ final class NativeMapView implements NativeMap { @Keep private native boolean nativeGetPrefetchTiles(); + @Keep + private native void nativeSetPrefetchZoomDelta(int delta); + + @Keep + private native int nativeGetPrefetchZoomDelta(); + @Override public long getNativePtr() { return nativePtr; diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp index 7b87693cf5..9eb7d48708 100755 --- a/platform/android/src/native_map_view.cpp +++ b/platform/android/src/native_map_view.cpp @@ -50,7 +50,7 @@ #include "java/util.hpp" #include "geometry/lat_lng_bounds.hpp" #include "map/camera_position.hpp" -#include "map/image.hpp" +#include "map/image.hpp" #include "style/light.hpp" #include "bitmap_factory.hpp" @@ -1050,6 +1050,14 @@ jni::jboolean NativeMapView::getPrefetchTiles(JNIEnv&) { return jni::jboolean(map->getPrefetchZoomDelta() > 0); } +void NativeMapView::setPrefetchZoomDelta(JNIEnv&, jni::jint delta) { + map->setPrefetchZoomDelta(uint8_t(abs(delta))); +} + +jni::jint NativeMapView::getPrefetchZoomDelta(JNIEnv&) { + return jni::jint(map->getPrefetchZoomDelta()); +} + mbgl::Map& NativeMapView::getMap() { return *map; } @@ -1145,7 +1153,9 @@ void NativeMapView::registerNative(jni::JNIEnv& env) { METHOD(&NativeMapView::getImage, "nativeGetImage"), METHOD(&NativeMapView::setLatLngBounds, "nativeSetLatLngBounds"), METHOD(&NativeMapView::setPrefetchTiles, "nativeSetPrefetchTiles"), - METHOD(&NativeMapView::getPrefetchTiles, "nativeGetPrefetchTiles") + METHOD(&NativeMapView::getPrefetchTiles, "nativeGetPrefetchTiles"), + METHOD(&NativeMapView::setPrefetchZoomDelta, "nativeSetPrefetchZoomDelta"), + METHOD(&NativeMapView::getPrefetchZoomDelta, "nativeGetPrefetchZoomDelta") ); } diff --git a/platform/android/src/native_map_view.hpp b/platform/android/src/native_map_view.hpp index ba2178022e..5a340d1287 100755 --- a/platform/android/src/native_map_view.hpp +++ b/platform/android/src/native_map_view.hpp @@ -235,6 +235,10 @@ public: jni::jboolean getPrefetchTiles(JNIEnv&); + void setPrefetchZoomDelta(JNIEnv&, jni::jint); + + jni::jint getPrefetchZoomDelta(JNIEnv&); + mbgl::Map& getMap(); private: |