diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature')
5 files changed, 91 insertions, 62 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxCountActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxCountActivity.java index c4ea81263b..35ed45442c 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxCountActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxCountActivity.java @@ -10,6 +10,7 @@ import com.google.gson.JsonElement; import com.mapbox.geojson.Feature; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.Style; import com.mapbox.mapboxsdk.testapp.R; import java.util.List; @@ -37,6 +38,9 @@ public class QueryRenderedFeaturesBoxCountActivity extends AppCompatActivity { mapView.onCreate(savedInstanceState); mapView.getMapAsync(mapboxMap -> { QueryRenderedFeaturesBoxCountActivity.this.mapboxMap = mapboxMap; + + mapboxMap.setStyle(new Style.Builder().fromUrl(Style.MAPBOX_STREETS)); + selectionBox.setOnClickListener(view -> { // Query int top = selectionBox.getTop() - mapView.getTop(); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxHighlightActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxHighlightActivity.java index 9281526352..936850f2eb 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxHighlightActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxHighlightActivity.java @@ -14,6 +14,7 @@ import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.Style; import com.mapbox.mapboxsdk.style.expressions.Expression; import com.mapbox.mapboxsdk.style.layers.FillLayer; +import com.mapbox.mapboxsdk.style.layers.Layer; import com.mapbox.mapboxsdk.style.sources.GeoJsonSource; import com.mapbox.mapboxsdk.testapp.R; @@ -48,15 +49,10 @@ public class QueryRenderedFeaturesBoxHighlightActivity extends AppCompatActivity mapView.getMapAsync(mapboxMap -> { QueryRenderedFeaturesBoxHighlightActivity.this.mapboxMap = mapboxMap; - Style style = mapboxMap.getStyle(); - // Add layer / source final GeoJsonSource source = new GeoJsonSource("highlighted-shapes-source"); - style.addSource(source); - style.addLayer( - new FillLayer("highlighted-shapes-layer", "highlighted-shapes-source") - .withProperties(fillColor(Color.RED)) - ); + final Layer layer = new FillLayer("highlighted-shapes-layer", "highlighted-shapes-source") + .withProperties(fillColor(Color.RED)); selectionBox.setOnClickListener(view -> { // Query @@ -77,6 +73,12 @@ public class QueryRenderedFeaturesBoxHighlightActivity extends AppCompatActivity // Update source data source.setGeoJson(FeatureCollection.fromFeatures(features)); }); + + mapboxMap.setStyle(new Style.Builder() + .fromUrl(Style.MAPBOX_STREETS) + .withSource(source) + .withLayer(layer) + ); }); } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxSymbolCountActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxSymbolCountActivity.java index 6bb1cb6dee..22daf262d8 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxSymbolCountActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesBoxSymbolCountActivity.java @@ -1,5 +1,6 @@ package com.mapbox.mapboxsdk.testapp.activity.feature; +import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.RectF; import android.os.Bundle; @@ -10,6 +11,8 @@ import android.widget.Toast; import com.mapbox.geojson.Feature; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.Style; +import com.mapbox.mapboxsdk.style.layers.BackgroundLayer; import com.mapbox.mapboxsdk.style.layers.SymbolLayer; import com.mapbox.mapboxsdk.style.sources.GeoJsonSource; import com.mapbox.mapboxsdk.testapp.R; @@ -20,6 +23,8 @@ import java.util.List; import timber.log.Timber; +import static com.mapbox.mapboxsdk.style.expressions.Expression.rgb; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.backgroundColor; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconImage; /** @@ -45,20 +50,31 @@ public class QueryRenderedFeaturesBoxSymbolCountActivity extends AppCompatActivi mapView.getMapAsync(mapboxMap -> { QueryRenderedFeaturesBoxSymbolCountActivity.this.mapboxMap = mapboxMap; - // Add a symbol layer (also works with annotations) try { - mapboxMap.getStyle().addSource(new GeoJsonSource("symbols-source", ResourceUtils.readRawResource( - QueryRenderedFeaturesBoxSymbolCountActivity.this, R.raw.test_points_utrecht))); - } catch (IOException ioException) { - Timber.e(ioException, "Could not load geojson"); - return; + String testPoints = ResourceUtils.readRawResource(mapView.getContext(), R.raw.test_points_utrecht); + Bitmap markerImage = BitmapFactory.decodeResource(getResources(), R.drawable.mapbox_marker_icon_default); + + mapboxMap.setStyle(new Style.Builder() + .withLayer( + new BackgroundLayer("bg") + .withProperties( + backgroundColor(rgb(120, 161, 226)) + ) + ) + .withLayer( + new SymbolLayer("symbols-layer", "symbols-source") + .withProperties( + iconImage("test-icon") + ) + ) + .withSource( + new GeoJsonSource("symbols-source", testPoints) + ) + .withImage("test-icon", markerImage) + ); + } catch (IOException exception) { + exception.printStackTrace(); } - mapboxMap.getStyle().addImage( - "test-icon", - BitmapFactory.decodeResource(getResources(), - R.drawable.mapbox_marker_icon_default) - ); - mapboxMap.getStyle().addLayer(new SymbolLayer("symbols-layer", "symbols-source").withProperties(iconImage("test-icon"))); selectionBox.setOnClickListener(view -> { // Query diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesPropertiesActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesPropertiesActivity.java index ee9733357e..1bd7b09a99 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesPropertiesActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QueryRenderedFeaturesPropertiesActivity.java @@ -66,7 +66,6 @@ public class QueryRenderedFeaturesPropertiesActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_query_features_point); - // Initialize map as normal mapView = (MapView) findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QuerySourceFeaturesActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QuerySourceFeaturesActivity.java index d17a4ad9e5..f7d5a39e4a 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QuerySourceFeaturesActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QuerySourceFeaturesActivity.java @@ -5,12 +5,13 @@ import android.support.design.widget.FloatingActionButton; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.widget.Toast; - import com.google.gson.JsonObject; 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.Style; import com.mapbox.mapboxsdk.style.expressions.Expression; import com.mapbox.mapboxsdk.style.layers.CircleLayer; import com.mapbox.mapboxsdk.style.sources.GeoJsonSource; @@ -29,6 +30,7 @@ import static com.mapbox.mapboxsdk.style.expressions.Expression.neq; public class QuerySourceFeaturesActivity extends AppCompatActivity { public MapView mapView; + private MapboxMap mapboxMap; @Override protected void onCreate(Bundle savedInstanceState) { @@ -38,47 +40,53 @@ public class QuerySourceFeaturesActivity extends AppCompatActivity { // Initialize map as normal mapView = (MapView) findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); - mapView.getMapAsync(mapboxMap -> { - JsonObject properties = new JsonObject(); - properties.addProperty("key1", "value1"); - final GeoJsonSource source = new GeoJsonSource("test-source", - FeatureCollection.fromFeatures(new Feature[] { - Feature.fromGeometry(Point.fromLngLat(17.1, 51), properties), - Feature.fromGeometry(Point.fromLngLat(17.2, 51), properties), - Feature.fromGeometry(Point.fromLngLat(17.3, 51), properties), - Feature.fromGeometry(Point.fromLngLat(17.4, 51), properties), - })); - mapboxMap.getStyle().addSource(source); - - Expression visible = eq(get("key1"), literal("value1")); - Expression invisible = neq(get("key1"), literal("value1")); - - CircleLayer layer = new CircleLayer("test-layer", source.getId()) - .withFilter(visible); - mapboxMap.getStyle().addLayer(layer); - - // Add a click listener - mapboxMap.addOnMapClickListener(point -> { - // Query - List<Feature> features = source.querySourceFeatures(eq(get("key1"), literal("value1"))); - Toast.makeText(QuerySourceFeaturesActivity.this, String.format("Found %s features", - features.size()), Toast.LENGTH_SHORT).show(); - - return false; - }); - - FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); - fab.setColorFilter(ContextCompat.getColor(this, R.color.primary)); - fab.setOnClickListener(view -> { - Expression visibility = layer.getFilter(); - if (visibility != null && visibility.equals(visible)) { - layer.setFilter(invisible); - fab.setImageResource(R.drawable.ic_layers_clear); - } else { - layer.setFilter(visible); - fab.setImageResource(R.drawable.ic_layers); - } - }); + mapView.getMapAsync(map -> { + this.mapboxMap = map; + mapboxMap.getStyle(this::initStyle); + mapboxMap.setStyle(Style.MAPBOX_STREETS); + }); + } + + private void initStyle(Style style) { + JsonObject properties = new JsonObject(); + properties.addProperty("key1", "value1"); + final GeoJsonSource source = new GeoJsonSource("test-source", + FeatureCollection.fromFeatures(new Feature[] { + Feature.fromGeometry(Point.fromLngLat(17.1, 51), properties), + Feature.fromGeometry(Point.fromLngLat(17.2, 51), properties), + Feature.fromGeometry(Point.fromLngLat(17.3, 51), properties), + Feature.fromGeometry(Point.fromLngLat(17.4, 51), properties), + })); + style.addSource(source); + + Expression visible = eq(get("key1"), literal("value1")); + Expression invisible = neq(get("key1"), literal("value1")); + + CircleLayer layer = new CircleLayer("test-layer", source.getId()) + .withFilter(visible); + style.addLayer(layer); + + // Add a click listener + mapboxMap.addOnMapClickListener(point -> { + // Query + List<Feature> features = source.querySourceFeatures(eq(get("key1"), literal("value1"))); + Toast.makeText(QuerySourceFeaturesActivity.this, String.format("Found %s features", + features.size()), Toast.LENGTH_SHORT).show(); + + return false; + }); + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setColorFilter(ContextCompat.getColor(this, R.color.primary)); + fab.setOnClickListener(view -> { + Expression visibility = layer.getFilter(); + if (visibility != null && visibility.equals(visible)) { + layer.setFilter(invisible); + fab.setImageResource(R.drawable.ic_layers_clear); + } else { + layer.setFilter(visible); + fab.setImageResource(R.drawable.ic_layers); + } }); } |