getCurrentPosition()跨平台项目

时间:2018-08-22 07:09:42

标签: javascript position positioning

早安, 对于我的大学跨平台项目,我需要使用navigator.geolocation.getCurrentPosition()JS函数来检测位置并对其进行处理。 在互联网(和老师的幻灯片)上阅读时,我了解到该函数调用了回调函数,因此我尝试使用一些console.log。

$("#update").click(function() {

    console.log(navigator.geolocation.getCurrentPosition(function(position) {do_something(position.coords.latitude, position.coords.longitude);}));

});

结果:未定义。我在做什么错了?

已解决

问题出在我的浏览器上:我不知道为什么,但是等待几秒钟问我“允许位置”,这导致了我这些问题。

1 个答案:

答案 0 :(得分:0)

navigator.geolocation.getCurrentPosition(fx)以回调fx作为参数,该位置可用时执行。

 to simplify your mistake:

 function f(g) {
   var x = 10, y = 10;
   setTimeout(function () {
     g(x,y)
   }, 100);
 };

 //what you are doing
 console.log(f(function (x,y) { })) //undefined

 //what you should do
 f(function (x,y) { console.log(x,y) }) //wait a bit, than 10, 10

 //summary
 console.log(f(function (x,y) { console.log(x,y) })) //undefined
                                                     //~100ms later: 10 10