diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style')
10 files changed, 528 insertions, 243 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CircleLayerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CircleLayerActivity.java index 0b102057b7..7628d6391e 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CircleLayerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CircleLayerActivity.java @@ -5,13 +5,7 @@ import android.os.Bundle; import android.support.annotation.NonNull; import android.support.design.widget.FloatingActionButton; import android.support.v4.content.ContextCompat; -import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; - -import timber.log.Timber; - -import android.view.MenuItem; import android.view.View; import com.mapbox.mapboxsdk.camera.CameraPosition; @@ -28,10 +22,18 @@ import com.mapbox.mapboxsdk.testapp.R; import java.net.MalformedURLException; import java.net.URL; +import timber.log.Timber; + import static com.mapbox.mapboxsdk.style.layers.Filter.in; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleColor; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.circleRadius; +/** + * Test activity showcasing adding a Circle Layer to the Map + * <p> + * Uses bus stop data from Singapore as a source and allows to filter into 1 specific route with a line layer. + * </p> + */ public class CircleLayerActivity extends AppCompatActivity { private static final String[] STOPS_FOR_ROUTE = new String[] {"99009", "99131", "99049", "99039", "99029", "99019", @@ -50,15 +52,6 @@ public class CircleLayerActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_circle_layer); - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - setSupportActionBar(toolbar); - - ActionBar actionBar = getSupportActionBar(); - if (actionBar != null) { - actionBar.setDisplayHomeAsUpEnabled(true); - actionBar.setDisplayShowHomeEnabled(true); - } - mapView = (MapView) findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); mapView.getMapAsync(new OnMapReadyCallback() { @@ -87,7 +80,7 @@ public class CircleLayerActivity extends AppCompatActivity { public void onClick(View view) { // filter out stops for our route - layer.setFilter(in("number", STOPS_FOR_ROUTE)); + layer.setFilter(in("number", (Object[]) STOPS_FOR_ROUTE)); // add route as a line try { @@ -98,7 +91,7 @@ public class CircleLayerActivity extends AppCompatActivity { Timber.e("That's not an url... ", malformedUrlException); } LineLayer lineLayer = new LineLayer("route_layer", "bus_route"); - mapboxMap.addLayer(lineLayer, "stops_layer"); + mapboxMap.addLayerBelow(lineLayer, "stops_layer"); // move camera to start route mapboxMap.animateCamera(CameraUpdateFactory.newCameraPosition( @@ -156,15 +149,4 @@ public class CircleLayerActivity extends AppCompatActivity { super.onDestroy(); mapView.onDestroy(); } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - onBackPressed(); - return true; - default: - return super.onOptionsItemSelected(item); - } - } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CustomSpriteActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CustomSpriteActivity.java index d68872a5ba..3763b45e7a 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CustomSpriteActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CustomSpriteActivity.java @@ -5,13 +5,7 @@ import android.os.Bundle; import android.support.annotation.NonNull; import android.support.design.widget.FloatingActionButton; import android.support.v4.content.ContextCompat; -import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; - -import timber.log.Timber; - -import android.view.MenuItem; import android.view.View; import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; @@ -28,10 +22,12 @@ import com.mapbox.services.commons.geojson.FeatureCollection; import com.mapbox.services.commons.geojson.Point; import com.mapbox.services.commons.models.Position; +import timber.log.Timber; + import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconImage; /** - * Example to add a sprite image and use it in a Symbol Layer + * Test activity showcasing adding a sprite image and use it in a Symbol Layer */ public class CustomSpriteActivity extends AppCompatActivity { private static final String CUSTOM_ICON = "custom-icon"; @@ -47,15 +43,6 @@ public class CustomSpriteActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_add_sprite); - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - setSupportActionBar(toolbar); - - ActionBar actionBar = getSupportActionBar(); - if (actionBar != null) { - actionBar.setDisplayHomeAsUpEnabled(true); - actionBar.setDisplayShowHomeEnabled(true); - } - mapView = (MapView) findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); mapView.getMapAsync(new OnMapReadyCallback() { @@ -74,7 +61,7 @@ public class CustomSpriteActivity extends AppCompatActivity { // Add an icon to reference later mapboxMap.addImage(CUSTOM_ICON, BitmapFactory.decodeResource(getResources(), R.drawable.ic_car_top)); - //Add a source with a geojson point + // Add a source with a geojson point point = Point.fromCoordinates(Position.fromCoordinates(13.400972d, 52.519003d)); source = new GeoJsonSource( "point", @@ -82,26 +69,26 @@ public class CustomSpriteActivity extends AppCompatActivity { ); mapboxMap.addSource(source); - //Add a symbol layer that references that point source + // Add a symbol layer that references that point source layer = new SymbolLayer("layer", "point"); layer.setProperties( - //Set the id of the sprite to use + // Set the id of the sprite to use iconImage(CUSTOM_ICON) ); // lets add a circle below labels! - mapboxMap.addLayer(layer, "waterway-label"); + mapboxMap.addLayerBelow(layer, "waterway-label"); - fab.setImageResource(R.drawable.ic_directions_car_black_24dp); + fab.setImageResource(R.drawable.ic_directions_car_black); } else { - //Update point + // Update point point = Point.fromCoordinates( Position.fromCoordinates(point.getCoordinates().getLongitude() + 0.001, point.getCoordinates().getLatitude() + 0.001) ); source.setGeoJson(FeatureCollection.fromFeatures(new Feature[] {Feature.fromGeometry(point)})); - //Move the camera as well + // Move the camera as well mapboxMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng( point.getCoordinates().getLatitude(), point.getCoordinates().getLongitude()))); } @@ -152,15 +139,4 @@ public class CustomSpriteActivity extends AppCompatActivity { super.onDestroy(); mapView.onDestroy(); } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - onBackPressed(); - return true; - default: - return super.onOptionsItemSelected(item); - } - } -}
\ No newline at end of file +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/DataDrivenStyleActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/DataDrivenStyleActivity.java new file mode 100644 index 0000000000..3a5b30f71f --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/DataDrivenStyleActivity.java @@ -0,0 +1,395 @@ +package com.mapbox.mapboxsdk.testapp.activity.style; + +import android.graphics.Color; +import android.os.Bundle; +import android.support.annotation.RawRes; +import android.support.v7.app.AppCompatActivity; +import android.view.Menu; +import android.view.MenuItem; +import android.widget.Toast; + +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.style.functions.stops.Stops; +import com.mapbox.mapboxsdk.style.layers.FillLayer; +import com.mapbox.mapboxsdk.style.sources.GeoJsonSource; +import com.mapbox.mapboxsdk.style.sources.Source; +import com.mapbox.mapboxsdk.testapp.R; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.io.StringWriter; +import java.io.Writer; + +import timber.log.Timber; + +import static com.mapbox.mapboxsdk.style.functions.Function.composite; +import static com.mapbox.mapboxsdk.style.functions.Function.property; +import static com.mapbox.mapboxsdk.style.functions.Function.zoom; +import static com.mapbox.mapboxsdk.style.functions.stops.Stop.stop; +import static com.mapbox.mapboxsdk.style.functions.stops.Stops.categorical; +import static com.mapbox.mapboxsdk.style.functions.stops.Stops.exponential; +import static com.mapbox.mapboxsdk.style.functions.stops.Stops.interval; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillAntialias; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillColor; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillOpacity; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillOutlineColor; + +/** + * Test activity showcasing the data driven runtime style API. + */ +public class DataDrivenStyleActivity extends AppCompatActivity { + + public static final String AMSTERDAM_PARKS_LAYER = "amsterdam-parks-layer"; + private MapView mapView; + private MapboxMap mapboxMap; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_data_driven_style); + + // Initialize map as normal + mapView = (MapView) findViewById(R.id.mapView); + mapView.onCreate(savedInstanceState); + + + mapView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(MapboxMap map) { + // Store for later + mapboxMap = map; + + // Add a parks layer + addParksLayer(); + + // Center and Zoom (Amsterdam, zoomed to streets) + mapboxMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(52.379189, 4.899431), 14)); + } + }); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.menu_data_driven_style, menu); + return true; + } + + @Override + protected void onStart() { + super.onStart(); + mapView.onStart(); + } + + @Override + protected void onResume() { + super.onResume(); + mapView.onResume(); + } + + @Override + protected void onPause() { + super.onPause(); + mapView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mapView.onStop(); + } + + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + mapView.onSaveInstanceState(outState); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mapView.onDestroy(); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapView.onLowMemory(); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.action_add_exponential_zoom_function: + addExponentialZoomFunction(); + return true; + case R.id.action_add_interval_zoom_function: + addIntervalZoomFunction(); + return true; + case R.id.action_add_categorical_source_function: + addCategoricalSourceFunction(); + return true; + case R.id.action_add_exponential_source_function: + addExponentialSourceFunction(); + return true; + case R.id.action_add_identity_source_function: + addIdentitySourceFunction(); + return true; + case R.id.action_add_interval_source_function: + addIntervalSourceFunction(); + return true; + case R.id.action_add_composite_categorical_function: + addCompositeCategoricalFunction(); + return true; + case R.id.action_add_composite_exponential_function: + addCompositeExponentialFunction(); + return true; + case R.id.action_add_composite_interval_function: + addCompositeIntervalFunction(); + return true; + default: + return super.onOptionsItemSelected(item); + } + } + + + private void addExponentialZoomFunction() { + Timber.i("Add exponential zoom function"); + FillLayer layer = mapboxMap.getLayerAs("water"); + assert layer != null; + layer.setProperties( + fillColor( + zoom( + exponential( + stop(1, fillColor(Color.RED)), + stop(5, fillColor(Color.BLUE)), + stop(10, fillColor(Color.GREEN)) + ).withBase(0.5f) + ) + ) + ); + + Timber.i("Fill color: %s", layer.getFillColor()); + } + + private void addIntervalZoomFunction() { + Timber.i("Add interval zoom function"); + FillLayer layer = mapboxMap.getLayerAs("water"); + assert layer != null; + layer.setProperties( + fillColor( + zoom( + interval( + stop(1, fillColor(Color.RED)), + stop(5, fillColor(Color.BLUE)), + stop(10, fillColor(Color.GREEN)) + ) + ) + ) + ); + + Timber.i("Fill color: %s", layer.getFillColor()); + } + + private void addExponentialSourceFunction() { + Timber.i("Add exponential source function"); + FillLayer layer = mapboxMap.getLayerAs(AMSTERDAM_PARKS_LAYER); + assert layer != null; + layer.setProperties( + fillColor( + property( + "stroke-width", + exponential( + stop(1f, fillColor(Color.RED)), + stop(5f, fillColor(Color.BLUE)), + stop(10f, fillColor(Color.GREEN)) + ).withBase(0.5f) + ) + ) + ); + + Timber.i("Fill color: %s", layer.getFillColor()); + } + + private void addCategoricalSourceFunction() { + Timber.i("Add categorical source function"); + FillLayer layer = mapboxMap.getLayerAs(AMSTERDAM_PARKS_LAYER); + assert layer != null; + layer.setProperties( + fillColor( + property( + "name", + categorical( + stop("Westerpark", fillColor(Color.RED)), + stop("Jordaan", fillColor(Color.BLUE)), + stop("Prinseneiland", fillColor(Color.GREEN)) + )) + ) + ); + + Timber.i("Fill color: %s", layer.getFillColor()); + } + + private void addIdentitySourceFunction() { + Timber.i("Add identity source function"); + FillLayer layer = mapboxMap.getLayerAs(AMSTERDAM_PARKS_LAYER); + assert layer != null; + layer.setProperties( + fillOpacity( + property( + "fill-opacity", + Stops.<Float>identity()) + ) + ); + + Timber.i("Fill opacity: %s", layer.getFillOpacity()); + } + + private void addIntervalSourceFunction() { + Timber.i("Add interval source function"); + FillLayer layer = mapboxMap.getLayerAs(AMSTERDAM_PARKS_LAYER); + assert layer != null; + layer.setProperties( + fillColor( + property( + "stroke-width", + interval( + stop(1f, fillColor(Color.RED)), + stop(5f, fillColor(Color.BLUE)), + stop(10f, fillColor(Color.GREEN)) + )) + ) + ); + + Timber.i("Fill color: %s", layer.getFillColor()); + } + + private void addCompositeExponentialFunction() { + Timber.i("Add composite exponential function"); + FillLayer layer = mapboxMap.getLayerAs(AMSTERDAM_PARKS_LAYER); + assert layer != null; + layer.setProperties( + fillColor( + composite( + "stroke-width", + exponential( + stop(1, 1, fillColor(Color.RED)), + stop(10, 2, fillColor(Color.BLUE)), + stop(22, 3, fillColor(Color.GREEN)), + stop(1, 1, fillColor(Color.CYAN)), + stop(10, 2, fillColor(Color.GRAY)), + stop(22, 3, fillColor(Color.YELLOW)) + ).withBase(1f) + ) + ) + ); + + Timber.i("Fill color: %s", layer.getFillColor()); + } + + private void addCompositeIntervalFunction() { + Timber.i("Add composite exponential function"); + FillLayer layer = mapboxMap.getLayerAs(AMSTERDAM_PARKS_LAYER); + assert layer != null; + layer.setProperties( + fillColor( + composite( + "stroke-width", + interval( + stop(1, 1, fillColor(Color.RED)), + stop(10, 2, fillColor(Color.BLUE)), + stop(22, 3, fillColor(Color.GREEN)), + stop(1, 1, fillColor(Color.CYAN)), + stop(10, 2, fillColor(Color.GRAY)), + stop(22, 3, fillColor(Color.YELLOW)) + )) + ) + ); + + Timber.i("Fill color: %s", layer.getFillColor()); + } + + private void addCompositeCategoricalFunction() { + Timber.i("Add composite categorical function"); + FillLayer layer = mapboxMap.getLayerAs(AMSTERDAM_PARKS_LAYER); + assert layer != null; + layer.setProperties( + fillColor( + composite( + "name", + categorical( + stop(7f, "Westerpark", fillColor(Color.RED)), + stop(8f, "Westerpark", fillColor(Color.BLUE)), + stop(9f, "Westerpark", fillColor(Color.RED)), + stop(10f, "Westerpark", fillColor(Color.BLUE)), + stop(11f, "Westerpark", fillColor(Color.RED)), + stop(12f, "Westerpark", fillColor(Color.BLUE)), + stop(13f, "Westerpark", fillColor(Color.RED)), + stop(14f, "Westerpark", fillColor(Color.BLUE)), + stop(15f, "Westerpark", fillColor(Color.RED)), + stop(16f, "Westerpark", fillColor(Color.BLUE)), + stop(17f, "Westerpark", fillColor(Color.RED)), + stop(18f, "Westerpark", fillColor(Color.BLUE)), + stop(19f, "Westerpark", fillColor(Color.RED)), + stop(20f, "Westerpark", fillColor(Color.BLUE)), + stop(21f, "Westerpark", fillColor(Color.RED)), + stop(22f, "Westerpark", fillColor(Color.BLUE)), + stop(14f, "Jordaan", fillColor(Color.GREEN)), + stop(18f, "Jordaan", fillColor(Color.CYAN)), + stop(14f, "Prinseneiland", fillColor(Color.WHITE)), + stop(18f, "Prinseneiland", fillColor(Color.BLACK)) + )) + ) + ); + + Timber.i("Fill color: %s", layer.getFillColor()); + } + + private void addParksLayer() { + // Add a source + Source source; + try { + source = new GeoJsonSource("amsterdam-parks-source", readRawResource(R.raw.amsterdam)); + mapboxMap.addSource(source); + } catch (IOException ioException) { + Toast.makeText( + DataDrivenStyleActivity.this, + "Couldn't add source: " + ioException.getMessage(), + Toast.LENGTH_SHORT).show(); + return; + } + + + // Add a fill layer + mapboxMap.addLayer(new FillLayer(AMSTERDAM_PARKS_LAYER, source.getId()) + .withProperties( + fillColor(Color.BLACK), + fillOutlineColor(Color.BLUE), + fillAntialias(true) + ) + ); + } + + private String readRawResource(@RawRes int rawResource) throws IOException { + InputStream is = getResources().openRawResource(rawResource); + Writer writer = new StringWriter(); + char[] buffer = new char[1024]; + try { + Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); + int numRead; + while ((numRead = reader.read(buffer)) != -1) { + writer.write(buffer, 0, numRead); + } + } finally { + is.close(); + } + + return writer.toString(); + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/GeoJsonClusteringActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/GeoJsonClusteringActivity.java index 33fc7f60a6..80dfe777cb 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/GeoJsonClusteringActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/GeoJsonClusteringActivity.java @@ -3,12 +3,7 @@ package com.mapbox.mapboxsdk.testapp.activity.style; import android.graphics.Color; import android.os.Bundle; import android.support.v4.content.res.ResourcesCompat; -import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; - -import timber.log.Timber; - import android.view.MenuItem; import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; @@ -25,6 +20,8 @@ import com.mapbox.mapboxsdk.testapp.R; import java.net.MalformedURLException; import java.net.URL; +import timber.log.Timber; + import static com.mapbox.mapboxsdk.style.layers.Filter.all; import static com.mapbox.mapboxsdk.style.layers.Filter.gte; import static com.mapbox.mapboxsdk.style.layers.Filter.lt; @@ -36,7 +33,7 @@ import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textField; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textSize; /** - * Sample Activity to show off geojson source clustering and filter usage + * Test activity showcasing using a geojson source and visualise that source as a cluster by using filters. */ public class GeoJsonClusteringActivity extends AppCompatActivity { @@ -48,11 +45,9 @@ public class GeoJsonClusteringActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_geojson_clustering); - setupActionBar(); - - //Initialize map as normal + // Initialize map as normal mapView = (MapView) findViewById(R.id.mapView); - //noinspection ConstantConditions + // noinspection ConstantConditions mapView.onCreate(savedInstanceState); mapView.getMapAsync(new OnMapReadyCallback() { @@ -61,7 +56,7 @@ public class GeoJsonClusteringActivity extends AppCompatActivity { mapboxMap = map; mapboxMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(37.7749, 122.4194), 0)); - //Add a clustered source with some layers + // Add a clustered source with some layers addClusteredGeoJsonSource(); } }); @@ -121,7 +116,7 @@ public class GeoJsonClusteringActivity extends AppCompatActivity { } private void addClusteredGeoJsonSource() { - //Add a clustered source + // Add a clustered source try { mapboxMap.addSource( new GeoJsonSource("earthquakes", @@ -136,11 +131,11 @@ public class GeoJsonClusteringActivity extends AppCompatActivity { Timber.e("That's not an url... " + malformedUrlException.getMessage()); } - //Add unclustered layer + // Add unclustered layer int[][] layers = new int[][] { - new int[] {150, ResourcesCompat.getColor(getResources(), R.color.red_accent, getTheme())}, - new int[] {20, ResourcesCompat.getColor(getResources(), R.color.green_accent, getTheme())}, - new int[] {0, ResourcesCompat.getColor(getResources(), R.color.blue_accent, getTheme())} + new int[] {150, ResourcesCompat.getColor(getResources(), R.color.redAccent, getTheme())}, + new int[] {20, ResourcesCompat.getColor(getResources(), R.color.greenAccent, getTheme())}, + new int[] {0, ResourcesCompat.getColor(getResources(), R.color.blueAccent, getTheme())} }; SymbolLayer unclustered = new SymbolLayer("unclustered-points", "earthquakes"); @@ -148,7 +143,7 @@ public class GeoJsonClusteringActivity extends AppCompatActivity { mapboxMap.addLayer(unclustered); for (int i = 0; i < layers.length; i++) { - //Add some nice circles + // Add some nice circles CircleLayer circles = new CircleLayer("cluster-" + i, "earthquakes"); circles.setProperties( circleColor(layers[i][1]), @@ -162,7 +157,7 @@ public class GeoJsonClusteringActivity extends AppCompatActivity { mapboxMap.addLayer(circles); } - //Add the count labels + // Add the count labels SymbolLayer count = new SymbolLayer("count", "earthquakes"); count.setProperties( textField("{point_count}"), @@ -172,18 +167,7 @@ public class GeoJsonClusteringActivity extends AppCompatActivity { mapboxMap.addLayer(count); - //Zoom out to start + // Zoom out to start mapboxMap.animateCamera(CameraUpdateFactory.zoomTo(1)); } - - private void setupActionBar() { - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - setSupportActionBar(toolbar); - - ActionBar actionBar = getSupportActionBar(); - if (actionBar != null) { - actionBar.setDisplayHomeAsUpEnabled(true); - actionBar.setDisplayShowHomeEnabled(true); - } - } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RealTimeGeoJsonActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RealTimeGeoJsonActivity.java index fad4f9714d..b9f7ebce35 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RealTimeGeoJsonActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RealTimeGeoJsonActivity.java @@ -3,13 +3,7 @@ package com.mapbox.mapboxsdk.testapp.activity.style; import android.os.Bundle; import android.os.Handler; import android.support.annotation.NonNull; -import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; - -import timber.log.Timber; - -import android.view.MenuItem; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; @@ -21,10 +15,12 @@ import com.mapbox.mapboxsdk.testapp.R; import java.net.MalformedURLException; import java.net.URL; +import timber.log.Timber; + import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconImage; /** - * Use realtime GeoJSON data streams to move a symbol on your map + * Test activity showcasing using realtime GeoJSON to move a symbol on your map * <p> * GL-native equivalent of https://www.mapbox.com/mapbox-gl-js/example/live-geojson/ * </p> @@ -46,15 +42,6 @@ public class RealTimeGeoJsonActivity extends AppCompatActivity implements OnMapR super.onCreate(savedInstanceState); setContentView(R.layout.activity_default); - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - setSupportActionBar(toolbar); - - ActionBar actionBar = getSupportActionBar(); - if (actionBar != null) { - actionBar.setDisplayHomeAsUpEnabled(true); - actionBar.setDisplayShowHomeEnabled(true); - } - mapView = (MapView) findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); mapView.getMapAsync(this); @@ -119,17 +106,6 @@ public class RealTimeGeoJsonActivity extends AppCompatActivity implements OnMapR mapView.onSaveInstanceState(outState); } - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - onBackPressed(); - return true; - default: - return super.onOptionsItemSelected(item); - } - } - private static class RefreshGeoJsonRunnable implements Runnable { private MapboxMap mapboxMap; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java index 983f82c53a..af42b7a0fe 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleActivity.java @@ -4,9 +4,7 @@ import android.graphics.Color; import android.os.Bundle; import android.os.Handler; import android.support.annotation.RawRes; -import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; @@ -16,11 +14,12 @@ import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.style.functions.Function; +import com.mapbox.mapboxsdk.style.functions.stops.ExponentialStops; +import com.mapbox.mapboxsdk.style.functions.stops.Stop; import com.mapbox.mapboxsdk.style.layers.FillLayer; -import com.mapbox.mapboxsdk.style.layers.Function; import com.mapbox.mapboxsdk.style.layers.Layer; import com.mapbox.mapboxsdk.style.layers.LineLayer; -import com.mapbox.mapboxsdk.style.layers.NoSuchLayerException; import com.mapbox.mapboxsdk.style.layers.Property; import com.mapbox.mapboxsdk.style.layers.PropertyValue; import com.mapbox.mapboxsdk.style.layers.RasterLayer; @@ -45,13 +44,13 @@ import java.util.List; import timber.log.Timber; +import static com.mapbox.mapboxsdk.style.functions.Function.zoom; +import static com.mapbox.mapboxsdk.style.functions.stops.Stop.stop; +import static com.mapbox.mapboxsdk.style.functions.stops.Stops.exponential; import static com.mapbox.mapboxsdk.style.layers.Filter.all; import static com.mapbox.mapboxsdk.style.layers.Filter.eq; import static com.mapbox.mapboxsdk.style.layers.Filter.gte; import static com.mapbox.mapboxsdk.style.layers.Filter.lt; -import static com.mapbox.mapboxsdk.style.layers.Function.Stop; -import static com.mapbox.mapboxsdk.style.layers.Function.stop; -import static com.mapbox.mapboxsdk.style.layers.Function.zoom; import static com.mapbox.mapboxsdk.style.layers.Property.FILL_TRANSLATE_ANCHOR_MAP; import static com.mapbox.mapboxsdk.style.layers.Property.NONE; import static com.mapbox.mapboxsdk.style.layers.Property.SYMBOL_PLACEMENT_POINT; @@ -71,7 +70,7 @@ import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.symbolPlacement; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.visibility; /** - * Sample Activity to show off the runtime style api + * Test activity showcasing the runtime style API. */ public class RuntimeStyleActivity extends AppCompatActivity { @@ -83,9 +82,7 @@ public class RuntimeStyleActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_runtime_style); - setupActionBar(); - - //Initialize map as normal + // Initialize map as normal mapView = (MapView) findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); @@ -93,10 +90,10 @@ public class RuntimeStyleActivity extends AppCompatActivity { mapView.getMapAsync(new OnMapReadyCallback() { @Override public void onMapReady(MapboxMap map) { - //Store for later + // Store for later mapboxMap = map; - //Center and Zoom (Amsterdam, zoomed to streets) + // Center and Zoom (Amsterdam, zoomed to streets) mapboxMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(52.379189, 4.899431), 14)); } }); @@ -153,8 +150,11 @@ public class RuntimeStyleActivity extends AppCompatActivity { @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { - case android.R.id.home: - onBackPressed(); + case R.id.action_list_layers: + listLayers(); + return true; + case R.id.action_list_sources: + listSources(); return true; case R.id.action_water_color: setWaterColor(); @@ -203,6 +203,26 @@ public class RuntimeStyleActivity extends AppCompatActivity { } } + private void listLayers() { + List<Layer> layers = mapboxMap.getLayers(); + StringBuilder builder = new StringBuilder("Layers:"); + for (Layer layer : layers) { + builder.append("\n"); + builder.append(layer.getId()); + } + Toast.makeText(this, builder.toString(), Toast.LENGTH_LONG).show(); + } + + private void listSources() { + List<Source> sources = mapboxMap.getSources(); + StringBuilder builder = new StringBuilder("Sources:"); + for (Source source : sources) { + builder.append("\n"); + builder.append(source.getId()); + } + Toast.makeText(this, builder.toString(), Toast.LENGTH_LONG).show(); + } + private void setLayerInvisible() { String[] roadLayers = new String[] {"water"}; for (String roadLayer : roadLayers) { @@ -214,7 +234,7 @@ public class RuntimeStyleActivity extends AppCompatActivity { } private void setRoadSymbolPlacement() { - //Zoom so that the labels are visible first + // Zoom so that the labels are visible first mapboxMap.animateCamera(CameraUpdateFactory.zoomTo(14), new DefaultCallback() { @Override public void onFinish() { @@ -251,16 +271,12 @@ public class RuntimeStyleActivity extends AppCompatActivity { } private void removeBuildings() { - //Zoom to see buildings first - try { - mapboxMap.removeLayer("building"); - } catch (NoSuchLayerException noSuchLayerException) { - Toast.makeText(RuntimeStyleActivity.this, noSuchLayerException.getMessage(), Toast.LENGTH_SHORT).show(); - } + // Zoom to see buildings first + mapboxMap.removeLayer("building"); } private void addParksLayer() { - //Add a source + // Add a source Source source; try { source = new GeoJsonSource("amsterdam-spots", readRawResource(R.raw.amsterdam)); @@ -282,18 +298,18 @@ public class RuntimeStyleActivity extends AppCompatActivity { fillAntialias(true) ); - //Only show me parks (except westerpark with stroke-width == 3) + // Only show me parks (except westerpark with stroke-width == 3) layer.setFilter(all(eq("type", "park"), eq("stroke-width", 2))); - mapboxMap.addLayer(layer, "building"); - //layer.setPaintProperty(fillColor(Color.RED)); //XXX But not after the object is attached + mapboxMap.addLayerBelow(layer, "building"); + // layer.setPaintProperty(fillColor(Color.RED)); // XXX But not after the object is attached - //Or get the object later and set it. It's all good. + // Or get the object later and set it. It's all good. mapboxMap.getLayer("parksLayer").setProperties(fillColor(Color.RED)); - //You can get a typed layer, if you're sure it's of that type. Use with care + // You can get a typed layer, if you're sure it's of that type. Use with care layer = mapboxMap.getLayerAs("parksLayer"); - //And get some properties + // And get some properties PropertyValue<Boolean> fillAntialias = layer.getFillAntialias(); Timber.d("Fill anti alias: " + fillAntialias.getValue()); layer.setProperties(fillTranslateAnchor(FILL_TRANSLATE_ANCHOR_MAP)); @@ -302,12 +318,12 @@ public class RuntimeStyleActivity extends AppCompatActivity { PropertyValue<String> visibility = layer.getVisibility(); Timber.d("Visibility: " + visibility.getValue()); - //Get a good look at it all + // Get a good look at it all mapboxMap.animateCamera(CameraUpdateFactory.zoomTo(12)); } private void addDynamicParksLayer() { - //Load some data + // Load some data FeatureCollection parks; try { String json = readRawResource(R.raw.amsterdam); @@ -321,7 +337,7 @@ public class RuntimeStyleActivity extends AppCompatActivity { return; } - //Add an empty source + // Add an empty source mapboxMap.addSource(new GeoJsonSource("dynamic-park-source")); FillLayer layer = new FillLayer("dynamic-parks-layer", "dynamic-park-source"); @@ -332,15 +348,15 @@ public class RuntimeStyleActivity extends AppCompatActivity { fillAntialias(true) ); - //Only show me parks + // Only show me parks layer.setFilter(all(eq("type", "park"))); mapboxMap.addLayer(layer); - //Get a good look at it all + // Get a good look at it all mapboxMap.animateCamera(CameraUpdateFactory.zoomTo(12)); - //Animate the parks source + // Animate the parks source animateParksSource(parks, 0); } @@ -354,7 +370,7 @@ public class RuntimeStyleActivity extends AppCompatActivity { } Timber.d("Updating parks source"); - //change the source + // change the source int park = counter < parks.getFeatures().size() - 1 ? counter : 0; GeoJsonSource source = mapboxMap.getSourceAs("dynamic-park-source"); @@ -369,14 +385,14 @@ public class RuntimeStyleActivity extends AppCompatActivity { features.add(parks.getFeatures().get(park)); source.setGeoJson(FeatureCollection.fromFeatures(features)); - //Re-post + // Re-post animateParksSource(parks, park + 1); } }, counter == 0 ? 100 : 1000); } private void addTerrainLayer() { - //Add a source + // Add a source Source source = new VectorSource("my-terrain-source", "mapbox://mapbox.mapbox-terrain-v2"); mapboxMap.addSource(source); @@ -391,10 +407,10 @@ public class RuntimeStyleActivity extends AppCompatActivity { mapboxMap.addLayer(layer); - //Need to get a fresh handle + // Need to get a fresh handle layer = mapboxMap.getLayerAs("terrainLayer"); - //Make sure it's also applied after the fact + // Make sure it's also applied after the fact layer.setMinZoom(10); layer.setMaxZoom(15); @@ -404,11 +420,11 @@ public class RuntimeStyleActivity extends AppCompatActivity { } private void addSatelliteLayer() { - //Add a source + // Add a source Source source = new RasterSource("my-raster-source", "mapbox://mapbox.satellite", 512); mapboxMap.addSource(source); - //Add a layer + // Add a layer mapboxMap.addLayer(new RasterLayer("satellite-layer", "my-raster-source")); } @@ -418,24 +434,29 @@ public class RuntimeStyleActivity extends AppCompatActivity { return; } - //Set a zoom function to update the color of the water - layer.setProperties(fillColor(zoom(0.8f, - stop(1, fillColor(Color.GREEN)), - stop(4, fillColor(Color.BLUE)), - stop(12, fillColor(Color.RED)), - stop(20, fillColor(Color.BLACK)) - ))); - - //do some animations to show it off properly + // Set a zoom function to update the color of the water + layer.setProperties(fillColor( + zoom( + exponential( + stop(1, fillColor(Color.GREEN)), + stop(4, fillColor(Color.BLUE)), + stop(12, fillColor(Color.RED)), + stop(20, fillColor(Color.BLACK)) + ).withBase(0.8f) + ) + )); + + // do some animations to show it off properly mapboxMap.animateCamera(CameraUpdateFactory.zoomTo(1), 1500); PropertyValue<String> fillColor = layer.getFillColor(); - Function<String> function = fillColor.getFunction(); + Function<Float, String> function = (Function<Float, String>) fillColor.getFunction(); if (function != null) { - Timber.d("Fill color base: " + function.getBase()); - Timber.d("Fill color #stops: " + function.getStops().length); + ExponentialStops<Float, String> stops = (ExponentialStops) function.getStops(); + Timber.d("Fill color base: " + stops.getBase()); + Timber.d("Fill color #stops: " + stops.size()); if (function.getStops() != null) { - for (Stop stop : function.getStops()) { + for (Stop<Float, String> stop : stops) { Timber.d("Fill color #stops: " + stop); } } @@ -459,23 +480,12 @@ public class RuntimeStyleActivity extends AppCompatActivity { return writer.toString(); } - private void setupActionBar() { - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - setSupportActionBar(toolbar); - - ActionBar actionBar = getSupportActionBar(); - if (actionBar != null) { - actionBar.setDisplayHomeAsUpEnabled(true); - actionBar.setDisplayShowHomeEnabled(true); - } - } - private void addCustomTileSource() { - //Add a source + // Add a source Source source = new VectorSource("custom-tile-source", new TileSet("2.1.0", "https://vector.mapzen.com/osm/all/{z}/{x}/{y}.mvt?api_key=vector-tiles-LM25tq4")); mapboxMap.addSource(source); - //Add a layer + // Add a layer mapboxMap.addLayer( new FillLayer("custom-tile-layers", "custom-tile-source") .withSourceLayer("water") @@ -577,12 +587,12 @@ public class RuntimeStyleActivity extends AppCompatActivity { @Override public void onCancel() { - //noop + // noop } @Override public void onFinish() { - //noop + // noop } } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleTestActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleTestActivity.java index 1d242359bc..910233accf 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleTestActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleTestActivity.java @@ -9,7 +9,7 @@ import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.mapboxsdk.testapp.R; /** - * Test activity for unit test execution + * Test activity used for instrumentation test execution. */ public class RuntimeStyleTestActivity extends AppCompatActivity { @@ -21,7 +21,7 @@ public class RuntimeStyleTestActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_runtime_style); - //Initialize map as normal + // Initialize map as normal mapView = (MapView) findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); mapView.getMapAsync(new OnMapReadyCallback() { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleTimingTestActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleTimingTestActivity.java index c57bc0069a..5057578731 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleTimingTestActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/RuntimeStyleTimingTestActivity.java @@ -29,7 +29,7 @@ public class RuntimeStyleTimingTestActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_runtime_style); - //Initialize map as normal + // Initialize map as normal mapView = (MapView) findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); mapView.getMapAsync(new OnMapReadyCallback() { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/StyleFileActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/StyleFileActivity.java index 73e6bc985a..6906e90f6e 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/StyleFileActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/StyleFileActivity.java @@ -6,10 +6,7 @@ import android.support.annotation.NonNull; import android.support.annotation.RawRes; import android.support.design.widget.FloatingActionButton; import android.support.v4.content.ContextCompat; -import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; -import android.view.MenuItem; import android.view.View; import android.widget.Toast; @@ -32,7 +29,7 @@ import java.io.Writer; import timber.log.Timber; /** - * Example on how to use a file:// resource for the style.json + * Test activity showcasing how to use a file:// resource for the style.json */ public class StyleFileActivity extends AppCompatActivity { @@ -44,15 +41,6 @@ public class StyleFileActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_style_file); - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - setSupportActionBar(toolbar); - - ActionBar actionBar = getSupportActionBar(); - if (actionBar != null) { - actionBar.setDisplayHomeAsUpEnabled(true); - actionBar.setDisplayShowHomeEnabled(true); - } - mapView = (MapView) findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); mapView.getMapAsync(new OnMapReadyCallback() { @@ -93,7 +81,7 @@ public class StyleFileActivity extends AppCompatActivity { } protected void onPostExecute(Long result) { - //Actual file:// usage + // Actual file:// usage mapboxMap.setStyleUrl("file://" + cacheStyleFile.getAbsolutePath()); } @@ -168,15 +156,4 @@ public class StyleFileActivity extends AppCompatActivity { super.onDestroy(); mapView.onDestroy(); } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - onBackPressed(); - return true; - default: - return super.onOptionsItemSelected(item); - } - } -}
\ No newline at end of file +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolLayerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolLayerActivity.java index be71e58eba..82da905413 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolLayerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolLayerActivity.java @@ -5,9 +5,7 @@ import android.graphics.Color; import android.graphics.PointF; import android.os.Bundle; import android.support.annotation.NonNull; -import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; @@ -37,7 +35,7 @@ import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textFont; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textSize; /** - * Example to test runtime manipulation of symbol layers + * Test activity showcasing runtime manipulation of symbol layers. */ public class SymbolLayerActivity extends AppCompatActivity implements MapboxMap.OnMapClickListener { @@ -51,15 +49,6 @@ public class SymbolLayerActivity extends AppCompatActivity implements MapboxMap. super.onCreate(savedInstanceState); setContentView(R.layout.activity_symbollayer); - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - setSupportActionBar(toolbar); - - ActionBar actionBar = getSupportActionBar(); - if (actionBar != null) { - actionBar.setDisplayHomeAsUpEnabled(true); - actionBar.setDisplayShowHomeEnabled(true); - } - mapView = (MapView) findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); mapView.getMapAsync(new OnMapReadyCallback() { @@ -67,21 +56,21 @@ public class SymbolLayerActivity extends AppCompatActivity implements MapboxMap. public void onMapReady(@NonNull final MapboxMap map) { mapboxMap = map; - //Add a image for the makers + // Add a image for the makers mapboxMap.addImage( "my-marker-image", BitmapFactory.decodeResource(SymbolLayerActivity.this.getResources(), R.drawable.mapbox_marker_icon_default) ); - //Add a source + // Add a source FeatureCollection markers = FeatureCollection.fromFeatures(new Feature[] { Feature.fromGeometry(Point.fromCoordinates(new double[] {4.91638, 52.35673}), featureProperties("Marker 1")), Feature.fromGeometry(Point.fromCoordinates(new double[] {4.91638, 52.34673}), featureProperties("Marker 2")) }); mapboxMap.addSource(new GeoJsonSource(MARKER_SOURCE, markers)); - //Add the symbol-layer + // Add the symbol-layer mapboxMap.addLayer( new SymbolLayer(MARKER_LAYER, MARKER_SOURCE) .withProperties( @@ -93,10 +82,10 @@ public class SymbolLayerActivity extends AppCompatActivity implements MapboxMap. ) ); - //Show + // Show mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(52.35273, 4.91638), 14)); - //Set a click-listener so we can manipulate the map + // Set a click-listener so we can manipulate the map mapboxMap.setOnMapClickListener(SymbolLayerActivity.this); } }); @@ -104,13 +93,13 @@ public class SymbolLayerActivity extends AppCompatActivity implements MapboxMap. @Override public void onMapClick(@NonNull LatLng point) { - //Query which features are clicked + // Query which features are clicked PointF screenLoc = mapboxMap.getProjection().toScreenLocation(point); List<Feature> features = mapboxMap.queryRenderedFeatures(screenLoc, MARKER_LAYER); SymbolLayer layer = mapboxMap.getLayerAs(MARKER_LAYER); if (features.size() == 0) { - //Reset + // Reset layer.setProperties(iconSize(1f)); } else { layer.setProperties(iconSize(3f)); @@ -195,9 +184,6 @@ public class SymbolLayerActivity extends AppCompatActivity implements MapboxMap. @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { - case android.R.id.home: - onBackPressed(); - return true; case R.id.action_toggle_text_size: toggleTextSize(); return true; @@ -211,5 +197,4 @@ public class SymbolLayerActivity extends AppCompatActivity implements MapboxMap. return super.onOptionsItemSelected(item); } } - -}
\ No newline at end of file +} |