أحداث وإيماءات العلامات

عند ضبط سمات متقدّمة محدّدة للعلامة، يمكنك تتبُّع أحداث العلامة، مثل النقرات والإيماءات. في حال النقر على أحد العلامات، يمكن للمستخدم الاطّلاع على معلومات إضافية، مثل عنوان العلامة أو مقتطف عنها. يمكن أيضًا نقل العلامات القابلة للسحب باستخدام إيماءة الضغط مع الاستمرار.

الردّ على أحداث العلامات

يمكنك الردّ على أحداث العلامات من خلال إضافة بروتوكول 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 على true.

Swift

marker.draggable = true

Objective-C

marker.draggable = YES;