0

我正在尝试将全局变量分配给 JavaScript 中的 HTML5 地理位置坐标,并通过 jQuery 将这些变量传递给表单字段。

我遇到的问题是将 lat 和 long 分配给全局变量。我知道地理位置 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 Demo

于 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 回答