Quando sono impostate proprietà di indicatori avanzati specifici, puoi monitorare gli eventi degli indicatori, come tocchi e gesti. Se si tocca un indicatore, è possibile visualizzare ulteriori informazioni, come il titolo o lo snippet dell'indicatore. È anche possibile spostare gli indicatori spostabili utilizzando un gesto di pressione prolungata.
- Per monitorare gli eventi degli indicatori, aggiungi
GMSMapViewDelegateal tuoview. - Per rendere un indicatore trascinabile, imposta la proprietà
GMSMarker.draggable. - Per impostare un testo descrittivo per un indicatore, utilizza la proprietà
GMSMarker.title.
Rispondere agli eventi degli indicatori
Puoi rispondere agli eventi indicatori aggiungendo il protocollo GMSMapViewDelegate alla visualizzazione e implementando il callback corrispondente. Questo esempio identifica title e
snippet per un indicatore selezionato.
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; }
Controllare la visibilità degli indicatori in base al livello di zoom della mappa
Per controllare la visibilità di GMSMarker, implementa il protocollo
GMSMapViewDelegate e aggiungi una condizione per impostare
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; }
Rendere un indicatore trascinabile
Quando attivi la proprietà draggable, gli utenti possono trascinare gli indicatori sulla mappa con un gesto di pressione prolungata. Per rendere un indicatore trascinabile, imposta la proprietà GMSMarker.draggable su true.
Swift
marker.draggable = true
Objective-C
marker.draggable = YES;