2012-05-10 28 views
5

Estoy utilizando la clase ItemizedIconOverlay y actualmente estoy mostrando eventos en el mapa junto con la posición del usuario con el mismo icono predeterminado.OSMdroid agregar iconos personalizados a ItemizedOverlay

¿Cómo cambio el conjunto de iconos para cada plantilla?

¿Hay algo similar al ejemplo google.maps:

drawable = getResources().getDrawable(R.drawable.marker); 
    drawable3 = getResources().getDrawable(R.drawable.disruption); 
    drawable2 = getResources().getDrawable(R.drawable.marker_me); 

    itemizedOverlay = new MyItemizedOverlay(drawable, mapView); 
    itemizedOverlay2 = new MyItemizedOverlay(drawable2, mapView); 
    itemizedOverlay3 = new MyItemizedOverlay(drawable3, mapView); 

hice que cada itemizedOverlay tienen su propio marcador ...

¿Cómo hacer esto con Open Street Maps?

mResourceProxy = new DefaultResourceProxyImpl(getApplicationContext()); 
this.mMyLocationOverlay = new ItemizedIconOverlay<OverlayItem>(mItems, new Glistener(), mResourceProxy); 

Gracias por su ayuda y es una pena no mucho apoyo está disponible en línea para este proyecto de código abierto ...

Respuesta

17

Es de suponer que sus mItems es un ArrayList de OverlayItems creado como:

mItems = new ArrayList<OverlayItem>(); 

A esta lista agregará OveralyItems individuales, por lo que cuando crea cada elemento puede hacerlo así, configurando el marcador antes de agregarlo a la lista:

OverlayItem olItem = new OverlayItem("Here", "SampleDescription", point); 
Drawable newMarker = this.getResources().getDrawable(R.drawable.mymarker); 
olItem.setMarker(newMarker); 
mItems.add(olItem); 

donde mymarker es un .png en la carpeta de los drawables.

actualización - al marcador conjunto predeterminado de superposición entera, cambie

this.mMyLocationOverlay = new ItemizedIconOverlay<OverlayItem>(mItems, new Glistener(), mResourceProxy); 

a

this.mMyLocationOverlay = new ItemizedIconOverlay<OverlayItem>(mItems, newMarker, new Glistener(), mResourceProxy); 

donde se newMarker como antes

+0

Gracias funcionó! – bubbly

+0

¿Pero puedo agregar un marcador predeterminado para toda la superposición? Like itemizedOverlay = new MyItemizedOverlay (dibujable, mapView); y luego cada elemento agregado a esa superposición obtiene el marcador específico. – bubbly

+1

Sí, parece que hay otro constructor disponible que también toma un marcador predeterminado. Editaré mi respuesta con una actualización – NickT

Cuestiones relacionadas