1

我正在开发一个应用程序,我需要允许用户自己更改位置更新的频率,而不是对其进行硬编码。

以下是我尝试过的方法,但由于某种原因出现超时错误。有没有人遇到过类似的情况?或者也许我在下面的代码中有问题?

watchID = navigator.geolocation.watchPosition(win, fail, { maximumAge: 10000, timeout: (parseFloat(userfreq)*1000), enableHighAccuracy: true });

userfreq 是从数据库加载的值,是以秒为单位的值,例如 0.25 秒。因此,我将它乘以 1000 以将其更改为毫秒。

4

1 回答 1

0

如果您遇到Timeout expired位置错误,要么 watchPosition 被多次调用(使用相同的变量),要么 watchPosition 在其他地方被多次调用,带有另一个变量。

检查前两个屏幕截图,如果使用相同的变量或不同的变量调用两次 watchPosition,则会引发错误。 在此处输入图像描述

在此处输入图像描述

要解决此问题,请使用clearWatch该变量。

下面的屏幕截图显示了之后的地理定位结果clearWatch 在此处输入图像描述

于 2013-01-02T05:36:18.173 回答