我已成功使用google api进行地理编码,但是当我最初设置它时,我注意到返回的对象与此处的Google文档中描述的不完全相同:https://developers.google.com/maps/documentation/geocoding/#GeocodingResponses
我使用console.dir检查chrome中的对象。
除非我误解(很可能),否则我可以检索所提供地址的纬度和经度,如下所示:
lat = results[0].geometry.location.lat;
lng = results[0].geometry.location.lng;
除了,这不起作用,当我调查时,我发现lat和lng分别位于results[0].geometry.location.d
和results[0].geometry.location.e
。
直到今天它都停止了工作。调查我发现lat& lng正在通过results[0].geometry.location.k
& results[0].location.A
。
据推测,这会在不久之后再次破裂。
如果我检查结果[0] .geometry.location.lat它包含:
function (){
\"use strict\";
return this[a]}
有人认识到了吗?
答案 0 :(得分:15)
从Javascript-Geocoder的地理编码方法返回的结果已经被翻译为与Javascript-API一起使用(链接文档用于Geocoding-Webservice,而不是Maps-Javascript-API)。
geometry.location
不是普通对象,而是google.maps.LatLng
您必须使用lat()
的方法lng()
和geometry.location
来检索纬度和经度。
Specification of GeocoderGeometry
在你的情况下,这意味着使用它:
lat = results[0].geometry.location.lat();
等。