我正在尝试将全局变量分配给JavaScript中的HTML5地理位置坐标,并通过jQuery将它们传递给表单字段。
我遇到的问题是将lat和long分配给全局变量。我知道geolocation 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});
答案 0 :(得分: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
答案 1 :(得分: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;
}