使用Google Maps API进行反向地理编码

时间:2010-04-19 13:16:08

标签: javascript google-maps reverse-geocoding

我找到了反向地理编码的代码:

var point = new GLatLng (lat[1],long[1]);
var geocoder = new GClientGeocoder();
geocoder.getLocations (point, function(result) { alert (lat[1]+' '+long[1]+' '+result.address); });

但是它弹出警告,说result.address是'undefined'。任何想法,可能是什么问题?


编辑:让它工作,谢谢。

2 个答案:

答案 0 :(得分:3)

你可以包括'lat'和'long'的定义吗?此外,'long'是一个保留关键字,因此可能是一个错字/错误。

此外,至少以gmaps v2 json格式返回的结果具有更复杂的结构,并且'result.address'将没有任何内容。当我测试它时,我需要访问其中一个地址,例如:

result.Placemark[0].address

请参阅http://code.google.com/apis/maps/documentation/geocoding/index.html#GeocodingResponses

答案 1 :(得分:1)

由此我只能告诉result没有被传递给函数或者它不是一个对象。

您需要查看回调函数接收的参数。这是文档所说的内容:

  

此响应将包含状态代码,如果成功,则包含一个或多个Placemark对象。

如果你正在使用Firebug,你可以通过这种方式看到传递给回调的内容:

var point = new GLatLng (lat[1],long[1]);
var geocoder = new GClientGeocoder();
geocoder.getLocations (point, function(result) { 
    window.console.log(arguments);
    // Here you will see what arguments are passed and
    // decide what to do about them
});