我有两个 Javascript 函数,它们尝试使用 Google Maps API Geocode 查找地址的纬度和经度:
function getLatLon(address) {
var location = -1;
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var lat = results[0].geometry.location.lat();
var lon = results[0].geometry.location.lng();
location = new Array(lat, lon);
//document.getElementById('results').innerHTML = location[0];
} else {
alert("Geocode was not successful.");
}
});
return location;
}
function search() {
var address = document.getElementById('address').value;
var location = getLatLon(address);
document.getElementById('results').innerHTML = location[0];
}
虽然 getLatLon() 中的 location[0] 在 #results div 中打印出正确的数字,但 search() 中的 location[0] 返回未定义。你有什么想法为什么会发生这种情况?我尝试从 getLatLon() 返回一个纯字符串(“Hello”),效果很好。