diff options
author | Tobrun <tobrun@mapbox.com> | 2017-12-19 08:55:48 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-19 08:55:48 +0100 |
commit | 757cc0f2be1c0972f9b74a91ed873fe8a892f27f (patch) | |
tree | 1e7bcbdebc6a3d24fbcef56f32eca2323be4fc12 /platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/DataDrivenStyleActivity.java | |
parent | 9759ba78367cea366ad28057d47725a37170c9f3 (diff) | |
download | qtlocation-mapboxgl-757cc0f2be1c0972f9b74a91ed873fe8a892f27f.tar.gz |
[android] - add binding integration for expressions (#10654)
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/DataDrivenStyleActivity.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/DataDrivenStyleActivity.java | 279 |
1 files changed, 191 insertions, 88 deletions
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 index 571b48daa6..5cf3db2c3b 100644 --- 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 @@ -5,14 +5,15 @@ import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Menu; import android.view.MenuItem; +import android.widget.TextView; import android.widget.Toast; +import com.mapbox.mapboxsdk.camera.CameraPosition; 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; @@ -23,13 +24,16 @@ import java.io.IOException; 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.expressions.Expression.color; +import static com.mapbox.mapboxsdk.style.expressions.Expression.exponential; +import static com.mapbox.mapboxsdk.style.expressions.Expression.get; +import static com.mapbox.mapboxsdk.style.expressions.Expression.interpolate; +import static com.mapbox.mapboxsdk.style.expressions.Expression.linear; +import static com.mapbox.mapboxsdk.style.expressions.Expression.literal; +import static com.mapbox.mapboxsdk.style.expressions.Expression.match; +import static com.mapbox.mapboxsdk.style.expressions.Expression.step; +import static com.mapbox.mapboxsdk.style.expressions.Expression.stop; +import static com.mapbox.mapboxsdk.style.expressions.Expression.zoom; 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; @@ -63,12 +67,26 @@ public class DataDrivenStyleActivity extends AppCompatActivity { // Add a parks layer addParksLayer(); + // Add debug overlay + setupDebugZoomView(); + // Center and Zoom (Amsterdam, zoomed to streets) mapboxMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(52.379189, 4.899431), 14)); } }); } + private void setupDebugZoomView() { + final TextView textView = (TextView) findViewById(R.id.textZoom); + mapboxMap.setOnCameraChangeListener(new MapboxMap.OnCameraChangeListener() { + @Override + public void onCameraChange(CameraPosition position) { + textView.setText(String.format(getString(R.string.debug_zoom), position.zoom)); + } + }); + } + + @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_data_driven_style, menu); @@ -159,12 +177,11 @@ public class DataDrivenStyleActivity extends AppCompatActivity { 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) + interpolate( + exponential(0.5f), zoom(), + stop(1, color(Color.RED)), + stop(5, color(Color.BLUE)), + stop(10, color(Color.GREEN)) ) ) ); @@ -178,12 +195,11 @@ public class DataDrivenStyleActivity extends AppCompatActivity { assert layer != null; layer.setProperties( fillColor( - zoom( - interval( - stop(1, fillColor(Color.RED)), - stop(5, fillColor(Color.BLUE)), - stop(10, fillColor(Color.GREEN)) - ) + step(zoom(), + color(Color.CYAN), + stop(1, color(Color.RED)), + stop(5, color(Color.BLUE)), + stop(10, color(Color.GREEN)) ) ) ); @@ -197,13 +213,12 @@ public class DataDrivenStyleActivity extends AppCompatActivity { 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) + interpolate( + exponential(0.5f), + get("stroke-width"), + stop(1f, color(Color.RED)), + stop(5f, color(Color.BLUE)), + stop(10f, color(Color.GREEN)) ) ) ); @@ -217,13 +232,13 @@ public class DataDrivenStyleActivity extends AppCompatActivity { assert layer != null; layer.setProperties( fillColor( - property( - "name", - categorical( - stop("Westerpark", fillColor(Color.RED)), - stop("Jordaan", fillColor(Color.BLUE)), - stop("Prinseneiland", fillColor(Color.GREEN)) - )) + match( + get("name"), + literal("Westerpark"), color(Color.RED), + literal("Jordaan"), color(Color.BLUE), + literal("Prinseneiland"), color(Color.GREEN), + color(Color.CYAN) + ) ) ); @@ -236,9 +251,7 @@ public class DataDrivenStyleActivity extends AppCompatActivity { assert layer != null; layer.setProperties( fillOpacity( - property( - "fill-opacity", - Stops.<Float>identity()) + get("fill-opacity") ) ); @@ -251,13 +264,13 @@ public class DataDrivenStyleActivity extends AppCompatActivity { 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)) - )) + step( + get("stroke-width"), + color(Color.CYAN), + stop(1f, color(Color.RED)), + stop(2f, color(Color.BLUE)), + stop(3f, color(Color.GREEN)) + ) ) ); @@ -270,16 +283,30 @@ public class DataDrivenStyleActivity extends AppCompatActivity { 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) + interpolate( + exponential(1f), + zoom(), + stop(12, step( + get("stroke-width"), + color(Color.BLACK), + stop(1f, color(Color.RED)), + stop(2f, color(Color.WHITE)), + stop(3f, color(Color.BLUE)) + )), + stop(15, step( + get("stroke-width"), + color(Color.BLACK), + stop(1f, color(Color.YELLOW)), + stop(2f, color(Color.LTGRAY)), + stop(3f, color(Color.CYAN)) + )), + stop(18, step( + get("stroke-width"), + color(Color.BLACK), + stop(1f, color(Color.WHITE)), + stop(2f, color(Color.GRAY)), + stop(3f, color(Color.GREEN))) + ) ) ) ); @@ -288,21 +315,36 @@ public class DataDrivenStyleActivity extends AppCompatActivity { } private void addCompositeIntervalFunction() { - Timber.i("Add composite exponential function"); + Timber.i("Add composite interval 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)) + interpolate( + linear(), + zoom(), + stop(12, step( + get("stroke-width"), + color(Color.BLACK), + stop(1f, color(Color.RED)), + stop(2f, color(Color.WHITE)), + stop(3f, color(Color.BLUE)) + )), + stop(15, step( + get("stroke-width"), + color(Color.BLACK), + stop(1f, color(Color.YELLOW)), + stop(2f, color(Color.LTGRAY)), + stop(3f, color(Color.CYAN)) + )), + stop(18, step( + get("stroke-width"), + color(Color.BLACK), + stop(1f, color(Color.WHITE)), + stop(2f, color(Color.GRAY)), + stop(3f, color(Color.GREEN)) )) + ) ) ); @@ -315,30 +357,92 @@ public class DataDrivenStyleActivity extends AppCompatActivity { 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)) + step(zoom(), + color(Color.BLACK), + stop(7f, match( + get("name"), + literal("Westerpark"), color(Color.RED), + color(Color.BLACK) + )), + stop(8f, match( + get("name"), + literal("Westerpark"), color(Color.BLUE), + color(Color.BLACK) + )), + stop(9f, match( + get("name"), + literal("Westerpark"), color(Color.RED), + color(Color.BLACK) + )), + stop(10f, match( + get("name"), + literal("Westerpark"), color(Color.BLUE), + color(Color.BLACK) + )), + stop(11f, match( + get("name"), + literal("Westerpark"), color(Color.RED), + color(Color.BLACK) + )), + stop(12f, match( + get("name"), + literal("Westerpark"), color(Color.BLUE), + color(Color.BLACK) + )), + stop(13f, match( + get("name"), + literal("Westerpark"), color(Color.RED), + color(Color.BLACK) + )), + stop(14f, match( + get("name"), + literal("Westerpark"), color(Color.BLUE), + literal("Jordaan"), color(Color.GREEN), + literal("PrinsenEiland"), color(Color.WHITE), + color(Color.BLACK) + )), + stop(15f, match( + get("name"), + literal("Westerpark"), color(Color.RED), + color(Color.BLACK) + )), + stop(16f, match( + get("name"), + literal("Westerpark"), color(Color.BLUE), + color(Color.BLACK) + )), + stop(17f, match( + get("name"), + literal("Westerpark"), color(Color.RED), + color(Color.BLACK) + )), + stop(18f, match( + get("name"), + literal("Westerpark"), color(Color.BLUE), + literal("Jordaan"), color(Color.CYAN), + color(Color.BLACK) + )), + stop(19f, match( + get("name"), + literal("Westerpark"), color(Color.RED), + color(Color.BLACK) + )), + stop(20f, match( + get("name"), + literal("Westerpark"), color(Color.BLUE), + color(Color.BLACK) + )), + stop(21f, match( + get("name"), + literal("Westerpark"), color(Color.RED), + color(Color.BLACK) + )), + stop(22f, match( + get("name"), + literal("Westerpark"), color(Color.BLUE), + color(Color.BLACK) )) + ) ) ); @@ -359,7 +463,6 @@ public class DataDrivenStyleActivity extends AppCompatActivity { return; } - // Add a fill layer mapboxMap.addLayer(new FillLayer(AMSTERDAM_PARKS_LAYER, source.getId()) .withProperties( |