2010-12-12 26 views
2

J'ai des marqueurs sur une carte et lorsque l'utilisateur clique dessus, j'utilise le géocodeur google pour obtenir les informations d'adresse. Le problème est le format que Google renvoie ces données. Je veux afficher l'adresse dans un format cohérent tel queComment mapper les résultats google de géocodage de l'API en une simple ville, région, pays

  • Vancouver, Colombie-Britannique, Canada
  • Seattle, Washington, États-Unis
  • Sydney, Nouvelle-Galles du Sud, Australie

-t tout le monde connaît un moyen simple d'analyser ces données, donc je me retrouve avec un joli json simple comme

{"city":"Vancouver", "region":"British Columbia", "country":"Canada"} 

Merci.

Répondre

4

Oh mon dieu, les jours où je pensais que la géographie politique était si simple étaient des jours plus doux. Si Google pouvait renvoyer des données comme celle-ci, ils le feraient sûrement. Au lieu de cela vous obtenez un désordre de la localité, Sous-localité, administrative_area_level_ *, pays, etc.

Pour illustrer cela, considérez ce qui suit:

http://maps.googleapis.com/maps/api/geocode/json?address=11215&sensor=false

http://maps.googleapis.com/maps/api/geocode/json?address=10010&sensor=false

Pour Manhattan, vous êtes bonne forme. Vous obtenez l'arrondissement (Manhattan), la ville (New York), le comté (New York) et l'état (New York). Pour Brooklyn, les choses ne sont pas si propres. Vous obtenez le quartier (Brooklyn), le comté (Kings) et l'état (New York).

Maintenant, si vous allez un peu en dehors sur Long Island, vous obtenez plus de plaisir:

http://maps.googleapis.com/maps/api/geocode/json?address=40.723464,%20-73.716282&sensor=false

Dans ce cas, vous obtenez le village (Parc Floral), la ville (Hempstead), le comté (Nassau), et l'état (New York), mais tout est un peu confus.

Ceci est la variation dans les 20 miles dans un état. Si vous en sortez, vous pouvez compter encore moins. Au Royaume-Uni, la plupart de ce que nous voudrions voir comme Londres sera un petit bourg du Grand Londres.

Google fournit une taxonomie profonde et riche pour gérer cette variation, mais vous devrez toujours appliquer vos propres règles pour la comprendre (souvent à l'état par état et pays par pays)