2009-07-10 4 views
1

J'utilise la méthode suivante pour inverser géocodage un google maps latlng:référence définitive pour objet Google Maps Placemark

[GClientGeocoder.getLocations(address:String, callback:function)][1] 

qui se lit comme suit:

Comme cette méthode nécessite un appel à un serveur de Google , vous devez également passer une méthode de rappel pour gérer la réponse. Cette réponse contiendra un code d'état et, en cas de succès, un ou plusieurs objets Placemark. Est-ce que n'importe qui peut me diriger vers une référence définitive de ce qu'est un objet Placemark, car il semble renvoyer des attributs différents pour des emplacements différents. par exemple. parfois je reçois un ThoroughfareName et d'autres une AddressLine. Je voudrais comprendre si je vais toujours en trouver un ou l'autre et s'ils sont interchangeables.

Répondre

1

This page est de la documentation de l'API Google Maps, et contient une explication assez simple de ce qu'est un objet Placemark est.

Cependant, la partie que vous voulez sans doute de se concentrer sur où il indique que le format Google utilise pour la addressdetails objet dans un Placemark, qui est xAL (eXtensible Langue de l'adresse). Il y a un lien vers la spécification qui mène à un schéma téléchargeable (fichier xsd), qui définit essentiellement le format entier. Un mot d'avertissement: la spécification est assez étendue, mais vous n'aurez peut-être pas à vous préoccuper d'une grande partie de votre projet.

EDIT:
Excuses de ne pas être autorisé à ajouter des liens vers les pages pertinentes pour vous.

+0

Merci, c'est plus ou moins ce que je cherchais. Je regardais la référence de l'API et j'aurais attendu un lien de là. xAL semble être assez flexible et la réponse est dans la façon dont google le remplit, ce qui n'est probablement disponible nulle part. Je vais probablement garder les choses simples et aller avec l'hypothèse que les noms de rue et addressLine sont interchangeables. – Richbits

0

Le contenu de l'objet Repère varie en fonction des données disponibles. J'ai trouvé la meilleure façon de travailler ce que je recevais le dos à use JSON.stringify pour examiner la réponse (pour le débogage):

function onGeocode (resp) 
{ 
    document.getElementById("cd_output").innerHTML = JSON.stringify (resp); 
} 

Cela m'a donné les résultats suivants quand je géocodées une adresse à Sydney, Australie :

Placemark 
{ 
    id, address, 
    AddressDetails 
    { 
     Country, CountryNameCode, CountryName, 
     AdministrativeArea 
     { 
      AdministrativeAreaName, 
      Locality 
      { 
       LocalityName 
       Thoroughfare { ThoroughfareName } 
       PostalCode { PostalCodeNumber } 
      } 
     } 
    } 
    Accuracy, 
    ExtendedData 
    { 
     LatLonBox { north,south,east,west } 
     Point { coordinates } 
    } 
} 
+0

Merci, j'ai trouvé qu'utiliser firebug pour afficher les résultats aussi. – Richbits