1

我有一些取决于地理位置的 javascript 代码。

http://jsfiddle.net/8D6vz/

var myLat = 0.0;
var myLng = 0.0;

function setCurrentPosition(position) {
 myLat = position.coords.latitude;
 myLng = position.coords.longitude;
}

function errorOccured() {
 document.write("sorry, error occured :( ");
}

$(function() {
 navigator.geolocation.getCurrentPosition(setCurrentPosition, errorOccured);
 document.write(myLat + " " + myLng);
});

但是,此代码仅产生

0 0

代替

"client's latitude here" "client's longitude here"

为什么?

我正在使用谷歌浏览器,它肯定支持地理定位。我还允许我的浏览器跟踪我的位置。​</p>

4

2 回答 2

2

GetCurrentPosition 是一个异步函数,你可以像这样使用它

function GetGeolocation() {

navigator.geolocation.getCurrentPosition(GetCoords, GetError);

}
function GetCoords(position){

  var lat = position.coords.latitude;

  var long = position.coords.longitude;

  var accuracy = position.coords.accuracy;

  alert('Latitude: ' + lat + ', Longitude: '+ long);

}
于 2012-03-20T07:25:11.550 回答
0

哦,我想我明白了。

我相信

navigator.geolocation.getCurrentPosition()

是一个异步函数。因此,setCurrentPosition(position)在将纬度和经度值打印到屏幕上后调用,它会打印原始值。

于 2012-03-20T05:11:09.160 回答