javascript变量问题 地理编码服务 函数初始化(){ geocoder=新的google.maps.geocoder(); 地址=“加拿大多伦多”; 地理编码({ “地址”:地址 },功能(结果、状态){ if(status==google.maps.GeocoderStatus.OK){ var lat=results[0]。geometry.location.lat(); var lng=results[0]。geometry.location.lng(); }否则{ var-lat=123; var lng=456; } document.getElementById('my_place1')。value=lat+“-”+lng; }); document.getElementById('my_place')。value=lat+“-”+lng; }
在上述代码中,my_place1的值起作用,但与my_place相同的值不起作用。有人能帮忙解决这个问题吗?我想使用javascript变量问题 地理编码服务 函数初始化(){ geocoder=新的google.maps.geocoder(); 地址=“加拿大多伦多”; 地理编码({ “地址”:地址 },功能(结果、状态){ if(status==google.maps.GeocoderStatus.OK){ var lat=results[0]。geometry.location.lat(); var lng=results[0]。geometry.location.lng(); }否则{ var-lat=123; var lng=456; } document.getElementById('my_place1')。value=lat+“-”+lng; }); document.getElementById('my_place')。value=lat+“-”+lng; },javascript,global-variables,google-geocoder,Javascript,Global Variables,Google Geocoder,在上述代码中,my_place1的值起作用,但与my_place相同的值不起作用。有人能帮忙解决这个问题吗?我想使用lat和lng值在geocoder.geocode之外工作。您的文档。getElementById('my_place')。value=lat+“-”+lng 在生成lat和lang之前执行,这是异步的概念 当您想在geocoder.geocode()之外使用它时,您必须在makelat和lang之后调用回调函数updatedatemyplace() 更新 <!DOCTYPE
lat
和lng
值在geocoder.geocode
之外工作。您的文档。getElementById('my_place')。value=lat+“-”+lng代码>
在生成lat
和lang
之前执行,这是异步的概念
当您想在geocoder.geocode(
)之外使用它时,您必须在makelat
和lang
之后调用回调函数updatedatemyplace()
更新
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<title>Geocoding service</title>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
function initialize() {
geocoder = new google.maps.Geocoder();
address = "toronto, canada";
geocoder.geocode({
'address': address
}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var lat = results[0].geometry.location.lat();
var lng = results[0].geometry.location.lng();
} else {
var lat = 123;
var lng = 456;
}
document.getElementById('my_place1').value = lat + " - " + lng;
});
document.getElementById('my_place').value = lat + " - " + lng;
}
</script>
</head>
<body onLoad="initialize()">
<input name="" id="my_place" style="width:300px; margin-left:20px;" type="text">
<br>
<input name="" id="my_place1" style="width:300px; margin-left:20px;" type="text">
</body>
</html>
您正在本地限定这些值的范围,这意味着您只能从同一块中访问它们
function initialize() {
geocoder = new google.maps.Geocoder();
address = "toronto, canada";
geocoder.geocode({ 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var lat = results[0].geometry.location.lat();
var lng = results[0].geometry.location.lng();
}
else {
var lat = 123;
var lng = 456;
}
document.getElementById('my_place1').value = lat + " - " + lng ;
updatdateMyPlace(lat, lng);
});
function updatdateMyPlace(lat, lng){
document.getElementById('my_place').value = lat + " - " + lng ;
}
}
if(status==google.maps.GeocoderStatus.OK){
var lat=results[0]。geometry.location.lat();
var lng=results[0]。geometry.location.lng();
document.getElementById('my_place1')。value=lat+“-”+lng;
}//操作是异步的。不仅变量lat
和lng
超出范围。是的。但我希望lat和lng值超出geocoder.geocode()的范围。这就是这里的问题,因为在生成lat
和lng
值后,您将调用回调函数。您的值是正确的。但真正的问题是我想在geocoder.geode()之外处理lat,lng值。我想将此lat,lng值发送到外部geocoder.geocode()updatedatemyplace()
在geocoder.geocode()
函数之外,因此lat
和lang
是。请查看答案。要在块外使用lat和lng值,我如何将它们分配到外部。
if (status == google.maps.GeocoderStatus.OK) {
var lat = results[0].geometry.location.lat();
var lng = results[0].geometry.location.lng();
document.getElementById('my_place1').value = lat + " - " + lng;
} // <--- once you exit this block, the lat/lng no longer exist