From 8bdde079fd4f27e234f2289ec29a53a21a98c197 Mon Sep 17 00:00:00 2001 From: Mikhail Pozdnyakov Date: Tue, 30 Apr 2019 17:57:24 +0300 Subject: Reproduce blinking of fill layer --- .../activity/camera/MaxMinZoomActivity.java | 78 ++++++++++++++++------ 1 file changed, 58 insertions(+), 20 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/MaxMinZoomActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/MaxMinZoomActivity.java index f3bfe768be..cea273ef04 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/MaxMinZoomActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/MaxMinZoomActivity.java @@ -4,6 +4,14 @@ import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v7.app.AppCompatActivity; +import java.util.HashMap; +import java.util.Map; +import java.util.Random; + +import com.mapbox.mapboxsdk.style.layers.FillLayer; +import com.mapbox.mapboxsdk.style.sources.TileSet; +import com.mapbox.mapboxsdk.style.sources.VectorSource; + import com.mapbox.mapboxsdk.maps.Style; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.maps.MapView; @@ -11,6 +19,11 @@ import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.mapboxsdk.testapp.R; +import static com.mapbox.mapboxsdk.style.expressions.Expression.rgb; + +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillColor; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillOpacity; + import timber.log.Timber; /** @@ -19,17 +32,6 @@ import timber.log.Timber; public class MaxMinZoomActivity extends AppCompatActivity implements OnMapReadyCallback { private MapView mapView; - private MapboxMap mapboxMap; - - private MapboxMap.OnMapClickListener clickListener = new MapboxMap.OnMapClickListener() { - @Override - public boolean onMapClick(@NonNull LatLng point) { - if (mapboxMap != null) { - mapboxMap.setStyle(new Style.Builder().fromUrl(Style.OUTDOORS)); - } - return true; - } - }; @Override protected void onCreate(Bundle savedInstanceState) { @@ -44,12 +46,51 @@ public class MaxMinZoomActivity extends AppCompatActivity implements OnMapReadyC } @Override - public void onMapReady(@NonNull final MapboxMap map) { - mapboxMap = map; - mapboxMap.setStyle(Style.MAPBOX_STREETS); - mapboxMap.setMinZoomPreference(3); - mapboxMap.setMaxZoomPreference(5); - mapboxMap.addOnMapClickListener(clickListener); + public void onMapReady(@NonNull final MapboxMap mapboxMap) { + mapboxMap.setDebugActive(true); + Style.Builder builder = new Style.Builder() + .fromUrl("https://cdn.airmap.com/static/map-styles/stage/0.10.0-beta1/standard.json"); + mapboxMap.setStyle(builder, new Style.OnStyleLoaded() { + @Override + public void onStyleLoaded(@NonNull Style style) { + Map sourceMap = new HashMap<>(); + sourceMap.put("usa_ama", "ama_field"); + sourceMap.put("usa_fish_wildlife_refuge", "park"); + sourceMap.put("usa_national_marine_sanctuary", "park"); + sourceMap.put("usa_national_park", "park"); + sourceMap.put("usa_sec_91", "emergency,fire,special_use_airspace,tfr,wildfire"); + sourceMap.put("usa_sec_336", "airport,controlled_airspace"); + sourceMap.put("usa_wilderness_area", "park"); + sourceMap.put("usa_airmap_rules", "airport,hospital,power_plant,prison,school"); + + for (String source : sourceMap.keySet()) { + String layers = sourceMap.get(source); + + String urlTemplates = "https://stage.api.airmap.com/tiledata/v1/" + source + "/" + layers + "/{z}/{x}/{y}"; + TileSet tileSet = new TileSet("2.2.0", urlTemplates); + tileSet.setMaxZoom(12f); + tileSet.setMinZoom(8f); + VectorSource tileSource = new VectorSource(source, tileSet); + style.addSource(tileSource); + + String[] layersArray = layers.split(","); + for (String layer : layersArray) { + FillLayer fillLayer = new FillLayer("airmap|" + source + "|" + layer, source) + .withProperties( + fillOpacity(0.2f), + fillColor(rgb(new Random().nextInt(255), new Random().nextInt(255), new Random().nextInt(255))) + ); + fillLayer.setSourceLayer(source + "_" + layer); + style.addLayer(fillLayer); + } + } + } + }); +// mapboxMap.setStyle(Style.MAPBOX_STREETS); +// mapboxMap.setMinZoomPreference(3); +// mapboxMap.setMaxZoomPreference(5); +// mapboxMap.addOnMapClickListener(clickListener); + } @Override @@ -85,9 +126,6 @@ public class MaxMinZoomActivity extends AppCompatActivity implements OnMapReadyC @Override protected void onDestroy() { super.onDestroy(); - if (mapboxMap != null) { - mapboxMap.removeOnMapClickListener(clickListener); - } mapView.onDestroy(); } -- cgit v1.2.1