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 e73e7c0e1..d13c6f4ff 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,7 +772,23 @@ public class MapboxMap { 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/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 8b1aa42d3..8e2766c07 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 @@ -129,15 +129,14 @@ public class BulkMarkerActivity extends AppCompatActivity implements AdapterView for (int i = 0; i < amount; i++) { randomIndex = random.nextInt(mLocations.size()); LatLng latLng = mLocations.get(randomIndex); - markerOptionsList.add(new MarkerViewOptions() + MarkerViewOptions markerOptions = new MarkerViewOptions() .position(latLng) .icon(icon) .title(String.valueOf(i)) - .snippet(formatter.format(latLng.getLatitude()) + ", " + formatter.format(latLng.getLongitude()))); - } - for (MarkerViewOptions markerViewOptions : markerOptionsList) { - mapboxMap.addMarker(markerViewOptions); + .snippet(formatter.format(latLng.getLatitude()) + ", " + formatter.format(latLng.getLongitude())); + markerOptionsList.add(markerOptions); } + mapboxMap.addMarkerViews(markerOptionsList); } 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 b72dd9a2a..ed58d9ce8 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml @@ -167,6 +167,7 @@ 10 100 + 500 1000 10000