diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QuerySourceFeaturesActivity.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QuerySourceFeaturesActivity.java | 39 |
1 files changed, 27 insertions, 12 deletions
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 79069a26f7..3a52a22f6e 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 @@ -1,6 +1,8 @@ package com.mapbox.mapboxsdk.testapp.activity.feature; import android.os.Bundle; +import android.support.design.widget.FloatingActionButton; +import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.widget.Toast; @@ -9,7 +11,7 @@ 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.style.expressions.Expression; import com.mapbox.mapboxsdk.style.layers.CircleLayer; import com.mapbox.mapboxsdk.style.sources.GeoJsonSource; import com.mapbox.mapboxsdk.testapp.R; @@ -27,7 +29,6 @@ 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,31 +39,45 @@ public class QuerySourceFeaturesActivity extends AppCompatActivity { mapView = (MapView) findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); mapView.getMapAsync(mapboxMap -> { - QuerySourceFeaturesActivity.this.mapboxMap = mapboxMap; - JsonObject properties = new JsonObject(); properties.addProperty("key1", "value1"); final GeoJsonSource source = new GeoJsonSource("test-source", FeatureCollection.fromFeatures(new Feature[] { - Feature.fromGeometry(Point.fromLngLat(0, 0), properties) + 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.addSource(source); - mapboxMap.addLayer(new CircleLayer("test-layer", source.getId()).withFilter(neq(get("key1"), literal("value1")))); + 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.addLayer(layer); // Add a click listener - mapboxMap.setOnMapClickListener(point -> { + 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(); }); - }); - } - - public MapboxMap getMapboxMap() { - return mapboxMap; + 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); + } + }); + }); } @Override |