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 に答える