From 6aea5b561ae702ad8e8dd184230e52e53c3c8375 Mon Sep 17 00:00:00 2001 From: Osana Babayan <32496536+osana@users.noreply.github.com> Date: Wed, 12 Dec 2018 09:06:12 -0500 Subject: [android] LatLng bounds cannot be wrapped (#13419) --- .../maplayout/LatLngBoundsForCameraActivity.java | 56 ++++++++++++++++++---- 1 file changed, 46 insertions(+), 10 deletions(-) (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity') diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/LatLngBoundsForCameraActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/LatLngBoundsForCameraActivity.java index 5e6e828856..1a9d3d300b 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/LatLngBoundsForCameraActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/LatLngBoundsForCameraActivity.java @@ -5,9 +5,10 @@ import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v7.app.AppCompatActivity; import android.view.Gravity; +import android.view.Menu; +import android.view.MenuItem; import android.view.View; import android.widget.FrameLayout; - import com.mapbox.mapboxsdk.annotations.PolygonOptions; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.geometry.LatLngBounds; @@ -18,7 +19,7 @@ import com.mapbox.mapboxsdk.maps.Style; import com.mapbox.mapboxsdk.testapp.R; /** - * Test activity showcasing restricting user gestures to a bounds around Iceland. + * Test activity showcasing restricting user gestures to a bounds around Iceland, almost worldview and IDL. */ public class LatLngBoundsForCameraActivity extends AppCompatActivity implements OnMapReadyCallback { @@ -27,6 +28,16 @@ public class LatLngBoundsForCameraActivity extends AppCompatActivity implements .include(new LatLng(62.985661, -12.626277)) .build(); + private static final LatLngBounds ALMOST_WORLD_BOUNDS = new LatLngBounds.Builder() + .include(new LatLng(20.0, 170.0)) + .include(new LatLng(-20, -170.0)) + .build(); + + private static final LatLngBounds CROSS_IDL_BOUNDS = new LatLngBounds.Builder() + .include(new LatLng(20.0, 170.0)) + .include(new LatLng(-20, 190.0)) + .build(); + private MapView mapView; private MapboxMap mapboxMap; @@ -35,7 +46,7 @@ public class LatLngBoundsForCameraActivity extends AppCompatActivity implements super.onCreate(savedInstanceState); setContentView(R.layout.activity_restricted_bounds); - mapView = (MapView) findViewById(R.id.mapView); + mapView = findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); mapView.getMapAsync(this); } @@ -44,18 +55,43 @@ public class LatLngBoundsForCameraActivity extends AppCompatActivity implements public void onMapReady(@NonNull MapboxMap mapboxMap) { this.mapboxMap = mapboxMap; mapboxMap.setStyle(Style.SATELLITE_STREETS); - mapboxMap.setLatLngBoundsForCameraTarget(ICELAND_BOUNDS); mapboxMap.setMinZoomPreference(2); - showBoundsArea(); + mapboxMap.getUiSettings().setFlingVelocityAnimationEnabled(false); showCrosshair(); + setupBounds(ICELAND_BOUNDS); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.menu_bounds, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.menu_action_allmost_world_bounds: + setupBounds(ALMOST_WORLD_BOUNDS); + return true; + case R.id.menu_action_cross_idl: + setupBounds(CROSS_IDL_BOUNDS); + return true; + } + return super.onOptionsItemSelected(item); + } + + private void setupBounds(LatLngBounds bounds) { + mapboxMap.setLatLngBoundsForCameraTarget(bounds); + showBoundsArea(bounds); } - private void showBoundsArea() { + private void showBoundsArea(LatLngBounds bounds) { + mapboxMap.clear(); PolygonOptions boundsArea = new PolygonOptions() - .add(ICELAND_BOUNDS.getNorthWest()) - .add(ICELAND_BOUNDS.getNorthEast()) - .add(ICELAND_BOUNDS.getSouthEast()) - .add(ICELAND_BOUNDS.getSouthWest()); + .add(bounds.getNorthWest()) + .add(bounds.getNorthEast()) + .add(bounds.getSouthEast()) + .add(bounds.getSouthWest()); boundsArea.alpha(0.25f); boundsArea.fillColor(Color.RED); mapboxMap.addPolygon(boundsArea); -- cgit v1.2.1