在 getCurrentPosition 函数中设置数据

Posted

技术标签:

【中文标题】在 getCurrentPosition 函数中设置数据【英文标题】:Set data inside getCurrentPosition function 【发布时间】:2011-09-01 17:30:16 【问题描述】:

接下来我会做:

第一件事 - 我正在检查我是否已经加载了纬度和经度数据。如果有,我会将其保存到名为“location”的数组中。

第二件事 - 如果我没有任何加载的数据,我正在尝试获取当前位置。之后,我试图保存当前位置的纬度和经度。 最后,我调用 setMap();检查位置数组和生成地图的函数。

问题:

好吧,正如我所说...在“getCurrentPosition”中,我试图将当前位置设置为“location”数组,然后我试图将这些值放入 setMap();功能。这是问题所在,但仅当我在“getCurrentPosition”中设置“位置”值时。如果我之前手动设置“位置”值(来自“数据”数组),一切正常。 此外,当我在“getCurrentPosition”中调用 setMap() 函数时,一切正常……但是当我从外部调用它时,将无法正常工作。 有人可以解释一下这是怎么回事吗?我该怎么办?

这是我的代码:

location = new Array();
if (data.lat) 
        location['lat'] = data.lat;
        location['lng'] = data.lng;
     else 
        if (!navigator.geolocation) 
            //
         else         
            navigator.geolocation.getCurrentPosition(function(position) 
                location['lat'] = position.coords.latitude;
                location['lng'] = position.coords.longitude;
            );
               
    
setMap();

谢谢。

【问题讨论】:

好的,我在这里发现了一些有趣的东西:***.com/questions/7189492/… 【参考方案1】:

您在getCurrentPosition 中设置了不同的变量。 我建议研究变量范围。 查看this问题。

--编辑--

我没有意识到您使用的函数是 javascript 的一部分,我以为您是从某个地方编写/获得的。

另外,我对范围的看法是正确的。既然你用的是数组,范围没问题,应该可以在回调函数里面设置就好了。

当我在location 上执行console.log 时,我运行了您的代码并得到了一些奇怪的打印输出。 我猜了一下,位置似乎是reserved word。我敢打赌,如果您将 location 的名称更改为其他名称,您的代码应该可以正常工作。

--编辑--

其实我应该早点意识到这一点,因为locationwindow.location 相同,也就是浏览器栏的位置!

【讨论】:

感谢您的回答...我正在研究这个问题,但仍然没有解决方案。 我假设您的 getCurrentPostion 函数返回对象中的当前位置,对吗? 您的代码所做的是将匿名函数 传递给 getCurrentPostion,而不是从 它获取值。 getCurrentPosition 只接受三个参数,它们是successCallbackerrorCallbackoptions。而且您不能只将getCurrentPosition 分配给某种变量。 嘿,一定让你失望,但这也不是问题。在上面的示例中,我写下location 变量只是为了清楚地展示所有内容。在实际示例中,我正在使用 var homeloc,正如我已经说过的,如果我在 getCurrentPosition 方法之外解决数据,它可以正常工作。无论如何,谢谢...希望我能找到解决这个问题的方法。

以上是关于在 getCurrentPosition 函数中设置数据的主要内容,如果未能解决你的问题,请参考以下文章

有人可以告诉我如何使用 getCurrentPosition 的 watch position () 函数吗?

geolocation.getCurrentPosition 如何返回值?

getCurrentPosition() 的结果

在 setInterval 方法中使用 getCurrentPosition geoLocation 函数通过 React-Native 获取用户当前位置时出现问题

Cordova 多个 navigator.geolocation.getCurrentPosition()?

使用 navigator.geolocation.getCurrentPosition();同步的