İşaretçi etkinlikleri ve hareketleri

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

  • İşaretçi etkinliklerini izlemek için GMSMapViewDelegate öğesini view cihazınıza ekleyin.
  • Bir işaretçiyi sürüklenebilir yapmak için GMSMarker.draggable özelliğini ayarlayın.
  • İş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;
}

Harita yakınlaştırma düzeyine göre işaretçi görünürlüğünü kontrol etme

GMSMarker görünürlüğünü kontrol etmek için GMSMapViewDelegate protokolünü uygulayın ve GMSMarker.map değerine ayarlanacak 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 yap

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

Swift

marker.draggable = true

Objective-C

marker.draggable = YES;