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

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

  • لتتبُّع أحداث محدّد الموقع، أضِف 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;