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
'inizeGMSMapViewDelegate
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;