2010-10-13 5 views
0

J'ai une entité dont l'un de ses membres est la ville actuelle, le pays où il a été "créé" - l'utilisateur ne me donne lat, coordonnées longues et je dois utiliser l'API Google pour inverser le géocodage des coordonnées dans la ville, le pays.Récupérer des données géographiques de google API lors de la création d'un nouvel enregistrement sur DB

Ma question - Quelle est la meilleure façon de récupérer cette information? est-il assez sûr d'utiliser un service Web tiers au milieu d'un processus de création d'enregistrements? Quels sont les moyens communs de faire cela?

Répondre

1

C'est sûrement assez sûr. Le seul problème est le temps de réponse (car vous appellerez le service web distant de manière synchrone), mais si vous ne le faites qu'une seule fois sur chaque insert, je ne pense pas que ce serait un gros problème.

L'API Google Geocoding will return results in XML format, il vous suffit donc d'appeler l'URL du service Web et de récupérer les informations dont vous avez besoin dans la réponse.

Voici un exemple inverse résultat géocodage:

http://maps.googleapis.com/maps/api/geocode/xml?latlng=40.714224,-73.961452&sensor=false

Vous ne dites pas la langue que vous utilisez, mais je suppose que PHP ici est un exemple de base de l'analyse de la réponse et l'affichage les adresses utilisant SimpleXML:

$lat = 40.714224; 
$lng = -73.961452; 

$xml = simplexml_load_file("http://maps.googleapis.com/maps/api/geocode/xml?latlng=" . $lat . "," . $lng . "&sensor=false"); 

foreach($xml->result as $result) 
{ 
    foreach($result->address_component as $addresscomponent) 
    { 
     echo $addresscomponent->long_name . ' '; 
    } 

    echo '<br />'; 
} 
Questions connexes