6

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

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

当我打开 Google Maps 或 Gowalla 时,我的位置是否正确在 20 米以内?

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

如果是这样,为什么?

4

7 回答 7

3

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

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

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

于 2010-05-19T08:55:32.070 回答
1

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

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

于 2010-04-14T20:46:05.770 回答
1

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

布尔值:启用高精度

于 2011-01-28T08:09:34.590 回答
1

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

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

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

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

于 2012-01-05T11:05:10.103 回答
0

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

然而,这种检索坐标的方法不如使用 GPS 设备(例如 3G 或 3Gs iphone 中包含的那个)的“经典”方法来真正检索您的实际位置,而不是像地理信息服务。

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

于 2010-01-21T16:11:43.007 回答
0

该代码没有显示您从哪里获得位置 - 您使用的是 Navigator 和 Geolocation 对象吗?

http://developer.apple.com/iphone/library/documentation/AppleApplications/Reference/SafariWebContent/GettingGeographicalLocations/GettingGeographicalLocations.html

于 2010-01-21T18:11:43.673 回答
0

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

于 2010-06-01T11:28:05.420 回答