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ğiniview
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;