عند ضبط خصائص متقدّمة معيّنة للعلامة، يمكنك مراقبة أحداث العلامة، مثل النقرات والإيماءات. في حال النقر على علامة، يمكن للمستخدم الاطّلاع على معلومات إضافية، مثل عنوان العلامة أو مقتطف منها. يمكن أيضًا تحريك العلامات القابلة للسحب باستخدام إيماءة الضغط مع الاستمرار.
- لتتبُّع أحداث العلامات، أضِف
GMSMapViewDelegate
إلىview
. - لجعل العلامة قابلة للسحب، اضبط السمة
GMSMarker.draggable
. - لضبط نص وصفي لمؤشر، استخدِم السمة
GMSMarker.title
.
الردّ على أحداث العلامات
يمكنك الردّ على أحداث العلامات من خلال إضافة
بروتوكول GMSMapViewDelegate
إلى العرض
وتنفيذ طلب الاستدعاء المقابل. يحدِّد هذا المثال title
و
snippet
لمؤشر محدّد.
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; }
التحكّم في مستوى ظهور العلامة حسب مستوى تكبير الخريطة
للتحكّم في مستوى رؤية GMSMarker
، نفِّذ بروتوكول
GMSMapViewDelegate
وأضِف شرطًا لضبط
GMSMarker.map
.
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; }
جعل العلامة متحرّكة
عند تفعيل السمة draggable
، يمكن للمستخدمين سحب العلامات على الخريطة باستخدام
إيماءة الضغط مع الاستمرار. لجعل علامة محدّدة قابلة للسحب، اضبط GMSMarker.draggable
على true.
Swift
marker.draggable = true
Objective-C
marker.draggable = YES;