Diferentes marcadores con nombre en Google Android Map

Quiero añadir muchos marcadores diferentes en un mapa de Android. Mi código funciona bien hasta ahora con la misma superposición una y otra vez:

mapOverlays = mapView.getOverlays(); drawable = this.getResources().getDrawable(R.drawable.marker); itemizedOverlay = new MyItemizedOverlay(drawable); OverlayItem overlayItem = new OverlayItem(geoPoint, "foo", "bar"); mapOverlays.add(itemizedOverlay); 

Esto funciona bien hasta ahora. Pero cada marcador es el mismo. Lo que quiero hacer ahora es tener diferentes marcadores en el mapa como los que se ven en Google Maps Webapp (un marcador llamado "A", el siguiente "B", etc.). ¿Cómo puedo conseguir esto? ¿Tengo que añadir un archivo de marcador png extra a mi aplicación? (Marker_a.png, marker_b.png, …) o hay una manera más sencilla de lograr esto? También podría ser que habrá más de 26 resultados para que posiblemente necesite diferentes colores de los marcadores.

Una de las respuestas proporciona la solución con diferentes ItemizedOverlay para cada grupo de marcadores. Puede lograr lo mismo con un solo overlayItem.setMarker(drawable) llamando a overlayItem.setMarker(drawable)

Si va a cargar sus marcadores con recursos, no olvide llamar a:

 drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); 

Antes de llamar a setMarker . De lo contrario, no se mostrarán los marcadores.

Dado que los marcadores son de tipo Drawable , puedes obtenerlos como cualquier otro Drawable , incluyendo crearlos en tiempo de ejecución.

Aquí hay un ejemplo de proyecto que muestra varios PNG diferentes en un solo ItemizedOverlay . Sólo tienes que anular algunos de los métodos de dibujo para manejar los diferentes PNG.

Sí, necesitas otro png, por lo que se vería así:

 mapOverlays = mapView.getOverlays(); // All "A"s drawable = this.getResources().getDrawable(R.drawable.marker_a); itemizedOverlay = new MyItemizedOverlay(drawable); OverlayItem overlayItem = new OverlayItem(geoPoint, "foo", "bar"); mapOverlays.add(itemizedOverlay); // All "B"s drawable = this.getResources().getDrawable(R.drawable.marker_b); itemizedOverlay = new MyItemizedOverlay(drawable); OverlayItem overlayItem = new OverlayItem(geoPoint, "foo", "bar"); mapOverlays.add(itemizedOverlay); 

Yo también estaba atascado en la misma situación y quería numerar los pines insted de A, B, C ..

La buena noticia es que encontré la solución. Sólo he creado un TextView con un Pin de fondo y se insertó un número en él dinámicamente y convertido que en Drawable.

Puede crear diferentes TextView con pin color de fondo que desea.

Aquí está el enlace a mi pregunta que he respondido. 🙂

He utilizado este código:

  OverlayItem crtItem = new OverlayItem( getPoint( Double.parseDouble(latCoordRow),Double.parseDouble(longCoordRow) ), nameRow , addressRow ); Drawable crtMarker = markerIconsArray.get(categoryRow); //my current drawable (from a HashMap) crtItem.setMarker(crtMarker); // set new marker crtMarker.setBounds(0, 0, crtMarker.getIntrinsicWidth(),crtMarker.getIntrinsicHeight()); //setBounds boundCenterBottom(crtMarker); //correct shadow problem 

Si no va a establecer los límites de su dibujable no se mostrará.

  • Emular el botón Atrás con superposición en Android
  • Android: ¿Cómo overlay-a-bitmap / draw-over un mapa de bits?
  • FragmentTransaction.remove no tiene efecto
  • Mapas de Android NullPointerException ItemizedOverlay
  • Dibuja rejilla sobre polígono en Google map V2
  • SetFocus (overlayItem) de ItemizedOverlay no funciona
  • Imagen sobre otra imagen Android
  • Cómo obtener fechas de la base de datos y comprobar si se solapan?
  • Barra de navegación de Android superpuesta a mi vista
  • Google Maps Android API v2 Superposición de rutas
  • Superposición de teclas de teclado de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.