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