summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorŁukasz Paczos <lukasz.paczos@mapbox.com>2018-05-17 12:29:33 +0200
committerŁukasz Paczos <lukasz.paczos@mapbox.com>2018-05-17 12:39:00 +0200
commit9d1b7e7e2592859f561e26d53fc766fad9d8730a (patch)
tree2a08cf280053c58b0fd6a2bb3b20cdeb7b7035ae
parentd05fa404a8b2d67c908c857cbebacd38f594052a (diff)
downloadqtlocation-mapboxgl-9d1b7e7e2592859f561e26d53fc766fad9d8730a.tar.gz
[android] - selected symbol with z-index example
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/SimpleMapActivity.java67
1 files changed, 67 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/SimpleMapActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/SimpleMapActivity.java
index 8f8a5af3cc..3dfa2655f6 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/SimpleMapActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/SimpleMapActivity.java
@@ -3,15 +3,29 @@ package com.mapbox.mapboxsdk.testapp.activity.maplayout;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
+import com.mapbox.geojson.Feature;
+import com.mapbox.geojson.FeatureCollection;
+import com.mapbox.geojson.Point;
+import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
+import com.mapbox.mapboxsdk.geometry.LatLng;
import com.mapbox.mapboxsdk.maps.MapView;
+import com.mapbox.mapboxsdk.style.expressions.Expression;
+import com.mapbox.mapboxsdk.style.layers.Layer;
+import com.mapbox.mapboxsdk.style.layers.PropertyFactory;
+import com.mapbox.mapboxsdk.style.layers.SymbolLayer;
+import com.mapbox.mapboxsdk.style.sources.GeoJsonSource;
import com.mapbox.mapboxsdk.testapp.R;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* Test activity showcasing a simple MapView without any MapboxMap interaction.
*/
public class SimpleMapActivity extends AppCompatActivity {
private MapView mapView;
+ private boolean selected;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -20,6 +34,59 @@ public class SimpleMapActivity extends AppCompatActivity {
mapView = (MapView) findViewById(R.id.mapView);
mapView.onCreate(savedInstanceState);
+ mapView.getMapAsync(mapboxMap -> {
+ List<Feature> features = new ArrayList<>();
+ Feature feature1 = Feature.fromGeometry(Point.fromLngLat(21.032070, 52.2401));
+ feature1.addBooleanProperty("selected", false);
+ Feature feature2 = Feature.fromGeometry(Point.fromLngLat(21.032070, 52.2402));
+ feature2.addBooleanProperty("selected", false);
+ Feature feature3 = Feature.fromGeometry(Point.fromLngLat(21.032070, 52.2403));
+ feature3.addBooleanProperty("selected", false);
+
+ features.add(feature1);
+ features.add(feature2);
+ features.add(feature3);
+
+ FeatureCollection featureCollection = FeatureCollection.fromFeatures(features);
+
+ GeoJsonSource source = new GeoJsonSource("source", featureCollection);
+ mapboxMap.addSource(source);
+
+ Layer layer = new SymbolLayer("layer", "source")
+ .withProperties(PropertyFactory.iconImage(
+ Expression.switchCase(
+ Expression.get("selected"), Expression.literal(""),
+ Expression.literal("cafe-15")
+ )),
+ PropertyFactory.iconSize(2f),
+ PropertyFactory.iconAllowOverlap(true));
+ mapboxMap.addLayer(layer);
+
+ Layer layerSelected = new SymbolLayer("layerSelected", "source")
+ .withProperties(PropertyFactory.iconImage(
+ Expression.switchCase(
+ Expression.get("selected"), Expression.literal("restaurant-15"),
+ Expression.literal("")
+ )),
+ PropertyFactory.iconSize(2f),
+ PropertyFactory.iconAllowOverlap(true));
+ mapboxMap.addLayerAbove(layerSelected, "layer"); //noting, that we are explicitly z-indexing the selected layer
+
+ mapboxMap.addOnMapClickListener(point -> {
+ if (selected) {
+ feature3.addBooleanProperty("selected", false);
+ } else {
+ feature3.addBooleanProperty("selected", true);
+ }
+ source.setGeoJson(featureCollection);
+ selected = !selected;
+ });
+
+ mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
+ new LatLng(52.2401, 21.032070),
+ 15.5
+ ));
+ });
}
@Override