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

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

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

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