İşaretçi etkinlikleri ve hareketleri

Belirli gelişmiş işaretçi özellikleri ayarlandığında, dokunma ve jestler 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. Taşınabilir işaretçileri uzun basma hareketini kullanarak da taşıyabilirsiniz.

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

İşaretçi etkinliklerine yanıt verme

Görünümünüze GMSMapViewDelegate protokolünü ekleyerek ve ilgili geri çağırma işlevini uygulayarak işaretçi etkinliklerine yanıt verebilirsiniz. Bu örnekte, seçili 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 seviyesine göre kontrol etme

GMSMarker öğesinin görünürlüğünü kontrol etmek için GMSMapViewDelegate protokolünü uygulayın ve GMSMarker.map değerini ayarlayacak 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 mülkünü etkinleştirdiğinizde kullanıcılar uzun basma hareketiyle haritadaki işaretçileri sürükleyebilir. İş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;