Google Geocoding – analyseant les adresses_components qui peuvent revenir différemment

J'utilise Google Maps V3 api. Je soumets une recherche d'adresse pour renvoyer le bon résultat géocodé, y compris l'adresse, le nom de l'établissement et le règlement.

Mon problème est que la réponse du géocodeur peut être formatée différemment. Il suit toujours la même structure, mais certaines réponses utilisent différentes clés pour la structure de données address_components.

Par exemple, certaines recherches entraînent:

establishment -> location name street_number -> address street number route -> the street name locality -> the city administrative_area_level_1 -> the state postal_code -> zip/postal code 

Alors que si je cherchais une zone générale, comme "Hampton Beach, NH", je recevrais:

 sublocality -> beach name / area administrative_area_level_3 -> city/town name administrative_area_level_1 -> the state postal_code -> zip/postal code 

Comme vous pouvez le voir, les deux réponses ont leurs différences. Existe-t-il une bibliothèque jquery connue qui peut être utilisée pour gérer ces différentes réponses pour renvoyer un ensemble de données des composants d'adresse qui peuvent être utilisés de manière lisible par l'homme?

Je noterai que la réponse renvoie également un type "formatted_address", qui le renvoie comme suit: "Hampton Beach, NH 03842, USA" OU "Boston University, 1 University Rd, Boston, MA 02215-1407, États-Unis" Comme vous pouvez le constater , Ce sont aussi très différents. Je pourrais diviser par virgule, mais j'aimerais utiliser les composants d'adresse réels pour un insert de base de données sans défaut.

Pourquoi ne pas avoir votre DB miroir seulement les clés suivantes?

 street_number -> address street number route -> the street name locality -> the city/town administrative_area_level_3 -> the city/town administrative_area_level_1 -> the state postal_code -> zip/postal code 

Lorsqu'une locality existe, utilisez celle dans votre demande (comme il semble fournir les informations plus détaillées – http://code.google.com/apis/maps/documentation/geocoding/#JSON )

Lorsqu'aucun street name ou locality n'existe, demande administrative_area_level_3 et administrative_area_level_1

Cela vous fournirait une adresse postale entièrement lisible par l'homme lorsque l'information existe ou simplement la ville / l'état pour une sublocalité (p. Ex. Plage), comme vous l'avez mentionné dans l'un des commentaires.

** Je suppose que vous ne vous souciez que des États-Unis.

Les adresses sont beaucoup plus humaines. Je pense que la raison pour laquelle les données de Google est tellement désordonnée est que leurs données source sont désordonnées, mais probablement similaires pour un domaine.

Quelles parties de l'adresse sont pertinentes pour vous? Si vous allez nourrir cela à un humain, donnez-lui tout ce que vous avez?