diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp index 9f6328cd5..5e202221b 100755 --- a/platform/android/src/native_map_view.cpp +++ b/platform/android/src/native_map_view.cpp @@ -73,6 +73,10 @@ NativeMapView::NativeMapView(jni::JNIEnv& _env, MapMode::Continuous, GLContextMode::Unique, ConstrainMode::HeightOnly, ViewportMode::Default, jni::Make(_env, _programCacheDir)); + recalculateSourceTileCacheSize(); +} + +void NativeMapView::recalculateSourceTileCacheSize() { //Calculate a fitting cache size based on device parameters float zoomFactor = map->getMaxZoom() - map->getMinZoom() + 1; float cpuFactor = availableProcessors; @@ -324,6 +328,7 @@ void NativeMapView::resizeView(jni::JNIEnv&, int w, int h) { width = util::max(64, w); height = util::max(64, h); map->setSize({ static_cast(width), static_cast(height) }); + recalculateSourceTileCacheSize(); } void NativeMapView::resizeFramebuffer(jni::JNIEnv&, int w, int h) { @@ -480,6 +485,7 @@ void NativeMapView::resetZoom(jni::JNIEnv&) { void NativeMapView::setMinZoom(jni::JNIEnv&, jni::jdouble zoom) { map->setMinZoom(zoom); + recalculateSourceTileCacheSize(); } jni::jdouble NativeMapView::getMinZoom(jni::JNIEnv&) { @@ -488,6 +494,7 @@ jni::jdouble NativeMapView::getMinZoom(jni::JNIEnv&) { void NativeMapView::setMaxZoom(jni::JNIEnv&, jni::jdouble zoom) { map->setMaxZoom(zoom); + recalculateSourceTileCacheSize(); } jni::jdouble NativeMapView::getMaxZoom(jni::JNIEnv&) { diff --git a/platform/android/src/native_map_view.hpp b/platform/android/src/native_map_view.hpp index 770065a8a..de98e6313 100755 --- a/platform/android/src/native_map_view.hpp +++ b/platform/android/src/native_map_view.hpp @@ -287,6 +287,7 @@ private: void updateFps(); private: + void recalculateSourceTileCacheSize(); JavaVM *vm = nullptr; jni::UniqueWeakObject javaPeer;