Tema: [ SOLUCIONADO ] Ayuda con Mapas
Ver Mensaje Individual
  #7  
Viejo 13/03/12, 11:18:45
Array

[xs_avatar]
monchyrcg monchyrcg no está en línea
Miembro del foro
 
Fecha de registro: sep 2011
Localización: Cartagena
Mensajes: 384
Modelo de smartphone: LG Optimus Black
Tu operador: Orange
Lo he conseguido!!!!! Buscando encuentras. VIVA LA API DE GOOGLE!!!!!!!!!!!!!!!!

He conseguido poner un marcador que tenga un listener (no es un listener en realidad) y que me habra un dialog TOMA!!! jajajaja

Bueno me explico un poco, para pintar en el mapa me ayudaba de las capas de Overlay fijándome en la ayuda de google (http://code.google.com/intl/es-ES/an...pis/index.html)
me he dado cuenta que existe la clase OverlayItem que es la base de otra clase llamada ItemizedOverlay. Esta última clase le pone foco a cada uno de los items que pinto en el mapa, fijaros como:

Código:
public class MapViewPruebaActivity extends MapActivity { /** Called when the activity is first created. */ private Drawable drawable = this.getResources().getDrawable(R.drawable.marcador_google_maps); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); MapView mapView = (MapView) findViewById(R.id.mapa); mapView.setBuiltInZoomControls(true); List<Overlay> capas = mapView.getOverlays(); PonerMarcas poner = new PonerMarca(drawable, this); GeoPoint point = new GeoPoint(latitud,longitud); OverlayItem item = new OverlayItem(point, "Titulo", "Info del punto"); poner.addOverlay(item); capas.add(poner); }
......... .... }
Fijaros que el código es facilísimo y muy parecido a la opción Overlay solo que aquí creo un objeto OverlayItem. La clase PonerMarcas deriva de ItemizedOverlay y con el método onTap pongo el dialogo.

Código:
public class PonerMarcas extends ItemizedOverlay{ private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>(); Context mContext; public PonerMarcas(Drawable defaultMarker) { super(boundCenterBottom(defaultMarker)); } public PonerMarcas(Drawable defaultMarker, Context context) { super(boundCenterBottom(defaultMarker)); mContext = context; } public void addOverlay(OverlayItem overlay) { mOverlays.add(overlay); populate(); } @Override protected OverlayItem createItem(int i) { return mOverlays.get(i); } @Override public int size() { return mOverlays.size(); } @Override protected boolean onTap(int index) { OverlayItem item = mOverlays.get(index); AlertDialog.Builder dialog = new AlertDialog.Builder(mContext); dialog.setTitle(item.getTitle()); dialog.setMessage(item.getSnippet()); dialog.show(); return true; } }
Bueno creo que con el código esta todo perfectamente explicado no? La verdad es que no soy muy bueno explicandome por eso pongo el código!!

Muchas gracias a todos!!!
Responder Con Cita