Lorsque des propriétés de repère avancées spécifiques sont définies, vous pouvez surveiller des événements de repère tels que des appuis et des gestes. Si l'utilisateur appuie sur un repère, des informations supplémentaires s'affichent, comme son titre ou un extrait. Vous pouvez également déplacer des repères déplaçables en appuyant de manière prolongée.
- Pour suivre les événements de repère, ajoutez le
GMSMapViewDelegate
à votreview
. - Pour rendre un repère déplaçable, définissez la propriété
GMSMarker.draggable
. - Pour définir le texte descriptif d'un repère, utilisez la propriété
GMSMarker.title
.
Répondre aux événements de repère
Vous pouvez répondre aux événements de repère en ajoutant le protocole GMSMapViewDelegate
à votre vue et en implémentant le rappel correspondant. Cet exemple identifie les éléments title
et snippet
pour 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 protocole GMSMapViewDelegate
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;