summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSylvain HOCQ <chtiboss+github@gmail.com>2016-08-29 17:37:09 +0200
committerTobrun <tobrun.van.nuland@gmail.com>2016-08-29 17:37:09 +0200
commiteca745d63a1d86d9103ca03b59acb7972bcbfd0d (patch)
treeaa55a46cd4aded16830e285e94c9c445b906498d
parente126dc3a5a3857b24246432153b0554d630b6234 (diff)
downloadqtlocation-mapboxgl-eca745d63a1d86d9103ca03b59acb7972bcbfd0d.tar.gz
[android] add method addMarkerViews with only one invalidate
* add method addMarkerViews with only one invalidate * clean sample BulkMarkerActivity
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java18
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java9
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml1
3 files changed, 22 insertions, 6 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 e73e7c0e10..d13c6f4ffc 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<MarkerView> addMarkerViews(@NonNull List<? extends BaseMarkerViewOptions> markerViewOptions) {
+ List<MarkerView> 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;
+ }
+
/**
* <p>
* 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 8b1aa42d34..8e2766c075 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 b72dd9a2ae..ed58d9ce8c 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 @@
<string-array name="bulk_marker_list">
<item>10</item>
<item>100</item>
+ <item>500</item>
<item>1000</item>
<item>10000</item>
</string-array>