gpt4 book ai didi

javascript - 使用js函数中的变量,并在其他函数中使用它

转载 作者:行者123 更新时间:2023-11-30 01:16:38 25 4
gpt4 key购买 nike

我是 JS 的新手,我正在尝试使用 PhoneGap 构建一个网络应用程序,该应用程序从 Android 设备获取 GPS 坐标并将其用于某些 JS 函数,但我遇到了麻烦。我应该如何传递 'lat' 和 'lon' 以在 'coords' 中使用它们

document.addEventListener("deviceready", onDeviceReady, false);
var lat;
var lon;

function onDeviceReady() {
navigator.geolocation.getCurrentPosition(onSuccess, onError);
}
// onSuccess Geolocation
//
function onSuccess(position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
}

function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}

var map;
function initMap() {
var coords = new google.maps.LatLng(lat,lon);
map = new google.maps.Map(document.getElementById('map_canvas'), {
center: coords,
zoom: 15
});
var marker = new google.maps.Marker({
position: coords,
map: map,
title: 'Вие сте тук!'
});
}
onSuccess();
onError();
initMap();

最佳答案

更改您的 onSuccess() 和 initMap()。您的 onSuccess 将 lat 和 lon 设置为其私有(private)变量。此外,由于这些是异步调用,您的 initMap 可能不会最终获得您需要的数据。这就是为什么在 onSuccess() 触发时需要 initMap() 的原因。

function onSuccess(position) {      
var lat = position.coords.latitude;
var lon = position.coords.longitude;
initMap(lat, lon);
}

function initMap(lat, lon) {
//your implementation
}

一旦你完成了这些,就不需要调用你最后完成的 onSuccess、onError 和 initMap

关于javascript - 使用js函数中的变量,并在其他函数中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37771367/

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