عند تعيين خصائص علامة متقدمة، يمكنك مراقبة أحداث العلامات مثل النقرات والإيماءات. إذا تم النقر على علامة ما، يمكن للمرء أن يرى معلومات إضافية مثل عنوان العلامة أو المقتطف. يمكن للمرء أيضًا نقل محدّدات المواقع القابلة للسحب باستخدام إيماءة الضغط المطوّل.
- لتتبُّع أحداث محدّد الموقع، أضِف
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;