Lorsque des propriétés de repère avancé spécifiques sont définies, vous pouvez surveiller les événements de repère tels que les appuis et les gestes. Si vous appuyez sur un repère, vous pouvez voir des informations supplémentaires, telles que le titre ou l'extrait du repère. Vous pouvez également déplacer des repères déplaçables à l'aide d'un geste d'appui prolongé.
- Pour suivre les événements de repère, ajoutez
GMSMapViewDelegateà votreview. - Pour rendre un repère déplaçable, définissez la
GMSMarker.draggablepropriété. - Pour définir le texte descriptif d'un repère, utilisez la
GMSMarker.titlepropriété.
Répondre aux événements de repère
Vous pouvez répondre aux événements de repère en ajoutant
le GMSMapViewDelegate protocole à votre vue et
en implémentant le rappel correspondant. Cet exemple identifie le title et le snippet d'un repère sélectionné.
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; }
Contrôler la visibilité du repère par niveau de zoom sur la carte
Pour contrôler la visibilité de GMSMarker, implémentez le
GMSMapViewDelegate protocole et ajoutez une condition pour définir
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; }
Rendre un repère déplaçable
Lorsque vous activez la propriété draggable, les utilisateurs peuvent faire glisser des repères sur la carte en appuyant de manière prolongée. Pour rendre un repère déplaçable, définissez la propriété GMSMarker.draggable sur "true".
Swift
marker.draggable = true
Objective-C
marker.draggable = YES;