From 07573932a9dc4ff7fefaf4ac8490dd46901d20ca Mon Sep 17 00:00:00 2001 From: Tobrun Date: Thu, 20 Apr 2017 17:31:07 +0200 Subject: [android] - move calculation of LatLngBounds to core (#8765) --- .../activity/camera/LatLngBoundsActivity.java | 69 +++++++++------------- 1 file changed, 29 insertions(+), 40 deletions(-) (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk') diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/LatLngBoundsActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/LatLngBoundsActivity.java index 5c33f3f168..d81538f323 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/LatLngBoundsActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/LatLngBoundsActivity.java @@ -1,9 +1,11 @@ package com.mapbox.mapboxsdk.testapp.activity.camera; import android.os.Bundle; +import android.os.Handler; import android.support.v7.app.AppCompatActivity; import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.camera.CameraUpdate; import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.geometry.LatLng; @@ -11,14 +13,8 @@ import com.mapbox.mapboxsdk.geometry.LatLngBounds; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.maps.UiSettings; import com.mapbox.mapboxsdk.testapp.R; -import java.util.ArrayList; -import java.util.List; - -import timber.log.Timber; - /** * Test activity showcasing using the LatLngBounds camera API. *

@@ -31,6 +27,9 @@ public class LatLngBoundsActivity extends AppCompatActivity implements OnMapRead private static final LatLng LOS_ANGELES = new LatLng(34.053940, -118.242622); private static final LatLng NEW_YORK = new LatLng(40.712730, -74.005953); + private final LatLng CHINA_BOTTOM_LEFT = new LatLng(15.68169, 73.499857); + private final LatLng CHINA_TOP_RIGHT = new LatLng(53.560711, 134.77281); + private MapView mapView; private MapboxMap mapboxMap; @@ -46,41 +45,31 @@ public class LatLngBoundsActivity extends AppCompatActivity implements OnMapRead } @Override - public void onMapReady(MapboxMap map) { + public void onMapReady(final MapboxMap map) { mapboxMap = map; - UiSettings uiSettings = mapboxMap.getUiSettings(); - uiSettings.setAllGesturesEnabled(false); - - mapboxMap.addMarker(new MarkerOptions() - .title("Los Angeles") - .snippet("City Hall") - .position(LOS_ANGELES)); - - mapboxMap.addMarker(new MarkerOptions() - .title("New York") - .snippet("City Hall") - .position(NEW_YORK)); - - List points = new ArrayList<>(); - points.add(NEW_YORK); - points.add(LOS_ANGELES); - - // Create Bounds - final LatLngBounds bounds = new LatLngBounds.Builder() - .includes(points) - .build(); - - // Add map padding - int mapPadding = (int) getResources().getDimension(R.dimen.fab_margin); - mapboxMap.setPadding(mapPadding, mapPadding, mapPadding, mapPadding); - - // Move camera to the bounds with added padding - int padding = (int) getResources().getDimension(R.dimen.coordinatebounds_margin); - mapboxMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, padding), 1500); - - // Log data - Timber.e("Move to bounds: " + bounds.toString()); - Timber.e("Resulting bounds:" + mapboxMap.getProjection().getVisibleRegion().latLngBounds.toString()); + moveToBounds(new LatLngBounds.Builder().include(NEW_YORK).include(LOS_ANGELES).build(), new int[] {0, 0, 0, 0}); + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + moveToBounds(new LatLngBounds.Builder().include(CHINA_BOTTOM_LEFT).include(CHINA_TOP_RIGHT).build(), + new int[] {100, 100, 100, 100 }); + } + }, 5000); + } + + private void moveToBounds(LatLngBounds latLngBounds, int[] padding) { + mapboxMap.clear(); + mapboxMap.addMarker(new MarkerOptions().position(latLngBounds.getNorthEast())); + mapboxMap.addMarker(new MarkerOptions().position(latLngBounds.getSouthEast())); + mapboxMap.addMarker(new MarkerOptions().position(latLngBounds.getSouthWest())); + mapboxMap.addMarker(new MarkerOptions().position(latLngBounds.getNorthWest())); + CameraUpdate update = + CameraUpdateFactory.newLatLngBounds(latLngBounds, + padding[0], + padding[1], + padding[2], + padding[3]); + mapboxMap.moveCamera(update); } @Override -- cgit v1.2.1