0

JavaScript でグローバル変数を HTML5 地理位置情報座標に割り当て、これらを jQuery 経由でフォーム フィールドに渡そうとしています。

私が抱えている問題は、緯度と経度をグローバル変数に割り当てることです。地理位置情報 API が「navigator.geolocation」を介して公開されていることは知っていますが、これらの値をグローバル変数に割り当てる際に何かが欠けているに違いありません。

これが私の試みです:

    var latitude = null;
function lat()
{
    if (navigator.geolocation)
    {
        latitude = position.coords.latitude;
    }
}

var longitude = null;
function lon()
{
    if (navigator.geolocation)
    {
        longitude = position.coords.latitude;
    }
}

間違いを解決するための助けをいただければ幸いです。

編集:これを試しました。値を取得する際には機能しませんが、Firebug エラーも発生しません:

    var latitude = navigator.geolocation.getCurrentPosition(function(position){
  lat = position.coords.latitude
  return lat
});

var longitude = navigator.geolocation.getCurrentPosition(function(position){
  lon = position.coords.longitude
return lon});
4

2 に答える 2

1

..edit2: コールバックのより有用な例で更新..

function requestCurrentPosition(){
        if (navigator.geolocation)
        {
        navigator.geolocation.getCurrentPosition(useGeoData);
        }
}

 function useGeoData(position){
    var longitude = position.coords.longitude;
    var latitude = position.coords.latitude;
    /*do stuff with long and lat here.*/
  }

..編集:例を更新しています...

var latitude = null;
function lat()
{
if (navigator.geolocation)
{
    navigator.geolocation.getCurrentPosition(
        function(position){
              latitude = position.coords.latitude;
        });
}
}

var longitude = null;
function lon()
{
if (navigator.geolocation)
{
    navigator.geolocation.getCurrentPosition(
        function(position){  
            longitude = position.coords.latitude;
        });
    }
}
}

このHTML5 デモをチェックしてみてください。

于 2012-05-31T00:53:27.993 に答える
0

次のようなものはどうでしょうか。

// Does this browser support geolocation?
if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(locationSuccess, locationError);
}
else{
    showError("Your browser doesn't support geolocation!");
}

// Now get user's location

function locationSuccess(position) {
    var lat = position.coords.latitude;
    var lon = position.coords.longitude;
}
于 2012-05-31T00:54:25.780 に答える