İşaretçi etkinlikleri ve hareketleri

Belirli gelişmiş işaretçi özellikleri ayarlandığında, dokunma ve hareketler gibi işaretçi etkinliklerini izleyebilirsiniz. Bir işaretçiye dokunulduğunda, işaretçi başlığı veya snippet gibi ek bilgiler görülebilir. Kullanıcı, sürüklenebilir işaretçileri uzun basma hareketiyle de taşıyabilir.

  • İşaretçi etkinliklerini izlemek için GMSMapViewDelegate özelliğini view cihazınıza ekleyin.
  • İşaretçiyi sürüklenebilir hale getirmek için GMSMarker.draggable özelliğini ayarlayın.
  • Bir işaretçi için açıklayıcı metin ayarlamak isterseniz GMSMarker.title özelliğini kullanın.

İşaretçi etkinliklerine yanıt verme

Görünümünüze GMSMapViewDelegate protokolünü ekleyerek ve ilgili geri çağırmayı uygulayarak işaretçi etkinliklerine yanıt verebilirsiniz. Bu örnekte, seçilen bir işaretçi için title ve snippet tanımlanmaktadır.

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;
}

İşaretçi görünürlüğünü harita yakınlaştırma düzeyine göre denetleyin

GMSMarker görünürlüğünü kontrol etmek için GMSMapViewDelegate protokolünü uygulayın ve GMSMarker.map ayarını yapmak üzere bir koşul ekleyin.

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;
}

İşaretçiyi sürüklenebilir hale getirme

draggable özelliğini etkinleştirdiğinizde kullanıcılar, uzun basma hareketiyle haritada işaretçileri sürükleyebilir. Bir işaretçiyi sürüklenebilir hale getirmek için GMSMarker.draggable özelliğini "doğru" olarak ayarlayın.

Swift

marker.draggable = true

Objective-C

marker.draggable = YES;