Cuando se establecen propiedades específicas de los marcadores avanzados, puedes supervisar los eventos del marcador, como los toques y los gestos. Si se presiona un marcador, se puede ver información adicional, como el título o el fragmento del marcador. También es posible mover marcadores arrastrables con un gesto de mantener presionado.
- Para realizar un seguimiento de los eventos de marcador, agrega
GMSMapViewDelegate
a tuview
. - Si deseas que un marcador sea arrastrable, configura la propiedad
GMSMarker.draggable
. - Si deseas configurar texto descriptivo para un marcador, usa la propiedad
GMSMarker.title
.
Cómo responder a eventos de marcador
Para responder a los eventos de marcador, agrega el protocolo GMSMapViewDelegate
a tu vista y, luego, implementa la devolución de llamada correspondiente. En este ejemplo, se identifican los elementos title
y snippet
de un marcador seleccionado.
Swift
// MARK: GMSMapViewDelegate func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool { if let title = marker.title { if let snippet = marker.snippet { print("marker title: \(title): snippet: \(snippet)") } } return true }
Objective‑C
// MARK: GMSMapViewDelegate - (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker { if (marker.title && marker.snippet) { NSLog(@"marker with title:%@ snippet: %@", marker.title, marker.snippet) } return YES; }
Cómo controlar la visibilidad de un marcador según el nivel de zoom del mapa
Para controlar la visibilidad de GMSMarker
, implementa el protocolo GMSMapViewDelegate
y agrega una condición para establecer GMSMarker.map
.
Swift
// MARK: GMSMapViewDelegate func mapView(_ mapView: GMSMapView, didChange position: GMSCameraPosition) { marker.map = position.zoom >= 14 ? mapView : nil }
Objective‑C
// MARK: GMSMapViewDelegate - (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position { marker.map = position.zoom >= 14 ? mapView : nil; }
Configura un marcador para que sea arrastrable
Cuando habilitas la propiedad draggable
, los usuarios pueden arrastrar marcadores en el mapa con un gesto de mantener presionado. Si deseas configurar un marcador para que sea arrastrable, configura la propiedad GMSMarker.draggable
como verdadera.
Swift
marker.draggable = true
Objective‑C
marker.draggable = YES;