Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重置浏览器地理位置值_Javascript_Ios_Html_Geolocation - Fatal编程技术网

Javascript 重置浏览器地理位置值

Javascript 重置浏览器地理位置值,javascript,ios,html,geolocation,Javascript,Ios,Html,Geolocation,问题: 我的移动JavaScript应用程序不断返回完全相同的坐标,距离超过500米。准确度并不是问题的关键。让我烦恼的是,返回的坐标完全相同。直到我访问了一个同样使用地理定位的外部网页,问题才得以解决。从那时起,我的应用程序运行正常。我怀疑我的页面缓存了不正确的位置,一旦浏览器检测到一个新站点正在请求位置,该值就会被刷新。这只是我的理论 问题: JavaScript是否缓存位置信息?如果是,是否有任何已知的强制刷新方法?我上面描述的解决方案在测试之外是不实用的 代码: 硬件:我正在使用iPho

问题: 我的移动JavaScript应用程序不断返回完全相同的坐标,距离超过500米。准确度并不是问题的关键。让我烦恼的是,返回的坐标完全相同。直到我访问了一个同样使用地理定位的外部网页,问题才得以解决。从那时起,我的应用程序运行正常。我怀疑我的页面缓存了不正确的位置,一旦浏览器检测到一个新站点正在请求位置,该值就会被刷新。这只是我的理论

问题: JavaScript是否缓存位置信息?如果是,是否有任何已知的强制刷新方法?我上面描述的解决方案在测试之外是不实用的

代码:

硬件:我正在使用iPhone和safari网络浏览器。我不认为使用iPhone应该比我在safari上更重要,但我确实尝试过重置手机的位置和隐私设置。这并没有解决问题,只是确保浏览器会再次提示我位置许可

-更新--

它实际上可能是由EnableHighAccurance字段引起的。移除它解决了再次出现的问题。当我找到有关此参数为何与其预期效果相反的更多信息时,我将发布详细信息。

清除位置缓存: 如果不需要缓存值,请将maximumAge设置为0。我误解了maximumAge字段。我把它和超时混淆了。它指定缓存位置值的使用时间

不准确的位置值:对于零星的不正确值,您需要使用watchCurrentPosition,它将递归地获取当前位置信息,然后对照Position.coor.accurity进行检查。不要假设返回的第一个值总是低于您所需的阈值。

清除位置缓存: 如果不需要缓存值,请将maximumAge设置为0。我误解了maximumAge字段。我把它和超时混淆了。它指定缓存位置值的使用时间

不准确的位置值:对于零星的不正确值,您需要使用watchCurrentPosition,它将递归地获取当前位置信息,然后对照Position.coor.accurity进行检查。不要假设返回的第一个值总是低于您想要的阈值。

不要递归调用getCurrentPosition-这就是watchPosition的用途。另外,调用时将EnableHighAccurance设置为true。不要递归调用getCurrentPosition-这就是watchPosition的用途。另外,在调用时将EnableHighAccurance设置为true。
navigator.geolocation.getCurrentPosition(processLocation,locationError,{
                timeout: 60000,
     enableHighAccuracy: true,
             maximumAge: Infinity
});

function processLocation(position){ 
      sendLocationToServer(position.coords.latitude,position.coords.longitude);
}