Quando vengono impostate proprietà specifiche dei marker avanzati, puoi monitorare gli eventi dei marker, come i tocchi e i gesti. Se viene toccato un indicatore, è possibile visualizzare informazioni aggiuntive, come il titolo o lo snippet dell'indicatore. È anche possibile spostare gli indicatori trascinabili utilizzando un gesto di pressione prolungata.
- Per monitorare gli eventi dei marker, aggiungi
GMSMapViewDelegateal tuoview. - Per rendere trascinabile un indicatore, imposta la proprietà
GMSMarker.draggable. - Per impostare un testo descrittivo per un indicatore, utilizza la proprietà
GMSMarker.title.
Rispondi agli eventi dei marker
Puoi rispondere agli eventi relativi ai segnaposto aggiungendo il protocollo GMSMapViewDelegate alla tua 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; }
Controlla 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; }
Rendi trascinabile un indicatore
Quando attivi la proprietà draggable, gli utenti possono trascinare gli indicatori sulla mappa con un gesto di pressione prolungata. Per rendere trascinabile un indicatore, imposta la proprietà GMSMarker.draggable su true.
Swift
marker.draggable = true
Objective-C
marker.draggable = YES;