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
öğesiniview
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;