我正在开发一个应用程序,通过该应用程序,我需要允许用户更改更新自己位置的频率,而不是对其进行硬编码。
以下是我尝试过的内容,但是由于某种原因出现了超时错误。有没有人遇到过类似的情况?还是下面的代码有问题?
watchID = navigator.geolocation.watchPosition(win, fail, { maximumAge: 10000, timeout: (parseFloat(userfreq)*1000), enableHighAccuracy: true });
userfreq是从数据库加载的值,并且是以秒为单位的值,例如0.25秒。因此,我将其乘以1000以将其更改为毫秒。
最佳答案
如果收到Timeout expired
位置错误,则将watchPosition多次调用(使用相同的变量),或者在其他地方使用另一个变量多次调用watchPosition。
检查前两个屏幕截图,如果使用相同变量或不同变量两次调用watchPosition,则会引发错误。
要解决此问题,请将clearWatch
与该变量一起使用。
以下屏幕截图显示了clearWatch
之后的地理位置结果