我正在使用谷歌API和地理编码器,我需要在地理编码后保存一些变量中的位置信息(longitute和latidude)。 在这段代码中,我可以提醒返回值,但我不知道如何将这些值保存在变量中。
function codeAddress() {
var address = "Streamwood, IL, USA";
var geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var loc=[];
loc[0]=results[0].geometry.location.lat();
loc[1]=results[0].geometry.location.lng();
display(loc);
} else {
alert("Error: " + status);
}
});
}
function display(loc){
alert(loc[0]);
}
答案 0 :(得分:0)
我将假设您希望在此示例中将地址的纬度和经度返回到全局变量。
首先,您希望在loc
函数之外设置codeAddress
的全局变量。这将为您提供稍后引用它所需的命名空间。
var loc;
在codeAddress
函数内部,为区分结果和全局变量,我将loc
变量更改为myLoc
并将其指定为新的空数组。
最后,要将坐标置于函数之外,您需要将全局loc
定义为等于函数定义的myLoc
变量。
看看:
function codeAddress() {
var address = "Streamwood, IL, USA";
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
'address': address
}, function(results, status) {
var myLoc = new Array();
if (status === 'OK') {
myLoc[0] = results[0].geometry.location.lat();
myLoc[1] = results[0].geometry.location.lng();
}
loc = myLoc;
});
}
这应该可以做到!
答案 1 :(得分:0)
您可以将codeAddress函数分配给变量。如果您的地图请求成功,则返回的值是您的loc
数组。然后,您可以随心所欲地做任何事情。
function codeAddress() {
var address = "Streamwood, IL, USA";
var geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var loc=[];
loc[0]=results[0].geometry.location.lat();
loc[1]=results[0].geometry.location.lng();
return loc;
} else {
return ("Error: " + status);
}
});
}
var myAddress = codeAddress();
if(myAddress.isArray){
console.log("latitude", myAddress[0]);
console.log("longitude", myAddress[1]);
}