1

我目前正在寻找一种使用 firefox OS 与设备的 gps 通信的设备的方法,因此它可以获得准确的位置定位,而不是不如 gps realtime 准确的 w3c geolocation api。谢谢!

4

3 回答 3

3

简单的答案:无法直接访问“设备的 GPS”。您只有已知的Geolocation API 。

长答案:我的经验一点也不差。所以,我认为只有两种可能无法获得“准确的位置定位”,正如你所说的:

  1. 也许您没有使用正确的选项来获得精确的位置。在这种情况下,您可以稍微调整选项以获得更好的结果;
  2. 也许您不会等到底层软件可以使用您的 GPS 而不是一些不太准确的仪器/估计(如 Wi-Fi 定位估计)。
  3. 它可以是两者的组合 =P

在第一种情况下,您可以验证您是否正在使用enableHighAccuracy,如下所示:

navigator.geolocation.watchPosition(
  successCallback,
  errorCallback,
  { enableHighAccuracy: true }
);

正如标准所示,这将要求浏览器获得更好的结果。请注意,这可能会使用更多电池,而且这可能无论如何都无法使用。这也可能需要更多时间,这与我的其他观察有关。

在第二种情况下,您可能使用的值timeout太小,并且可能与可能太高的值结合使用maximumAge

如果maximumAge高且timeout小,您将获得过时的职位,因为没有足够的时间获得新职位并且您接受旧职位。

如果两者都很小,您将开始收到很多TIMEOUT错误(值为 3),因为您将没有职位。

您需要在所有 3 个选项之间找到适当的平衡,以获得最佳位置。有时你必须要有耐心。

玩所有 3 个选项,看看你得到的错误。他们会告诉你很多关于获得精确坐标的问题。

position 对象有一些属性可以方便地分析正在发生的事情:

  • position.timestamp属性将告诉您该位置对象的年龄。如果这是旧的,你知道你应该调整选项
  • position.coords.accuracy属性将告诉您纬度/经度坐标的准确度。如果它太大(以米为单位),你知道你应该调整选项

如果您在 GPS 应该可以正常工作的地方(例如,户外、干净的场地)一直等待,而您不断得到不准确的结果,也许您无论如何都无法做得更好。我想说无论如何都是不可能的,用你的软件+硬件=(

于 2013-03-20T22:10:14.340 回答
1

截至目前,Firefox OS 仅支持 GPS 定位(最新添加了 A-GPS)。这导致了这样一个事实,即在大多数情况下,您至少需要等待 1 到几分钟才能让 GPS 模块锁定您的位置,并且您需要清楚地观察天空才能获得锁定。

也就是说,在获得锁定后,通过在调用本身中使用正确的设置(例如将enableHighAccuracy标志设置为true),GPS 应该提供与任何其他设备一样准确的位置

目前,当前版本的操作系统(1.0.1 或 1.1.0)中不提供基于单元格和基于 wifi 的地理定位,但正在筹备中。

于 2013-06-18T06:54:24.337 回答
0

您可以使用 Geolocation API Firefox OS或 Google Maps(我不记得我从哪里得到的)

于 2013-03-20T13:11:06.533 回答