gpt4 book ai didi

javascript - 如何在javascript中的函数之外保存变量值

转载 作者:行者123 更新时间:2023-12-03 11:46:36 26 4
gpt4 key购买 nike

我是 JavaScript 新手,我试图制作一个简单的 GoogleMaps ,它以我当前的位置为中心,但我发现在保存纬度和经度以将 map 居中时出现问题。

这是我采用的代码:

function initialize() {
var latitudeCenter;
var longitudeCenter;
navigator.geolocation.getCurrentPosition(onSuccess, onError);
function onSuccess(position){
console.log(position.coords.latitude, position.coords.longitude);
latitudeCenter = position.coords.latitude;
longitudeCenter = position.coords.longitude;
}
function onError(error){
alert('Error en GPS: ' + error);
}
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(latitudeCenter, longitudeCenter)
};
map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions);
console.log('latitud: ' + latitudeCenter + ' longitud: ' + longitudeCenter);
}

在第一个控制台日志中,我可以读取当前位置和纬度,因此该方法工作正常,但是当我尝试将其保存在 centerLatitude 和 centerLongitude 中时,它不起作用,它显示未定义。

感谢您的帮助

最佳答案

因此,函数 onSuccessonError 是异步的,因此您不会立即得到答案。因此,您将实际的 map 初始化代码放入 onSuccess

function initialize() {
var latitudeCenter;
var longitudeCenter;
navigator.geolocation.getCurrentPosition(onSuccess, onError);

function onSuccess(position){
console.log(position.coords.latitude, position.coords.longitude);
latitudeCenter = position.coords.latitude;
longitudeCenter = position.coords.longitude;

var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(latitudeCenter, longitudeCenter)
};

map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions);
}

function onError(error){
alert('Error en GPS: ' + error);
}


console.log('latitud: ' + latitudeCenter + ' longitud: ' + longitudeCenter);
}

关于javascript - 如何在javascript中的函数之外保存变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26022727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com