7
votes

Comment obtenir GMSAddress de Placeid ou GMSPLACE

J'utilise une Autocomplete de Google Places API pour iOS, et elle renvoie placeid. Comment puis-je obtenir GMSADDRESS du hasard? J'utilise actuellement LookupplaceID pour obtenir GMSPLACE, puis utilisez ReverseGeOcodecoordinate pour obtenir GMSAddress de la coordonnée de GMSPLACE. Mais il demande Google API 3 fois: Autocomplete, LookupplaceID, ReverseGeCodécoordinated.

Y a-t-il un moyen d'obtenir GMSADDRESS de Placeid ou GMSPLACE directement?


3 commentaires

Du Documentation GMSADDRESS , il est indiqué gmsaddress est un résultat d'une demande de géocode , contenant une adresse lisible par l'homme. Vous devez donc faire un ReverseGeocodécoordinated pour obtenir le gmsaddress . Donc, vous ne pouvez pas éviter d'utiliser autocomplete et lookupplacesid puis ReverseGeocodercoordinate .


@ztan l'a eu. Merci


Un problème que vous pourriez avoir avec cette solution est que gmsplace 's nom peut être différent de gmsaddress ' s art Propriété, même si la coordonnée est exactement la même.


3 Réponses :


5
votes

Ceci est un bogue avec 1.1.0 du SDK Google Maps pour iOS. Voir ici .

Comme la documentation indique ici , l'adresse La propriété doit exposer un gmsaddress sur gmsplace instances.

Je viens de passer à l'utilisation de l'API de repos. Ce n'est pas trop mauvais d'écrire un wrapper rapide pour l'API et de fessoire complètement Google SDK. Si vous utilisez Alamofire Ping Me et je pourrais peut-être partager ce que j'ai écrit.


5 commentaires

vous avez raison. Dans le document, il y a une propriété de l'adresse, mais ne s'est effectivement pas retourné dans SDK.


J'espère vraiment que Google ajoutera ce correctif en 1.10.2 ... récupérer les détails du lieu sans pouvoir accéder à l'adresse ... Espérons que la prochaine version sera publiée bientôt.


S'il vous plaît, tout le monde peut-il «staber» la question afin qu'elle reçoive plus de formulaire d'attention Google. code.google.com/p/gmaps-api- Problèmes / Problèmes / Détails? ID = 8121


Toujours un problème aujourd'hui avec Google Maps SDK pour iOS version: 1.10.19729.0 . Ils ont même supprimé adresse propriété dans la documentation. Bien que, il existe un adresse d'adresse sur gmsplace mais n'est pas exposé, vous pouvez donc y accéder uniquement via [place Valueforkey: @ "AdresseComponents"] Ce qui n'est pas sûr du tout! Voir mon commentaire ici: code.google.com / p / gmaps-API-Problèmes / Problèmes / Détails? ID = 8121 # C8 . J'espère que cela se fixe bientôt!


J'étais celui qui a écrit ce rapport de bogue, et c'est toujours un problème. J'utilise l'API de repos pour récupérer la représentation JSON pour un lieu de place, puis en utilisant cela pour créer des objets iOS. https://maps.googleapis.com/maps/api/place/details/json?plac eid = 'id'



1
votes

Maintenant pour le moment, le code est-il inférieur à la sécurité (assez) pour cette version du SDK (1.10.5)? Quelle est la probabilité que cela se casse dans les 6 prochains mois? XXX


1 commentaires

Si vous vous assurez de ne jamais mettre à jour accidentellement le SDK (E.G. Exécuter un POD INSTALL sans une version SDK définie explicitement définie), oui, ceci est sûr pour ne pas se bloquer. Cependant, vous ne pouvez pas être sûr de ce que AdresseComponents contient et vous pouvez vous retrouver sans données appropriées. J'ai actuellement rencontré le même problème et préféré l'approche décrite dans la question.



3
votes

Je pourrais obtenir l'adresse de plaideid dans un appel d'une API, voici le code: xxx


0 commentaires