Google google maps agrega al marcador propia etiqueta

Tengo tal código:

protected void onPostExecute(final ArrayList<HashMap<String, String>> adapter) { for (final HashMap<String, String> a : adapter) { LatLng pos = new LatLng(Double.valueOf(a.get(TAG_latitude)), Double.valueOf(a.get(TAG_longitude))); Log.e("pppppos", String.valueOf(pos.latitude)); Marker m = map.addMarker(new MarkerOptions().position(pos) .title(a.get(TAG_NAME)) .snippet("Kiel is cool")); map.setOnInfoWindowClickListener( new OnInfoWindowClickListener(){ public void onInfoWindowClick(Marker marker){ Intent nextScreen = new Intent(SearchExchangerActivity.this, BankExchangersListActivity.class); nextScreen.putExtra("exchanger_id", id); startActivityForResult(nextScreen, 0); } }); } 

Pero necesito fijar invisible al campo del usuario por ejemplo Tag_id para cada marcador, y utilizar este id entonces al enviar la información adicional a otra actividad, algo como:

 protected void onPostExecute(final ArrayList<HashMap<String, String>> adapter) { for (final HashMap<String, String> a : adapter) { LatLng pos = new LatLng(Double.valueOf(a.get(TAG_latitude)), Double.valueOf(a.get(TAG_longitude))); Marker m = map.addMarker(new MarkerOptions().position(pos) .title(a.get(TAG_NAME)) .snippet("Kiel is cool") .Tag_id(TAG_ID)); map.setOnInfoWindowClickListener( new OnInfoWindowClickListener(){ public void onInfoWindowClick(Marker marker){ Intent nextScreen = new Intent(SearchExchangerActivity.this, BankExchangersListActivity.class); nextScreen.putExtra("exchanger_id", marker.get(TAG_ID)); startActivityForResult(nextScreen, 0); } }); } 

¿Es real hacerlo? ¿Apenas cómo puedo en mi oyente conseguir qué marcador estoy chascando?

También podría hacerse a través del campo de título … Pero estoy recibiendo error al escribir marker.getTitle()

Actualizar

 for (final HashMap<String, String> a : adapter) { LatLng pos = new LatLng(Double.valueOf(a.get(TAG_latitude)), Double.valueOf(a.get(TAG_longitude))); Log.e("pppppos", String.valueOf(pos.latitude)); HashMap<Marker, String> m = new HashMap<Marker, String>(); m.put( map.addMarker(new MarkerOptions().position(pos) .title(a.get(TAG_NAME)) .snippet("Kiel is cool")), "1"); } map.setOnInfoWindowClickListener( new OnInfoWindowClickListener(){ public void onInfoWindowClick(HashMap<Marker, String> marker){ Intent nextScreen = new Intent(SearchExchangerActivity.this, BankExchangersListActivity.class); nextScreen.putExtra("exchanger_id", "1"); startActivityForResult(nextScreen, 0); } }); 

2 Solutions collect form web for “Google google maps agrega al marcador propia etiqueta”

  1. Puede utilizar Map<Marker, String> y guardar sus datos allí o
  2. Utilice Extensiones de mapas de Android que añada funciones getData y setData a la clase Marker .

Por cierto. No debe establecer InfoWindowAdapter en un bucle. No tiene sentido. Sólo la última sobrevive.

En la actualidad está formalmente disponible, el setTag y getTag se han agregado a la API de marcadores.

Lo siguiente fue tomado de la sección " datos asociados con un marcador " del documento oficial:

 /** * A demo class that stores and retrieves data objects with each marker. */ public class MarkerDemoActivity extends FragmentActivity implements OnMarkerClickListener, OnMapReadyCallback { private static final LatLng PERTH = new LatLng(-31.952854, 115.857342); private static final LatLng SYDNEY = new LatLng(-33.87365, 151.20689); private static final LatLng BRISBANE = new LatLng(-27.47093, 153.0235); private Marker mPerth; private Marker mSydney; private Marker mBrisbane; private GoogleMap mMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.marker_demo); SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); mapFragment.getMapAsync(this); } /** Called when the map is ready. */ @Override public void onMapReady(GoogleMap map) { mMap = map; // Add some markers to the map, and add a data object to each marker. mPerth = mMap.addMarker(new MarkerOptions() .position(PERTH) .title("Perth"); mPerth.setTag(0); mSydney = mMap.addMarker(new MarkerOptions() .position(SYDNEY) .title("Sydney"); mSydney.setTag(0); mBrisbane = mMap.addMarker(new MarkerOptions() .position(BRISBANE) .title("Brisbane"); mBrisbane.setTag(0); // Set a listener for marker click. mMap.setOnMarkerClickListener(this); } /** Called when the user clicks a marker. */ @Override public boolean onMarkerClick(final Marker marker) { // Retrieve the data from the marker. Integer clickCount = (Integer) marker.getTag(); // Check if a click count was set, then display the click count. if (clickCount != null) { clickCount = clickCount + 1; marker.setTag(clickCount); Toast.makeText(this, marker.getTitle() + " has been clicked " + clickCount + " times.", Toast.LENGTH_SHORT).show(); } // Return false to indicate that we have not consumed the event and that we wish // for the default behavior to occur (which is for the camera to move such that the // marker is centered and for the marker's info window to open, if it has one). return false; } } 
  • ¿Cómo obtener detalles del hospital con la especialización usando google map para android?
  • Adición de un botón a una vista personalizada de InfoWindowAdapter que puede registrar clics
  • Android 8 o superior: comprobar los servicios de Google Play
  • Google Maps open-source-attribution es increíblemente grande y bloquea el hilo principal
  • Actividad muestra pantalla en blanco en lugar de mapa
  • MapActivity no se puede resolver con un tipo, ni siquiera con el objetivo de API de Google
  • Generación del mapa de Google Clave de la API de lanzamiento
  • ¿Cómo obtener el actual nivel de zoom de GoogleMap?
  • ¿Cómo pueden las aplicaciones usar Google Offline Maps de Android 4+?
  • ¿Cuál es la mejor manera de soportar apis de Google Maps (v1 y v2)?
  • Cómo implementar mapa arrastrable como uber android, Actualizar con cambiar ubicación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.