summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java
diff options
context:
space:
mode:
authorTobrun <tobrun@mapbox.com>2017-04-20 17:31:07 +0200
committerGitHub <noreply@github.com>2017-04-20 17:31:07 +0200
commit07573932a9dc4ff7fefaf4ac8490dd46901d20ca (patch)
treea217788cd89d5e5c867a386cce6d727adfad2d50 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java
parent86433dfd849b964d3f503a73d24a7bbf5d73f2e8 (diff)
downloadqtlocation-mapboxgl-07573932a9dc4ff7fefaf4ac8490dd46901d20ca.tar.gz
[android] - move calculation of LatLngBounds to core (#8765)
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java27
1 files changed, 26 insertions, 1 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 779f482693..be301839eb 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
@@ -1521,6 +1521,27 @@ public final class MapboxMap {
nativeMapView.setLatLngBounds(latLngBounds);
}
+ /**
+ * Gets a camera position that would fit a bounds.
+ *
+ * @param latLngBounds the bounds to constrain the map with
+ */
+ public CameraPosition getCameraForLatLngBounds(@Nullable LatLngBounds latLngBounds, int[] padding) {
+ // calculate and set additional bounds padding
+ int[] mapPadding = getPadding();
+ for (int i = 0; i < padding.length; i++) {
+ padding[i] = mapPadding[i] + padding[i];
+ }
+ projection.setContentPadding(padding, myLocationViewSettings.getPadding());
+
+ // get padded camera position from LatLngBounds
+ CameraPosition cameraPosition = nativeMapView.getCameraForLatLngBounds(latLngBounds);
+
+ // reset map padding
+ setPadding(mapPadding);
+ return cameraPosition;
+ }
+
//
// Padding
//
@@ -1544,7 +1565,11 @@ public final class MapboxMap {
* @param bottom The bottom margin in pixels.
*/
public void setPadding(int left, int top, int right, int bottom) {
- projection.setContentPadding(new int[] {left, top, right, bottom}, myLocationViewSettings.getPadding());
+ setPadding(new int[] {left, top, right, bottom});
+ }
+
+ private void setPadding(int[] padding) {
+ projection.setContentPadding(padding, myLocationViewSettings.getPadding());
uiSettings.invalidate();
}