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. Sürükleyebileceğiniz işaretçileri uzun basma hareketiyle de taşıyabilirsiniz.
- İşaretçi etkinliklerini izlemek için
GMSMapViewDelegateöğesiniviewöğenize 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 üzere
GMSMarker.titleözelliğini kullanın.
İşaretçi etkinliklerine yanıt verme
Görünümünüze işaretleyici etkinlikleri ekleyerek GMSMapViewDelegate protokolünü ekleyip ilgili geri aramayı uygulayarak 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 düzeyine göre kontrol etme
GMSMarker görünürlüğünü kontrol etmek için GMSMapViewDelegate protokolünü uygulayın ve GMSMarker.map değerini ayarlamak için 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 haritadaki işaretçileri sürükleyebilir. İşaretçinin sürüklenebilir olması için GMSMarker.draggable özelliğini doğru olarak ayarlayın.
Swift
marker.draggable = true
Objective-C
marker.draggable = YES;