我的问题是,当我将位置的纬度和经度打印到控制台时,它可以工作,但当我将它们传递给计算函数时,控制台会说它们是未定义的。
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
}
else {
location.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
console.log(position.coords.longitude);
var lat = position.coords.latitude;
var lng = position.coords.longitude;
}
function calculate(lat,lng){
var homeCoord = new Array();
var awayCoord = new Array();
console.log(lng);
console.log(lat);
homeCoord[0] = lat;
homeCoord[1] = lng;
awayCoord = myGeocodeFirst();
var combinedLat = homeCoord[0]+awayCoord[0];
var combinedLong = awayCoord[1]+homeCoord[1];
console.log(combinedLat+" "+combinedLong);
}
谢谢你的帮助!
将其放入回调函数:
function showPosition(position) {
console.log(position.coords.longitude);
var lat = position.coords.latitude;
var lng = position.coords.longitude;
calculate(lat,lng);
}
function calculate(lat,lng){
var homeCoord = new Array();
var awayCoord = new Array();
console.log(lng);
console.log(lat);
homeCoord[0] = lat;
homeCoord[1] = lng;
awayCoord = myGeocodeFirst();
var combinedLat = homeCoord[0]+awayCoord[0];
var combinedLong = awayCoord[1]+homeCoord[1];
console.log(combinedLat+" "+combinedLong);
}