summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/feature/QuerySourceFeaturesActivity.java
diff options
context:
space:
mode:
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.java92
1 files changed, 50 insertions, 42 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 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);
+ }
});
}