Ограничение Количество значков на карте Google зависит от расстояния увеличения - PullRequest
0 голосов
/ 14 ноября 2018

В настоящее время используется этот код

ArrayList<MarkerData> markersArray = new ArrayList<MarkerData>();

for(int i = 0 ; i < markersArray.size() ; i++) {

    createMarker(markersArray.get(i).getLatitude(), markersArray.get(i).getLongitude(), markersArray.get(i).getTitle(), markersArray.get(i).getSnippet(), markersArray.get(i).getIconResID());
}


protected Marker createMarker(double latitude, double longitude, String title, String snippet, int iconResID) {

    return googleMap.addMarker(new MarkerOptions()
            .position(new LatLng(latitude, longitude))
            .anchor(0.5f, 0.5f)
            .title(title)
            .snippet(snippet)
            .icon(BitmapDescriptorFactory.fromResource(iconResID)));
}

И у меня нет проблем с этим, но моя проблема в том, что если у меня около 50 отметок в 1 городе, все значки находятся друг над другом.

Можно ли ограничить количество отображаемых значков при уменьшении масштаба карты? или, может быть, лучше практиковаться

1 Ответ

0 голосов
/ 14 ноября 2018

Вы можете добавить слушателя для проверки увеличения при обновлении и скрыть нужные маркеры

googleMap.setOnCameraChangeListener(new OnCameraChangeListener() {

private float currentZoom = mMap.zoom;

@Override
public void onCameraChange(CameraPosition newPosition) {
    if (newPosition.zoom < currentZoom){
        // remove a particular marker
        yourMarker.remove();
       // or remove all the markers
       googleMap.clear();
    }
}
});
...