【问题标题】:Firefox OS device gpsFirefox OS 设备 GPS
【发布时间】:2013-03-19 04:42:52
【问题描述】:

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

【问题讨论】:

    标签: geolocation gps firefox-os


    【解决方案1】:

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

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

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

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

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

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

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

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

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

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

    使用所有 3 个选项并查看您遇到的错误。他们会告诉您很多关于获取精确坐标的问题。

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

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

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

    【讨论】:

    • 我明白了,很详细的解释。谢谢!不过还没有真正的设备可以玩,只是想知道 webAPI 与手机硬件的配合有多好。
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-06
        • 2013-07-02
        • 1970-01-01
        • 2014-05-26
        • 2015-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多