From f21b3efdf5011359200a5507bdb0344f59fc690e Mon Sep 17 00:00:00 2001 From: Sylvain Hocq Date: Thu, 18 Aug 2016 01:53:26 +0200 Subject: [PATCH 1/2] add method addMarkerViews with only one invalidate --- .../com/mapbox/mapboxsdk/maps/MapboxMap.java | 16 ++++++++++++++++ .../activity/annotation/BulkMarkerActivity.java | 13 +++++++++++-- .../src/main/res/values/strings.xml | 1 + 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index 6a71f93a934..d13c6f4ffc5 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -773,6 +773,22 @@ public MarkerView addMarker(@NonNull BaseMarkerViewOptions markerOptions) { return marker; } + @UiThread + @NonNull + public List addMarkerViews(@NonNull List markerViewOptions) { + List markers = new ArrayList<>(); + for (BaseMarkerViewOptions markerViewOption : markerViewOptions) { + MarkerView marker = prepareViewMarker(markerViewOption); + marker.setMapboxMap(this); + long id = mMapView.addMarker(marker); + marker.setId(id); + mAnnotations.put(id, marker); + markers.add(marker); + } + mMarkerViewManager.invalidateViewMarkersInVisibleRegion(); + return markers; + } + /** *

* Adds multiple markers to this map. diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java index f49407626d1..22da656031f 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java @@ -125,15 +125,24 @@ private void showViewMarkers(int amount) { drawable.setColorFilter(redColor, PorterDuff.Mode.SRC_IN); Icon icon = IconFactory.getInstance(this).fromDrawable(drawable); + List markerOptionsList = new ArrayList<>(); for (int i = 0; i < amount; i++) { randomIndex = random.nextInt(mLocations.size()); LatLng latLng = mLocations.get(randomIndex); - mapboxMap.addMarker(new MarkerViewOptions() + MarkerViewOptions markerOptions = new MarkerViewOptions() .position(latLng) .icon(icon) .title(String.valueOf(i)) - .snippet(formatter.format(latLng.getLatitude()) + ", " + formatter.format(latLng.getLongitude()))); + .snippet(formatter.format(latLng.getLatitude()) + ", " + formatter.format(latLng.getLongitude())); + markerOptionsList.add(markerOptions); } + long t1 = System.currentTimeMillis(); +// for (MarkerViewOptions markerViewOptions : markerOptionsList) { +// mapboxMap.addMarker(markerViewOptions); +// } + mapboxMap.addMarkerViews(markerOptionsList); + long t2 = System.currentTimeMillis(); + Log.d("time", "amount:"+amount+", time:"+(t2-t1)); } private void showGlMarkers(int amount) { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml index 4436e40200b..01a72397925 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml @@ -163,6 +163,7 @@ 10 100 + 500 1000 10000 From 5daa17a35ed60a12898eaf4d4b9cd32f31f412cf Mon Sep 17 00:00:00 2001 From: Tobrun Van Nuland Date: Fri, 19 Aug 2016 12:44:24 +0200 Subject: [PATCH 2/2] [android] #6083 - add circle example --- .../com/mapbox/mapboxsdk/maps/MapboxMap.java | 18 +-- .../src/main/AndroidManifest.xml | 10 +- .../annotation/BulkMarkerActivity.java | 15 +- .../activity/style/CircleLayerActivity.java | 137 ++++++++++++++++++ .../main/res/layout/activity_circlelayer.xml | 36 +++++ .../src/main/res/values/strings.xml | 5 +- 6 files changed, 191 insertions(+), 30 deletions(-) create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CircleLayerActivity.java create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_circlelayer.xml diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index d13c6f4ffc5..e73e7c0e10f 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -772,23 +772,7 @@ public MarkerView addMarker(@NonNull BaseMarkerViewOptions markerOptions) { mMarkerViewManager.invalidateViewMarkersInVisibleRegion(); return marker; } - - @UiThread - @NonNull - public List addMarkerViews(@NonNull List markerViewOptions) { - List markers = new ArrayList<>(); - for (BaseMarkerViewOptions markerViewOption : markerViewOptions) { - MarkerView marker = prepareViewMarker(markerViewOption); - marker.setMapboxMap(this); - long id = mMapView.addMarker(marker); - marker.setId(id); - mAnnotations.put(id, marker); - markers.add(marker); - } - mMarkerViewManager.invalidateViewMarkersInVisibleRegion(); - return markers; - } - + /** *

* Adds multiple markers to this map. diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml index d582719af66..0c289b84e97 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml @@ -294,7 +294,7 @@ + + + + + + + + + + + + diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml index a72b08322fa..b72dd9a2aed 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml @@ -61,7 +61,8 @@ Query feature properties Count features in box Highlight features in box - Android SDK View integration + Add Circle + Android SDK View integration Tracks the location of the user @@ -100,6 +101,7 @@ Use a fixed Marker to select your location Use SupportMapFragments in a ViewPager Adopt the map style on the fly + Use GeoJson source to show a circle Use GeoJson sources and dynamic layers to cluster information Shows how to print a map Test animation of Android SDK View components @@ -165,7 +167,6 @@ 10 100 - 500 1000 10000