从getCurrentPosition返回“position”数据。 Phonegap,HTML5,Javascript

时间:2013-02-22 16:16:27

标签: javascript html5 jquery-mobile geolocation

很抱歉,我一直试图找出如何返回整个对象位置的所有日志记录。所以我可以稍后在我调用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");
}

1 个答案:

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

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