如何将test2变量的值传递给另一个函数?我一直在尝试使用全局变量和链接函数,正如我发现的另一个线程中所建议的那样,但是无法使它们起作用。
function codeAddress(addresstocode) {
var test2 = ['123','321'];
geocoder.geocode( { 'address': addresstocode}, function(results, status) {
if(status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
coded_lat = results[0].geometry.location.Ka;
coded_long = results[0].geometry.location.La;
//coded_location = [{"latitude" : coded_lat, "longitude" : coded_long}];
//test2 = returnAddress(coded_location);
test2 = [coded_lat,coded_long];
//coded_lat = coded_location[0].latitude;
//coded_long = coded_location[0].longitude;
//returnAddress(coded_location);
}
});
console.log('test2: '+test2);
return test2;
}
答案 0 :(得分:1)
您必须创建一个接收以下值的函数:
function geocodeOK(lat, lng){
// Do what you want with lat lng
}
在您的代码中:
function codeAddress(addresstocode) {
var test2 = ['123', '321'];
geocoder.geocode({
'address': addresstocode
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
coded_lat = results[0].geometry.location.Ka;
coded_long = results[0].geometry.location.La;
geocodeOK(coded_lat, coded_long);
}
});
}
答案 1 :(得分:1)
你也不应该使用location.Ka,location.La的字母标识。 “Ka”和“La”经常变化。使用location.lat()或location.lng()的相应函数。这样你的代码就不会突然崩溃。