From 740c995c2b37bd896c87b2d8e22d644e09bc3e42 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Fri, 7 Oct 2016 16:47:16 +0200 Subject: [PATCH] [android] - apply tilt to markerview with initial camera position (#6622) --- .../src/main/java/com/mapbox/mapboxsdk/maps/MapView.java | 9 ++++++++- .../main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java | 1 - 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java index 0d09892cb..c080445e0 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java @@ -469,6 +469,8 @@ public class MapView extends FrameLayout { reloadIcons(); reloadMarkers(); adjustTopOffsetPixels(); + + // Notify listeners the map is ready if (onMapReadyCallbackList.size() > 0) { Iterator iterator = onMapReadyCallbackList.iterator(); while (iterator.hasNext()) { @@ -476,8 +478,11 @@ public class MapView extends FrameLayout { callback.onMapReady(mapboxMap); iterator.remove(); } - mapboxMap.getMarkerViewManager().scheduleViewMarkerInvalidation(); } + + // invalidate camera to update overlain views with correct tilt value + invalidateCameraPosition(); + } else if (change == REGION_IS_CHANGING || change == REGION_DID_CHANGE || change == DID_FINISH_LOADING_MAP) { mapboxMap.getMarkerViewManager().scheduleViewMarkerInvalidation(); @@ -658,6 +663,7 @@ public class MapView extends FrameLayout { } void setTilt(Double pitch) { + mapboxMap.getMarkerViewManager().setTilt(pitch.floatValue()); myLocationView.setTilt(pitch); nativeMapView.setPitch(pitch, 0); } @@ -1533,6 +1539,7 @@ public class MapView extends FrameLayout { } CameraPosition position = new CameraPosition.Builder(nativeMapView.getCameraValues()).build(); myLocationView.setCameraPosition(position); + mapboxMap.getMarkerViewManager().setTilt((float) Math.toDegrees(position.tilt)); return position; } 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 a3368b4c7..519206895 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 @@ -785,7 +785,6 @@ public class MapboxMap { // void setTilt(double tilt) { - markerViewManager.setTilt((float) tilt); mapView.setTilt(tilt); }