1

好吧,对不起所有的日志记录我一直试图弄清楚如何返回整个对象的位置。所以我可以稍后在调用 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");
}
4

1 回答 1

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
            }
        );
    }
}

我希望这会有所帮助,更重要的是,我希望它有效。

于 2013-02-22T16:34:53.323 回答