我正在尝试使用以下代码通过地址获取经度和纬度:
function initialize() {
directionsDisplay = new google.maps.DirectionsRenderer();
geocoder = new google.maps.Geocoder();
var address = "HaYarkon 100 TelAviv Israel";
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK)
{
TelAviv = new google.maps.LatLng(results[0].geometry.location.latitude,results[0].geometry.location.longitude);
}
});
var myOptions = {
zoom:7,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: TelAviv
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
directionsDisplay.setMap(map);
}
问题在于 results[0].geometry.location.latitude 和 longitude 没有定义。
在控制台中看到的结果如下:
location: O
$a: 51.5414691
ab: -0.11492010000006303
为什么它显示的是$a和ab而不是纬度和经度
google.maps.LatLng
;results[0].geometry.location
就是 一个google.maps.LatLng
。 - Sean Mickeyvar
并将其赋值为results[0].geometry.location
。如果你想在脚本的其他地方访问该值,你必须将其分配给具有回调函数之外范围的变量,因为results[0]
(及其成员)仅在回调函数内有效。 - Sean Mickey