Cuando se establecen propiedades específicas de marcadores avanzados, puedes supervisar eventos de marcadores como toques y gestos. Si se presiona un marcador, se puede ver información adicional, como un título o un fragmento del marcador. También se pueden mover los marcadores arrastrables con un gesto de presión prolongada.
- Para hacer un seguimiento de los eventos de marcadores, agrega el
GMSMapViewDelegatea tuview. - Para configurar un marcador para que sea arrastrable, establece la
GMSMarker.draggablepropiedad. - Si deseas establecer texto descriptivo para un marcador, usa la
GMSMarker.titlepropiedad.
Responder a eventos de marcadores
Para responder a eventos de marcadores, agrega
el protocolo GMSMapViewDelegate a tu vista y
luego, implementa la devolución de llamada correspondiente. En este ejemplo, se identifican el title y el 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
GMSMapViewDelegate protocolo 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 presión prolongada. Para configurar un marcador para que sea arrastrable, establece la propiedad GMSMarker.draggable en verdadero.
Swift
marker.draggable = true
Objective-C
marker.draggable = YES;