وقایع و حرکات نشانگر

وقتی ویژگی‌های پیشرفته‌ی نشانگر تنظیم شوند، می‌توانید رویدادهای نشانگر مانند ضربه‌ها و حرکات را زیر نظر بگیرید. اگر روی یک نشانگر ضربه زده شود، می‌توان اطلاعات اضافی مانند عنوان نشانگر یا قطعه کد را مشاهده کرد. همچنین می‌توان نشانگرهای قابل جابجایی را با استفاده از یک حرکت فشار طولانی جابجا کرد.

پاسخ به رویدادهای نشانگر

شما می‌توانید با اضافه کردن پروتکل 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
}

هدف-سی

// 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;
}

کنترل میزان دید نشانگرها با سطح بزرگنمایی نقشه

To control the visibility of GMSMarker , implement the GMSMapViewDelegate protocol and add a condition to set GMSMarker.map .

سویفت

// MARK: GMSMapViewDelegate

func mapView(_ mapView: GMSMapView, didChange position: GMSCameraPosition) {
    marker.map = position.zoom >= 14 ? mapView : nil
}

هدف-سی

// MARK: GMSMapViewDelegate

-   (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position {
  marker.map = position.zoom >= 14 ? mapView : nil;
}

یک نشانگر را قابل کشیدن کنید

When you enable the draggable property users can drag markers on the map with a long press gesture. To make a marker draggable, set the GMSMarker.draggable property to true.

سویفت

marker.draggable = true

هدف-سی

marker.draggable = YES;