3

Я реализовал код Google Maps ClusteringGoogle отображает пользовательский значок маркера с кластерной (Android)

Это код в моей деятельности

private void setUpClusterer() { 
    mClusterManager = new ClusterManager<StoreItem>(this, mMap); 
    mMap.setOnCameraChangeListener(mClusterManager); 
    mMap.setOnMarkerClickListener(mClusterManager); 
} 

public void addItems(List<Store> stores) { 
    for (Store store : stores) { 
     mClusterManager.addItem(new StoreItem(store.getImage(), store.getLocation().getLatitude(), store.getLocation().getLongitude())); 
    } 
} 

private void removeAllItems() { 
    mClusterManager.clearItems(); 
} 

Это StoreItem Класс

public class StoreItem implements ClusterItem { 

    private String url; 
    private final LatLng mPosition; 

    public StoreItem(String url, double lat, double lng) { 
     this.url = url; 
     mPosition = new LatLng(lat, lng); 
    } 

    @Override 
    public LatLng getPosition() { 
     return mPosition; 
    } 

    public String getUrl() { 
     return url; 
    } 

    public void setUrl(String url) { 
     this.url = url; 
    } 
} 

Теперь я хотел бы изменить значки маркеров с помощью параметра url в классе StoreItem.

Как это сделать?

ответ

3

Рассмотрите возможность переустановки onBeforeClusterRendered. Что-то вроде будет работать:

BitmapDescriptor descriptor = BitmapDescriptorFactory.fromBitmap(here_goes_your_bitmap); 
markerOptions.icon(descriptor); 

Имейте в виду, что код предназначен только для образца. Вы должны добавить текст в растровое изображение вручную и добавить механизм кэширования для реального использования. Вы можете увидеть исходный код для DefaultClusterRenderer.

+0

Спасибо, Александр! Отлично работает! –

Смежные вопросы