我有试图找到使用谷歌地图API地理编码地址的经度和纬度两个JavaScript函数未定义:JavaScript函数返回的不是数字
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];
}
虽然位置[0]内getLatLon()在#results div中打印出正确的数字,search()中的位置[0]返回undefined。你有什么想法,为什么会发生这种情况?我试过从getLatLon()返回一个纯字符串(“Hello”),而且工作得很好。
geocoder.geocode是异步的吗?如果是,'getLatLon'应该总是返回-1。 *总是* – tjameson
**呃**,我有一个问题。 getLatLon如何返回undefined? 'location'是'-1',所以它也应该返回'-1'。 –
@Derek - 我认为问题是'location [0]'未定义而不是'getLatLon()'。问题措辞不佳的IMO。 – tjameson