Swift – comment append des champs personnalisés aux marqueurs dans Google Maps SDK?

J'essaie de build une application avec des maps, et je veux avoir des informations supplémentaires dans les marqueurs. La documentation n'offre que 2 title propriété et un snippet . Ça ressemble à ça

 let position = CLLocationCoordinate2DMake(51.5, -0.127) let london = GMSMarker(position: position) london.title = "London" london.snippet = "Population: 8,174,100" london.map = mapView 

Par exemple, je souhaite append une rating champ à chaque marqueur pour afficher la note moyenne du lieu.

Comment puis je faire ça ?

Le SDK Google Maps inclut un champ userData sur l'object marqueur, voir le lien .

En utilisant votre exemple, voici à quoi cela ressemblerait pour assigner datatables.

 let mCustomData = customData(starRating: 10) // init with a rating of 10 let position = CLLocationCoordinate2DMake(51.5, -0.127) let london = GMSMarker(position: position) london.title = "London" london.snippet = "Population: 8,174,100" london.userData = mCustomData london.map = mapView 

Et la class customData quelque chose comme ça.

 class customData{ var starRating: Int init(starRating rating: Int) { starRating = rating } } 

Pour accéder à vos données user, il suffit de le récupérer dans l'object marqueur.

 let mRating = (london.userData as! customData).starRating