summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorŁukasz Paczos <lukasz.paczos@mapbox.com>2019-11-08 12:06:01 +0100
committerŁukasz Paczos <lukasz.paczos@mapbox.com>2019-11-08 12:06:01 +0100
commitf69eb65fa1d4d558c1796d7b0a78d0e7ae30b222 (patch)
tree104e3b31c63fe8f49a43ed39c87348e1c637e608
parent55e18a6f81f3b8ee61c3eb70b0d1cbe9a861e44f (diff)
downloadqtlocation-mapboxgl-upstream/lp-example-flashing-line.tar.gz
[android] example for flashing lines issueupstream/lp-example-flashing-line
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/DebugModeActivity.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/DebugModeActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/DebugModeActivity.java
index 097ef316fe..2827a20b58 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/DebugModeActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/DebugModeActivity.java
@@ -1,6 +1,7 @@
package com.mapbox.mapboxsdk.testapp.activity.maplayout;
import android.content.Context;
+import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.FloatingActionButton;
@@ -17,17 +18,28 @@ import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
+import com.mapbox.geojson.Feature;
+import com.mapbox.geojson.FeatureCollection;
+import com.mapbox.geojson.LineString;
+import com.mapbox.geojson.Point;
+import com.mapbox.mapboxsdk.geometry.LatLng;
+import com.mapbox.mapboxsdk.geometry.LatLngBounds;
import com.mapbox.mapboxsdk.maps.MapView;
import com.mapbox.mapboxsdk.maps.MapboxMap;
import com.mapbox.mapboxsdk.maps.MapboxMapOptions;
import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
import com.mapbox.mapboxsdk.maps.Style;
import com.mapbox.mapboxsdk.style.layers.Layer;
+import com.mapbox.mapboxsdk.style.layers.LineLayer;
import com.mapbox.mapboxsdk.style.layers.Property;
+import com.mapbox.mapboxsdk.style.layers.PropertyFactory;
+import com.mapbox.mapboxsdk.style.sources.GeoJsonSource;
import com.mapbox.mapboxsdk.testapp.R;
+import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
+import java.util.Random;
import timber.log.Timber;
@@ -57,6 +69,39 @@ public class DebugModeActivity extends AppCompatActivity implements OnMapReadyCa
};
private TextView fpsView;
+ private static final FeatureCollection featureCollection;
+
+ static {
+ LatLngBounds bounds = LatLngBounds.from(60, 100, -60, -100);
+ List<Point> points = new ArrayList<>();
+ for (int i = 0; i < 1_000; i++) {
+ LatLng latLng = getLatLngInBounds(bounds);
+ points.add(Point.fromLngLat(latLng.getLongitude(), latLng.getLatitude()));
+ }
+ featureCollection = FeatureCollection.fromFeature(Feature.fromGeometry(LineString.fromLngLats(points)));
+ }
+
+ private void setupLayer() {
+ GeoJsonSource source = new GeoJsonSource("source", featureCollection);
+ LineLayer lineLayer = new LineLayer("layer", "source")
+ .withProperties(
+ PropertyFactory.lineColor(Color.RED),
+ PropertyFactory.lineWidth(10f)
+ );
+
+ mapboxMap.getStyle().addSource(source);
+ mapboxMap.getStyle().addLayer(lineLayer);
+ }
+
+ private static LatLng getLatLngInBounds(LatLngBounds bounds) {
+ Random generator = new Random();
+ double randomLat = bounds.getLatSouth() + generator.nextDouble()
+ * (bounds.getLatNorth() - bounds.getLatSouth());
+ double randomLon = bounds.getLonWest() + generator.nextDouble()
+ * (bounds.getLonEast() - bounds.getLonWest());
+ return new LatLng(randomLat, randomLon);
+ }
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -90,6 +135,7 @@ public class DebugModeActivity extends AppCompatActivity implements OnMapReadyCa
mapView.addOnDidFinishLoadingStyleListener(() -> {
if (mapboxMap != null) {
setupNavigationView(mapboxMap.getStyle().getLayers());
+ setupLayer();
}
});