web-dev-qa-db-fra.com

Format d'adresse correct pour obtenir les résultats les plus précis possible avec l'API Google GeoCoding

Existe-t-il un format standard permettant de fournir la chaîne d'adresse à l'API Google GeoCoding afin d'obtenir les résultats les plus précis sur la carte.

Pour P. la requête suivante ne donne pas un résultat correct.

http://maps.googleapis.com/maps/api/geocode/xml?address=bloom,Bloomfield,CT,06002,USA&sensor=false

Merci 

Mandeep

20
mandeep-dhiman

Je crois que le format suggéré est: 

House Number, Street Direction, Street Name, Street Suffix, City, State, Zip, Country

Les résultats sont moins précis, moins il est évident que vous pouvez fournir des informations.

Dans votre exemple, le géocodeur recherche une rue nommée "bloom", dont les correspondances sont identiques dans OH au lieu de CT. Le fait de supprimer "bloom" de la requête, puis de rechercher renvoie Bloomfield, CT.

23
Casey

Définition de la recherche d'adresse Google: 

address - L'adresse municipale que vous souhaitez géocoder, au format utilisé par le service postal national du pays concerné. Les éléments d'adresse supplémentaires tels que les noms commerciaux et les numéros d'unité, de suite ou d'étage doivent être évités.

https://developers.google.com/maps/documentation/geocoding/#geocoding

Comment formater mes requêtes de géocodeur pour maximiser le nombre de requêtes réussies?

Le géocodeur est conçu pour mapper des adresses de rue sur des coordonnées géographiques. Nous vous recommandons donc de formater les demandes de géocodeur conformément aux instructions suivantes afin de maximiser les chances de succès de la requête:

  • Spécifiez les adresses conformément au format utilisé par le service postal national du pays concerné.
  • Ne spécifiez pas d’éléments d’adresse supplémentaires tels que les noms commerciaux, les numéros d’unité, les numéros d’étage ou les numéros de suite qui ne figurent pas dans l’adresse définie par le service postal du pays concerné.
  • Utilisez le numéro de rue d'un lieu de préférence au nom du bâtiment, si possible.
  • Utilisez de préférence le numéro de rue en spécifiant les rues en croix lorsque cela est possible.
  • Ne fournissez pas d '"astuces" telles que des sites à proximité.

https://developers.google.com/maps/faq#geocoder_queryformat

4
phlegx

J'ai trouvé la réponse incomplète et il manquait une source. 

Regardez ici: https://developers.google.com/places/documentation/autocomplete#place_autocomplete_responses

L'API d'auto-complétion des cartes de Google renvoie un format beaucoup plus simple: "Adresse municipale, ville, pays" Vous pouvez désormais utiliser une chaîne comme celle-ci pour rechercher une adresse. Elle devrait aboutir à un résultat exact . Si vous utilisez l'API d'auto-complétion, vous obtiendrez également un identifiant unique pouvant être utilisé pour d'autres demandes de détail. 

Le format de l'adresse de rue dépend grandement de l'endroit où vous vous trouvez réellement . Aux États-Unis, "Numéro de rue, sens de la rue, nom de rue, suffixe de rue" pourrait avoir un sens, dans la plupart des pays d'Europe cela n'aboutira à aucune requête . 

Les adresses dans la plupart des pays de l'UE sont différentes (souvent "suffixe de numéro de rue") comme "Kumpelstraat 25A", "Psolevcu 331/26b") et je suppose que nous serions surpris de voir certains pays de l'Est. 

Donc, si vous liez votre code à une seule zone (États-Unis, la plupart des pays de l’UE), vous pourriez bien coder le format en dur.
Si vous voulez un système plus flexible, vous devez trouver une présentation appropriée pour votre public cible ou interroger l’une des API googles pour obtenir automatiquement une chaîne appropriée . Celui que j'ai lié est très bon mais nécessite une Clé API avec une limite de demande gratuite par jour.

4
John

Je suis tombé sur cette question et ai trouvé une solution qui a fonctionné pour moi:

Je pense que la réponse peut être trouvée en utilisant le filtrage de composants, regardez: https://developers.google.com/maps/documentation/geocoding/#ComponentFiltering

Un exemple en Javascript:

var request = require('request');

var url = "https://maps.googleapis.com/maps/api/geocode/json?" +
    "address=Herengracht 180" +
    "&components=postal_code:1016 BR|country:NL" +
    "&sensor=false";

request(url, function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body);
  }
  else {
    console.log('error', error);
  }
});
3
Whyhankee

Pas besoin d'éviter les appartements. Cela marche:

https://maps.googleapis.com/maps/api/geocode/xml?address=14202+N+42nd+St+Unit+301+33613

"Apt", "Room" et "Suite" fonctionnent également

Ils renvoient tous 301 en tant que sous-produits et sont indiqués dans "adresse_formée" sous la forme "# 301".

Paul envoie ...

1
Paul Kranz