【发布时间】:2013-03-19 04:42:52
【问题描述】:
我目前正在寻找一种设备使用 firefox OS 与设备的 gps 通信的方法,这样它就可以得到准确的位置定位,而不是像 gps realtime 那样准确的 w3c geolocation api。谢谢!
【问题讨论】:
标签: geolocation gps firefox-os
我目前正在寻找一种设备使用 firefox OS 与设备的 gps 通信的方法,这样它就可以得到准确的位置定位,而不是像 gps realtime 那样准确的 w3c geolocation api。谢谢!
【问题讨论】:
标签: geolocation gps firefox-os
简单的答案:无法直接访问“设备的 GPS”。你只有你已经知道的Geolocation API。
长答案:我的经验一点也不差。所以,我认为只有两种可能无法获得“准确的位置定位”,正如你所说的那样:
在第一种情况下,您可以验证您是否使用enableHighAccuracy,如下所示:
navigator.geolocation.watchPosition(
successCallback,
errorCallback,
{ enableHighAccuracy: true }
);
这将要求浏览器获得更好的结果,如standard 所示。请注意,这可能会使用更多电池,而且这可能无论如何都无法使用。这也可能需要更多时间,这与我的其他观察有关。
在第二种情况下,您可能使用的 timeout 值太小,并且可能与可能太高的 maximumAge 结合使用。
如果maximumAge 很高而timeout 很小,您将获得一个过时的职位,因为没有足够的时间获得一个新职位而您接受一个旧职位。
如果两者都很小,您将开始收到大量 TIMEOUT 错误(值为 3),因为您将没有职位。
您需要在所有 3 个选项之间找到适当的平衡,以获得最佳位置。有时你必须要有耐心。
使用所有 3 个选项并查看您遇到的错误。他们会告诉您很多关于获取精确坐标的问题。
位置对象有一些属性可以方便地分析正在发生的事情:
position.timestamp 属性将告诉您该位置对象的年龄。如果这是旧的,你知道你应该调整选项position.coords.accuracy 属性将告诉您纬度/经度坐标的准确度。如果它太大(以米为单位),你知道你应该调整选项如果您一直等待,在 GPS 应该可以正常工作的地方(例如,户外,干净的场地),并且您不断得到不准确的结果,也许您无论如何都无法做得更好。我想说无论如何都是不可能的,用你的软件+硬件=(
【讨论】:
目前,Firefox OS 仅支持 GPS 定位(最新添加了 A-GPS)。这导致了这样一个事实,即在大多数情况下,您至少需要等待 1 到几分钟才能让 GPS 模块锁定您的位置,并且您需要清楚地观察天空才能获得锁定。
也就是说,在获得锁定后,通过在调用本身中使用正确的设置(例如将 enableHighAccuracy 标志设置为 true),GPS 应该提供与任何其他设备一样准确的位置 i> 会。
目前,当前版本的操作系统(1.0.1 或 1.1.0)中不提供基于单元格和基于 wifi 的地理定位,但正在筹备中。
【讨论】:
您可以使用 Geolocation API Firefox OS 或 Google 地图(我不记得我在哪里得到的)
【讨论】: