وقتی ویژگیهای نشانگر پیشرفته خاص تنظیم میشوند، میتوانید رویدادهای نشانگر مانند ضربهها و حرکات را کنترل کنید. اگر روی یک نشانگر ضربه بزنید، می توانید اطلاعات اضافی مانند عنوان نشانگر یا قطعه را مشاهده کنید. همچنین می توان نشانگرهای قابل کشیدن را با استفاده از یک حرکت فشار طولانی حرکت داد.
- برای ردیابی رویدادهای نشانگر،
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;