Uso de ItemizedOverlay y OverlayItem en Android Beta 0.9

¿Alguien ha logrado utilizar ItemizedOverlays en Android Beta 0.9? No puedo conseguir que funcione, pero no estoy seguro si he hecho algo mal o si esta funcionalidad aún no está disponible.

He estado intentando utilizar las clases OverlayItem y OverlayItem . Su propósito es simular marcadores de mapa (como se ve en Google Maps Mashups), pero he tenido problemas para que aparezcan en el mapa.

Puedo añadir mis propias superposiciones personalizadas usando una técnica similar, es sólo el ItemizedOverlays que no funcionan.

Una vez que he implementado mi propio ItemizedOverlay (y sobreescribido createItem), la creación de una nueva instancia de mi clase parece funcionar (puedo extraer OverlayItems de ella), pero añadirla a la lista de superposición de un mapa no hace que aparezca como debería.

Este es el código que utilizo para añadir la clase ItemizedOverlay como una superposición a mi MapView .

 // Add the ItemizedOverlay to the Map private void addItemizedOverlay() { Resources r = getResources(); MapView mapView = (MapView)findViewById(R.id.mymapview); List<Overlay> overlays = mapView.getOverlays(); MyItemizedOverlay markers = new MyItemizedOverlay(r.getDrawable(R.drawable.icon)); overlays.add(markers); OverlayItem oi = markers.getItem(0); markers.setFocus(oi); mapView.postInvalidate(); } 

Donde MyItemizedOverlay se define como:

 public class MyItemizedOverlay extends ItemizedOverlay<OverlayItem> { public MyItemizedOverlay(Drawable defaultMarker) { super(defaultMarker); populate(); } @Override protected OverlayItem createItem(int index) { Double lat = (index+37.422006)*1E6; Double lng = -122.084095*1E6; GeoPoint point = new GeoPoint(lat.intValue(), lng.intValue()); OverlayItem oi = new OverlayItem(point, "Marker", "Marker Text"); return oi; } @Override public int size() { return 5; } } 

En aras de la integridad voy a repetir la discusión sobre el post de Reto en los Grupos de Android aquí.

Parece que si estableces los límites en tu drawable hace el truco:

 Drawable defaultMarker = r.getDrawable(R.drawable.icon); // You HAVE to specify the bounds! It seems like the markers are drawn // through Drawable.draw(Canvas) and therefore must have its bounds set // before drawing. defaultMarker.setBounds(0, 0, defaultMarker.getIntrinsicWidth(), defaultMarker.getIntrinsicHeight()); MyItemizedOverlay markers = new MyItemizedOverlay(defaultMarker); overlays.add(markers); 

Entre, lo anterior es desvergonzadamente arrancado de la demo en MarcelP.info . También ver aquí para un buen howto.

  • Alternativa de Android a MetroGridHelper
  • Barra de herramientas Android superpuesta TabLayout en CollapsingToolbarLayout
  • Cómo dibujar polígono mano libre en Google mapa V2 en Android?
  • Agregar Overlay a un MapView en osmdroid
  • Custom OverlayItem sin dibujar
  • Disposición de Android: coloca una vista entre dos vistas
  • ¿Cómo puedo dibujar una flecha que muestre la dirección de manejo en MapView?
  • No entiende el método drawAt () para com.google.android.maps.Overlay
  • Dibujar una superposición similar a MapsApp
  • Mostrar un bus móvil en google maps api v2 android
  • Dibujo es constantemente llamado en mi superposición de mapa de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.