[android] add method addMarkerViews with only one invalidate

* add method addMarkerViews with only one invalidate

* clean sample BulkMarkerActivity
This commit is contained in:
Sylvain HOCQ
2016-08-29 17:37:09 +02:00
committed by Tobrun
parent e126dc3a5a
commit eca745d63a
3 changed files with 22 additions and 6 deletions

View File

@@ -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.

View File

@@ -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) {

View File

@@ -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>