很抱歉,我一直试图找出如何返回整个对象位置的所有日志记录。所以我可以稍后在我调用getCurrentPosition的函数中访问它中的项目。这是对我要做的事情的嘲弄。谢谢你的帮助!
function aFunctionName(){
pos = navigator.geolocation.getCurrentPosition(onGeoSuccess, geoFail);
cameraLat = pos.coords.latitude;
\\cannot read property coords
console.log(cameraLat);
cameraLong = pos.coords.longitude;
\\cannot read property coords
console.log(cameraLong);
cameraTimestamp = pos.timestamp;
console.log(cameraTimestamp)
\\Cant read property timestamp
}
function onGeoSuccess(position) {
cameraLati = position.coords.latitude;
console.log(cameraLati);
\\works fine and displays the lat
cameraLongi = position.coords.longitude;
console.log(cameraLongi);
\\works fine and displays the long
cameraTimestampi = position.timestamp;
console.log(cameraTimestampi);
\\works fine and displays the timestamp
return position;
}
function onGeofail() {
console.log("error");
}
答案 0 :(得分:0)
对 getCurrentLocation 的调用不是同步操作,因此您将无法执行您正在尝试的操作。但是,您正在传递 onGeoSuccess 功能,并且可能会返回有效位置。你能不能在那个功能中执行你需要的东西(事实上就像你在做的那样)?
[根据新信息进行更新] 好的,所以如果您需要在成功函数中添加一些额外的变量,请尝试以下方法:
function saveDataWithPosition(data1, data2, data3, etc.){
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function (position) {
// Insert data
// Here you'll have access to your data params
// and the position obj
}, function (error) {
// Handle the error how you wish
}, {
enableHighAccuracy: true
}
);
}
}
我希望这有帮助,更重要的是,我希望它有效。