【问题标题】:iPhone - Native App GeoLocation VS Web App GeoLocationiPhone - Native App GeoLocation VS Web App GeoLocation
【发布时间】:2011-01-07 19:17:05
【问题描述】:

这是我的情况;我构建了一个非常简单的网络应用程序,它可以查找用户位置并将其绘制在 Google 地图上。 这是我的代码:http://pastebin.com/d3a185efd

当我测试它时,我的位置被检测为距离我实际站立的位置 >= 500 米。

但是

当我打开 Google 地图或 Gowalla 时,我的位置是否正确在

所以我的问题是:原生 iPhone 应用程序是否受益于比网络应用程序更高的准确率?

如果是,为什么?

【问题讨论】:

    标签: google-maps geolocation iphone iphone-web-app


    【解决方案1】:

    我认为 webapp 依赖于 geoip 服务(尽其所能......)将您的 IP 地址转换为 GPS 坐标。 例如:service ex

    但是,这种检索坐标的方式不如使用 GPS 设备(例如 3G 或 3Gs iphone 中的设备)真正检索您的实际坐标的“经典”方式准确位置,而不是像 geoip 服务那样对其进行近似。

    更新:例如,在笔记本电脑上使用谷歌地图时会使用 GEOIP,但也许您的问题是:“当我在网页中使用 HTML 5 位置对象时,它是来自 GPS 硬件还是来自 geoip 服务?”。这我真的说不出来,我会说它使用 geoip 服务而不是 GPS 硬件,但我不是 100% 确定......

    【讨论】:

    • 这不是我真正的问题,因为我确信 HTML 5 地理定位 api 会检查您的设备是否支持 GPS,如果没有则回退到 GeoIP。所以我的问题仍然存在,原生 iPhone 应用程序是否使用与 Web 应用程序相同的方法(或同等准确度的方法之一),或者它们在某些方面更胜一筹?
    • 我认为这依赖于浏览器的实现:让我们假设移动 safari 从 GPS 硬件检查最后检索到的位置并按需将其返回到网页,我不明白为什么会有webapps 和 native 应用程序之间存在这样的差异:web​​app / objC 之间的流程最终会询问相同的位置。
    • 我是这么想的,但如果是这样的话——为什么准确率会有这么大的差异?
    【解决方案2】:

    【讨论】:

    • 是的,我的网络应用程序使用navigator.geolocation.watchPosition() 用于 iPhone 和 Android 手机,navigator.geolocation.getCurrentPosition() 用于所有其他手机。我不确定谷歌地图使用什么,但由于它是基于网络的,我想它使用相同的 JS。
    【解决方案3】:

    根据以下链接,我相信您是通过塔三角测量而不是使用 GPS 在网络应用程序中获取坐标。我真的怀疑GeoIP能否给出500米内的坐标。

    http://phonegap.lighthouseapp.com/projects/20116/tickets/16-navigatorgeolocation-does-not-make-use-of-gps-data

    【讨论】:

      【解决方案4】:

      根据规范,webapp 地理定位应该使用在任何情况下最有效的定位方法 - 因此理论上,人们会假设它在可用时使用 GPS。 rohit 在“最佳答案”中链接的讨论对我来说似乎不是结论性的 - 这是另一个,有人向您报告类似的问题,其他用户声称获得准确的 gps 数据(向下滚动到 cmets 9 月 26 日至 28 日):

      http://www.thecssninja.com/javascript/geolocation-iphone

      但地理定位的东西似乎仍然有问题。我怀疑你的问题基本上是,一些错误。

      【讨论】:

        【解决方案5】:

        对于 google geo api,它首先尝试通过设备 gps 查找您的位置,如果失败则进行单元三角测量(虚拟 gps)如果失败则尝试使用 wifi mac 和 ip 地址,最后尝试是使用客户端 IP获取他的位置

        【讨论】:

          【解决方案6】:

          地理位置 API 允许使用高精度参数。
          http://dev.w3.org/geo/api/spec-source.html#position_options_interface
          (但会使用额外的电池,所以最好少用)
          你测试过吗?

          布尔值:启用高精度

          【讨论】:

            【解决方案7】:

            我认为您会得到不同的结果,因为您忽略了时间方面。 GPS 使用大量电池,仅在命令下启动。

            HTML5 getCurrentPosition 会在 GPS 有机会准确“定位”您的位置之前拍摄坐标快照。另一方面,谷歌地图应用程序会启动并观察您的位置,准确性会随着时间的推移而增加(你们都知道标记是如何移动的)。 HTML5 也支持这种看位置的功能。

            旁注!根据我在 iPhone 上的经验,该设备实际上会存储您的位置一段时间,这意味着如果我启动 Google 地图并让它“锁定”我的位置,关闭它然后启动我的 web 应用程序并使用 getCurrentPosition 我得到同样准确的读数。

            准确性就是让 GPS 发挥作用。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-04-05
              • 1970-01-01
              • 1970-01-01
              • 2023-03-10
              相关资源
              最近更新 更多