navigator.geolocation 不稳定/不可靠,如何从浏览器获得稳定的读数?

Posted

技术标签:

【中文标题】navigator.geolocation 不稳定/不可靠,如何从浏览器获得稳定的读数?【英文标题】:navigator.geolocation unstable/unreliable, how to get stable readings from the browser? 【发布时间】:2011-02-13 22:40:23 【问题描述】:

使用浏览器(Firefox、iPhone 的 Safari、android)navigator.geolocation 功能最稳定的方法是什么?

navigator.geolocation.getCurrentPosition 和 navigator.geolocation.watchPosition 似乎都不稳定,它们有时以成功回调结束,有时以错误回调结束,我看不出原因。

我现在正在使用:

navigator.geolocation.getCurrentPosition(function (position) 
    console.debug(position);
, function(data) 
    console.debug(data);
,

    enableHighAccuracy: true,
    maximumAge: Infinity,
    timeout: 10000
);

是否有任何 javascript 框架可以使读取地理位置(跨浏览器)更加稳定。

是什么导致不稳定,浏览器核心中的某些东西?

我在 Firefox(Ubuntu、Mac)、Chrome (Mac)、Safari (Mac)、iPhone 中遇到了问题。 Chrome for Ubuntu 似乎运行良好。

请分享您是如何在项目中实施地理定位的,或者关于如何提高读数质量的任何想法。

【问题讨论】:

我现在也遇到了这个问题。有时 Firefox 会失败,有时不会。有时它给出的结果远不及我。 读数的准确性似乎取决于您将 maximumAge 设置为的值,将值设置为 Infinity 似乎故障更常见但准确性更好,将值设置为 0 似乎成功更常见,但准确度是错误的。这些测试是在具有宽带连接的 Chrome 上完成的。我不确定这些假设是否正确...... 【参考方案1】:

以下是有关地理位置不可靠性的更多信息:

navigator.geolocation.getCurrentPosition sometimes works sometimes doesn't

【讨论】:

以上是关于navigator.geolocation 不稳定/不可靠,如何从浏览器获得稳定的读数?的主要内容,如果未能解决你的问题,请参考以下文章

反应原生 navigator.geolocation.getCurrentPosition 问题

navigator.geolocation 不返回 iOS 6 的有效时间戳

现在还支持navigator.geolocation定位吗?

在 Android Webview 的 navigator.geolocation.getCurrentPosition() 中出现“位置信息不可用”错误

navigator.geolocation.getCurrentPosition() 不起作用

navigator.geolocation.getCurrentPosition 在 Android 浏览器上失败