使用 navigator.geolocation.getCurrentPosition();同步的
Posted
技术标签:
【中文标题】使用 navigator.geolocation.getCurrentPosition();同步的【英文标题】:Using navigator.geolocation.getCurrentPosition(); synchronously 【发布时间】:2012-09-26 21:13:16 【问题描述】:我有这个函数试图在调用时将纬度和经度作为字符串返回。但是,当我用警报调用它时,它返回未定义。但是当我提醒 data.coords.latitude/longitude 它给了我正确的值。非常感谢任何帮助。
function GetLocation()
var jsonLocation;
navigator.geolocation.getCurrentPosition(function (data)
jsonLocation = data.coords.latitude+','+data.coords.longitude;
);
return String(jsonLocation);
alert(GetLocation());
【问题讨论】:
【参考方案1】:getCurrentPosition()
期待回调:
function getLocation(callback)
navigator.geolocation.getCurrentPosition(function (data)
var jsonLocation = data.coords.latitude+','+data.coords.longitude;
callback(jsonLocation);
);
getLocation(alert);
【讨论】:
callback() 未定义..为什么? @Mostafa:因为你没有将一个传递给你的getLocation
电话?
我们可以使用自定义调用函数来代替alert()
吗?我返回一个坐标数据对象。如何处理?
当然,您甚至应该在那里使用自定义函数,这就是回调的全部意义所在。但是不,你cannot return
from there
谢谢..verrry 有用。【参考方案2】:
我更改了代码,以便回调会在 getCurrentPosition 返回时提醒信息
function RequestLocation()
navigator.geolocation.getCurrentPosition(function (data)
SendLocation(String(data.coords.latitude + ',' + data.coords.longitude));
);
function SendLocation(cords)
alert(cords);
RequestLocation();
【讨论】:
以上是关于使用 navigator.geolocation.getCurrentPosition();同步的的主要内容,如果未能解决你的问题,请参考以下文章
html5-geolocation : navigator.geolocation.watchPosition 连续回调
带有 navigator.geolocation.watchPosition 的连续标记
Cordova geolocation navigator.geolocation.getCurrentPosition 错误的窗口访问位置