diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/SimpleMapActivity.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/SimpleMapActivity.java | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/SimpleMapActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/SimpleMapActivity.java index 8f8a5af3cc..d20e1e2460 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/SimpleMapActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/SimpleMapActivity.java @@ -1,11 +1,29 @@ package com.mapbox.mapboxsdk.testapp.activity.maplayout; import android.os.Bundle; +import android.os.Handler; import android.support.v7.app.AppCompatActivity; +import android.view.View; +import android.widget.Toast; +import com.mapbox.geojson.Feature; +import com.mapbox.geojson.FeatureCollection; +import com.mapbox.geojson.Point; import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.widgets.CompassView; +import com.mapbox.mapboxsdk.style.expressions.Expression; +import com.mapbox.mapboxsdk.style.layers.Layer; +import com.mapbox.mapboxsdk.style.layers.Property; +import com.mapbox.mapboxsdk.style.layers.PropertyFactory; +import com.mapbox.mapboxsdk.style.layers.SymbolLayer; +import com.mapbox.mapboxsdk.style.sources.GeoJsonSource; import com.mapbox.mapboxsdk.testapp.R; +import java.util.ArrayList; +import java.util.List; + /** * Test activity showcasing a simple MapView without any MapboxMap interaction. */ @@ -20,6 +38,68 @@ public class SimpleMapActivity extends AppCompatActivity { mapView = (MapView) findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); + mapView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(MapboxMap mapboxMap) { + List<Feature> features1 = new ArrayList<>(); + features1.add(Feature.fromGeometry(Point.fromLngLat(10, 50))); + + List<Feature> features2 = new ArrayList<>(); + features2.add(Feature.fromGeometry(Point.fromLngLat(11, 50))); + + FeatureCollection featureCollection1 = FeatureCollection.fromFeatures(features1); + FeatureCollection featureCollection2 = FeatureCollection.fromFeatures(features2); + + GeoJsonSource source1 = new GeoJsonSource("source1", featureCollection1); + GeoJsonSource source2 = new GeoJsonSource("source2", featureCollection2); + mapboxMap.addSource(source1); + mapboxMap.addSource(source2); + + Layer layer1 = new SymbolLayer("layer1", "source1").withProperties(PropertyFactory.iconImage("restaurant-15"), PropertyFactory.iconAllowOverlap(true), PropertyFactory.iconAnchor(Expression.literal(Property.ICON_ANCHOR_CENTER))); + Layer layer2 = new SymbolLayer("layer2", "source2").withProperties(PropertyFactory.iconImage("restaurant-15"), PropertyFactory.iconAllowOverlap(true), PropertyFactory.iconAnchor(Expression.literal(Property.ICON_ANCHOR_CENTER))); + mapboxMap.addLayer(layer1); + mapboxMap.addLayer(layer2); + + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + featureCollection2.features().addAll(featureCollection1.features()); + featureCollection1.features().clear(); + source1.setGeoJson(featureCollection1); + source2.setGeoJson(featureCollection2); + } + }, 5000); + /*Expression.get("imageAttribute"); + mapboxMap.addOnCameraIdleListener(() -> + Timber.e("Camera IDLE: %s, zoom: %f", mapboxMap.getCameraPosition().target, mapboxMap.getCameraPosition().zoom)); + + //crossing IDL + LatLngBounds latLngBounds = LatLngBounds.from(16.5, -172.8, -35.127709, 172.6); + LatLng ne = new LatLng(16.5, -172.8); + LatLng sw = new LatLng(-35.127709, 172.6); + + if (ne.getLongitude() < sw.getLongitude()) { + if (ne.getLongitude() < 0 && sw.getLongitude() > 0) { + sw.setLongitude(sw.getLongitude() - 360); + } else if (ne.getLongitude() > 0 && sw.getLongitude() < 0) { + sw.setLongitude(sw.getLongitude() + 360); + } + } + + LatLngBounds betterBounds = new LatLngBounds.Builder().include(ne).include(sw).build(); + CameraPosition cameraPosition = mapboxMap.getCameraForLatLngBounds(betterBounds, new int[] {0, 0, 0, 0}); + mapboxMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); + //mapboxMap.setLatLngBoundsForCameraTarget(latLngBounds); + + //not crossing IDL + new Handler().postDelayed(() -> { + LatLngBounds latLngBounds1 = LatLngBounds.from(16.5, -162.8, -35.127709, -177.4); +// mapboxMap.setLatLngBoundsForCameraTarget(latLngBounds1); + CameraPosition cameraPosition1 = mapboxMap.getCameraForLatLngBounds(latLngBounds1, new int[] {0, 0, 0, 0}); + //mapboxMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition1)); + }, 2500);*/ + } + }); } @Override |