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

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

  • لتتبُّع أحداث محدّد الموقع، أضِف GMSMapViewDelegate إلى view.
  • لجعل العلامة قابلة للسحب، اضبط السمة GMSMarker.draggable.
  • لضبط نص وصفي لعلامة، استخدِم السمة GMSMarker.title.

الردّ على أحداث محدّد الموقع

يمكنك الاستجابة إلى أحداث محدّد الموقع عن طريق إضافة بروتوكول 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 على "صحيح".

Swift

marker.draggable = true

Objective-C

marker.draggable = YES;