İşaretçi etkinlikleri ve hareketleri

Belirli gelişmiş işaretçi özellikleri ayarlandığında işaretçi etkinliklerini izleyebilirsiniz hareketler gibi. Bir işaretçiye dokunulursa işaretçinin başlığı gibi ek bilgiler görülebilir snippet'i kullanabilirsiniz. Kullanıcı, sürüklenebilir işaretçileri uzun basma hareketiyle de taşıyabilir.

  • İşaretçi etkinliklerini izlemek için GMSMapViewDelegate ekleyin. view cihazınıza.
  • Bir işaretçiyi sürüklenebilir hale getirmek için GMSMarker.draggable mülkündeki her mülk.
  • Bir işaretçi için açıklayıcı metin ayarlamak üzere GMSMarker.title mülkündeki her mülk.

İşaretçi etkinliklerine yanıt verme

İşaretçi etkinliklerini yanıtlamak için görünümünüze GMSMapViewDelegate protokolünü ve geri çağırmayı unutmayın. Bu örnekte title ve Seçilen işaretçi için 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;
}

İşaretçi görünürlüğünü harita yakınlaştırma düzeyine göre denetleyin

GMSMarker etiketinin görünürlüğünü kontrol etmek için şunu uygulayın: GMSMapViewDelegate protokolü ve ayarlanacak bir koşul ekleyin 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;
}

İşaretçiyi sürüklenebilir hale getirme

draggable mülkünü etkinleştirdiğinizde kullanıcılar haritadaki işaretçileri uzun basma hareketidir. Bir işaretçiyi sürüklenebilir hale getirmek için GMSMarker.draggable özelliğini ayarlayın özelliğini true olarak ayarlayın.

Swift

marker.draggable = true

Objective-C

marker.draggable = YES;