studio google example android google-maps-markers google-maps-android-api-2

example - Android Google Maps v2-Añadir objeto al marcador



google maps android example (3)

¿Cómo podemos agregar un objeto a un marcador en la nueva API de Android de Google Maps v2 ? Entonces, si hacemos clic en la InfoWindow , ¿podemos hacer algo con el objeto?

public void addSpotOnMap(Spot spot) { getMap().addMarker(new MarkerOptions() .position(new LatLng(spot.getParseGeoPoint().getLatitude(), spot.getParseGeoPoint().getLongitude())) .title(spot.getName()) .snippet(spot.getCategory()) .draggable(false)); }

Esto establece la ubicación, el título y el fragmento del objeto. Pero quiero poder ir a otra actividad sobre este objeto puntual específico si hago clic en la InfoWindow


A partir de Play Services v9.4.0, ¡ahora puedes establecer cualquier objeto directamente sobre un marcador!

Para guardar los datos:

Marker marker = getMap().addMarker(new MarkerOptions() .position(lat, lng) .title(spot.getName()); CustomObject myData = new CustomObject(); marker.setTag(myData);

Entonces para recuperar sus datos:

CustomObject myRestoredData = (CustomObject)marker.getTag(myData);

Para más información sobre los datos de marcadores, aquí están los documentos .


No estoy seguro de si esta es la respuesta correcta, pero eche un vistazo a este blogpost que hice sobre este problema:

Dado que Marker es final , esto se puede resolver fácilmente al vincular los datos con Marker en un Map , por ejemplo, HashMap<Marker, YourDataClass> o HashMap<Marker, String>

Aquí hay un tutorial que explica todo: http://bon-app-etit.blogspot.be/2012/12/add-informationobject-to-marker-in.html


Pruebe android-maps-extensions su biblioteca, donde puede agregar objetos para marcarlos con el método setdata y recuperar el método de llamada de datos getData

Lee mas

Object getData() and setData(Object) on Marker, Circle, GroundOverlay, Polygon, Polyline or TileOverlay

de Gradle puedes usar cualquier versión de Google Play Services

dependencies { compile ''com.androidmapsextensions:android-maps-extensions:2.2.0'' compile ''com.google.android.gms:play-services-maps:8.1.0'' }