Peristiwa dan gestur penanda

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 atau cuplikan penanda. Anda juga dapat memindahkan penanda yang dapat ditarik menggunakan gestur tekan lama.

Merespons peristiwa penanda

Anda dapat merespons peristiwa penanda dengan menambahkan protokol GMSMapViewDelegate ke tampilan dan mengimplementasikan 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, terapkan protokol GMSMapViewDelegate dan tambahkan kondisi untuk menetapkan 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

Saat Anda mengaktifkan properti draggable, pengguna dapat menarik penanda pada peta dengan gestur tekan lama. Untuk membuat penanda dapat ditarik, tetapkan properti GMSMarker.draggable ke benar (true).

Swift

marker.draggable = true

Objective-C

marker.draggable = YES;