Saat properti penanda lanjutan tertentu ditetapkan, Anda dapat memantau peristiwa penanda seperti ketukan dan gestur. Jika penanda diketuk, penanda dapat melihat informasi tambahan seperti judul penanda atau cuplikan. Anda juga dapat memindahkan penanda yang dapat ditarik menggunakan gestur tekan lama.
- Untuk melacak peristiwa penanda, tambahkan
GMSMapViewDelegate
keview
Anda. - Untuk membuat penanda dapat ditarik, tetapkan atribut
Properti
GMSMarker.draggable
. - Untuk menetapkan teks deskriptif bagi penanda, gunakan metode
Properti
GMSMarker.title
.
Merespons peristiwa penanda
Anda dapat merespons peristiwa penanda dengan menambahkan
protokol GMSMapViewDelegate
ke tampilan Anda dan
menerapkan callback yang sesuai. Contoh ini mengidentifikasi title
dan
snippet
untuk penanda yang dipilih.
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; }
Mengontrol visibilitas penanda menurut tingkat zoom peta
Untuk mengontrol visibilitas GMSMarker
, implementasikan
Protokol GMSMapViewDelegate
dan tambahkan kondisi untuk ditetapkan
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; }
Membuat penanda dapat ditarik
Jika Anda mengaktifkan properti draggable
, pengguna dapat menarik penanda pada peta dengan
gestur tekan lama. Untuk membuat penanda dapat ditarik, tetapkan GMSMarker.draggable
properti ke true.
Swift
marker.draggable = true
Objective-C
marker.draggable = YES;