问题: 我的移动JavaScript应用程序不断返回完全相同的坐标,这些坐标已经超过500米。准确性不是那么重要。令我困扰的是,返回完全相同的坐标。直到我访问使用地理位置的外部网页时,问题才得以解决。从那以后,我的应用程序正常运行。我怀疑不知何故,我的页面缓存了一个不正确的位置,并且一旦浏览器检测到一个新的站点正在请求位置,那么该值就会被刷新。这只是我的理论。重置浏览器的地理位置值
问题: JavaScript是否缓存位置信息?如果是这样,is there any known means of forcing a refresh?
上述解决方案在测试之外并不实用。
代码:
navigator.geolocation.getCurrentPosition(processLocation,locationError,{
timeout: 60000,
enableHighAccuracy: true,
maximumAge: Infinity
});
function processLocation(position){
sendLocationToServer(position.coords.latitude,position.coords.longitude);
}
硬件:我使用的是iPhone和Safari网络浏览器。我不认为使用iPhone应该与我在Safari上的事实一样重要,但我确实尝试重置手机的位置和隐私设置。这并没有解决问题,只是确保浏览器会再次提示我进行位置许可。
--update ---
它可能实际上是由 “enableHighAccuracy” 字段引起的。移除它解决了问题的第二次再次发生。当我找到更多的信息,为什么这个参数与它的预期效果相反,我会发布细节。
不要递归调用'getCurrentPosition' - 这就是'watchPosition'的用途。另外,在调用时将'enableHighAccuracy'设置为true。 – 2014-09-01 13:11:23
是的。刚做了一个编辑。 – 2014-09-02 16:39:16