1

我正在使用以下方法对谷歌地图 latlng 进行反向地理编码:

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

其中规定如下:

由于此方法需要调用 Google 服务器,因此您还必须传递回调方法来处理响应。此响应将包含一个状态代码,如果成功,将包含一个或多个 Placemark 对象。

谁能指出我对 Placemark 对象是什么的明确参考,因为它似乎为不同的位置返回不同的属性。例如,有时我得到一个ThoroughfareName,而其他人得到一个AddressLine。我想了解我是否总是会得到其中一个,以及它们是否可以互换。

4

3 回答 3

1

此页面来自 Google Maps API 文档,其中包含对Placemark对象是什么的非常简单的解释。

但是,您可能要关注的部分是它说明 Google 对Placemark中的AddressDetails对象使用的格式,即xAL (eXtensible Address Language)。那里有一个规范的链接,它指向一个可下载的模式(xsd 文件),它基本上定义了整个格式。一个警告:规范非常广泛,但您可能不需要为您的项目担心太多。

编辑:
很抱歉不允许为您添加相关页面的链接。

于 2009-07-10T13:09:16.110 回答
0

你必须去寻找它,但事实上谷歌确实有一些关于地标的文档隐藏起来。

于 2009-07-10T12:59:19.463 回答
0

Placemark 对象的内容会因可用数据而异。我发现找出我得到的最好的方法是使用JSON.stringify 来检查响应(用于调试):

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

当我对澳大利亚悉尼的地址进行地理编码时,这给了我以下结果:

Placemark
{
    id, address, 
    AddressDetails
    {
        Country, CountryNameCode, CountryName, 
        AdministrativeArea
        {
            AdministrativeAreaName, 
            Locality
            {
                LocalityName
                Thoroughfare { ThoroughfareName }
                PostalCode { PostalCodeNumber }
            }
        }
    }
    Accuracy,
    ExtendedData
    {
        LatLonBox { north,south,east,west }
        Point { coordinates }
    }
}
于 2009-07-10T13:04:53.753 回答