Javascript 地理定位 - GPS 设置 - 精细与粗略

Javascript geolocation - GPS settings - FINE vs COARSE

我正在使用 Intel XDK(iPhone 和 Android)创建一个地理定位应用程序并有 2 个问题:

  1. 如果 phone 上的 GPS 未激活,我如何显示设备的地理位置设置?
  2. 我如何知道返回的纬度和经度值是来自 GPS 还是来自 wifi/data 坐标?我认为 wifi/data returns 是一个短值 (eg: 43.475748) 而 GPS returns 是一个较长的值 (eg: 43.47573849384) 我这样想对吗?

1.) 大多数设备都会缓存最后已知的地理位置。不幸的是,这种行为并不一致,除了尝试记住应用程序中一组最后已知的位置外,您无能为力。

2.) 我不认为 HTML5 geo API 提供了那种详细程度,但您可以查看所提供的准确性信息。 "fine" 与 "coarse" 的指定有些武断,因为它在不同的设备和操作系统上意味着不同的东西(跨平台应用程序的本质)。我会将准确度反馈用作相关指南。

如果您想使用地理定位功能,请查看 XDK 中的 "hello-cordova" 示例应用程序,它非常易于使用,可以了解地理功能在各种设备上的工作方式。您可以在 App Preview 中使用它,或者简单地构建应用程序并将其安装在各种设备上。请注意,如果您先按下 "fine" 按钮,那么 "watch" 按钮将检索 "fine" 结果。如果您在按下 "watch" 按钮之前按下 "coarse" 按钮,则监视结果将基于 "coarse" 设置。

一般情况下,最好先请求"coarse"读取(超时时间短)以获取大致位置(或缓存位置),然后切换到"fine"请求,如果你需要一个更精确的位置。如果您坚持不经常 "coarse" 读数,电池寿命会更长,尤其是当您只需要知道用户的大致位置(例如,他们位于哪个城镇或街区)时。