Estoy usando el siguiente método para revertir geocodificar un latlng de google maps:

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

Que establece lo siguiente:

Como este método requiere una llamada a un servidor de Google, también debe pasar un método de devolución de llamada para manejar la respuesta. Esta respuesta contendrá un código de estado y, si tiene éxito, uno o más objetos de marca de posición.

¿Alguien puede señalarme una referencia definitiva de lo que es un objeto Placemark ya que parece devolver diferentes atributos para diferentes ubicaciones? p.ej. a veces obtengo un ThoroughfareName y otros una AddressLine. Me gustaría entender si siempre tendré uno u otro y si son intercambiables.

1
Richbits 10 jul. 2009 a las 15:33

3 respuestas

La mejor respuesta

Esta página es de la documentación de la API de Google Maps y contiene Una explicación bastante sencilla de lo que es un objeto Marca de posición .

Sin embargo, la parte en la que probablemente desee enfocarse es en dónde indica qué formato usa Google para el objeto AddressDetails en una Marca de posición , que es xAL (eXtensible Address Language ) . Hay un enlace a la especificación allí, que conduce a un esquema descargable (archivo xsd), que esencialmente define el formato completo. Una advertencia: la especificación es bastante extensa, pero es posible que no tenga que preocuparse mucho por su proyecto.

EDITAR:
Disculpas por no poder agregar enlaces a las páginas relevantes para usted.

1
Tim S. Van Haren 10 jul. 2009 a las 13:09

Tienes que buscarlo, pero Google de hecho tiene algunos documentación sobre marcas de posición oculta.

0
NickFitz 10 jul. 2009 a las 12:59

El contenido del objeto Placemark varía según los datos disponibles. Encontré que la mejor manera de resolver lo que estaba recuperando era use JSON.stringify para examinar la respuesta (para la depuración):

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

Esto me dio los siguientes resultados cuando geocodifiqué una dirección en Sydney, Australia:

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
RedBlueThing 10 jul. 2009 a las 13:20