وقتی ویژگیهای نشانگر پیشرفته خاص تنظیم میشوند، میتوانید رویدادهای نشانگر مانند ضربهها و حرکات را کنترل کنید. اگر روی یک نشانگر ضربه بزنید، می توانید اطلاعات اضافی مانند عنوان نشانگر یا قطعه را مشاهده کنید. همچنین می توان نشانگرهای قابل کشیدن را با استفاده از یک حرکت فشار طولانی حرکت داد.
- برای ردیابی رویدادهای نشانگر،
GMSMapViewDelegateبهviewخود اضافه کنید. - برای اینکه یک نشانگر قابل کشیدن باشد، ویژگی
GMSMarker.draggableرا تنظیم کنید. - برای تنظیم متن توصیفی برای یک نشانگر، از ویژگی
GMSMarker.titleاستفاده کنید.
به رویدادهای نشانگر پاسخ دهید
میتوانید با افزودن پروتکل GMSMapViewDelegate به نمای خود و اجرای فراخوان مربوطه به رویدادهای نشانگر پاسخ دهید. این مثال title و snippet برای یک نشانگر انتخاب شده مشخص می کند.
سویفت
// 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 }
هدف-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 اضافه کنید.
سویفت
// MARK: GMSMapViewDelegate func mapView(_ mapView: GMSMapView, didChange position: GMSCameraPosition) { marker.map = position.zoom >= 14 ? mapView : nil }
هدف-C
// MARK: GMSMapViewDelegate - (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position { marker.map = position.zoom >= 14 ? mapView : nil; }
یک نشانگر قابل کشیدن ایجاد کنید
وقتی ویژگی draggable فعال می کنید، کاربران می توانند نشانگرها را روی نقشه با یک حرکت فشار طولانی بکشند. برای اینکه یک نشانگر قابل کشیدن باشد، ویژگی GMSMarker.draggable را روی true تنظیم کنید.
سویفت
marker.draggable = true
هدف-C
marker.draggable = YES;