在 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
的名称更改为其他名称,您的代码应该可以正常工作。
--编辑--
其实我应该早点意识到这一点,因为location
与window.location
相同,也就是浏览器栏的位置!
【讨论】:
感谢您的回答...我正在研究这个问题,但仍然没有解决方案。 我假设您的getCurrentPostion
函数返回对象中的当前位置,对吗?
您的代码所做的是将匿名函数 传递给 getCurrentPostion
,而不是从 它获取值。
但getCurrentPosition
只接受三个参数,它们是successCallback
、errorCallback
和options
。而且您不能只将getCurrentPosition
分配给某种变量。
嘿,一定让你失望,但这也不是问题。在上面的示例中,我写下location
变量只是为了清楚地展示所有内容。在实际示例中,我正在使用 var homeloc
,正如我已经说过的,如果我在 getCurrentPosition
方法之外解决数据,它可以正常工作。无论如何,谢谢...希望我能找到解决这个问题的方法。以上是关于在 getCurrentPosition 函数中设置数据的主要内容,如果未能解决你的问题,请参考以下文章
有人可以告诉我如何使用 getCurrentPosition 的 watch position () 函数吗?
geolocation.getCurrentPosition 如何返回值?
在 setInterval 方法中使用 getCurrentPosition geoLocation 函数通过 React-Native 获取用户当前位置时出现问题