目前 W3C 正在忙于一个新规范的制定,该规范定义了一个 API 进而可以通过脚本访问地理位置信息,借着这个东风,最近Mozilla 宣布为Firefox 3.5 提供内置的地理信息支持。这与早前Opera 的声明不谋而合,该声明谈到了 Opera 浏览器也将提供地理信息支持。难道这意味着位置感知的应用会成为主流?
W3C 草案所提出的 Geolocation API 是个访问位置信息(如经纬度)的高层接口,该接口与实现设备紧密相关。API 本身对下面的位置信息一无所知。常见的位置信息来源主要包括全球定位系统(GPS)、根据网络信号如 IP 地址、RFID、WiFi 及蓝牙 MAC 地址推断出的位置信息以及 GSM/CDMA 的 cell ID:
下面的代码说明了如何获取基本的位置信息: “一次性”的位置请求示例。
复制代码
function showMap(position) { // Show a map centered at (position.coords.latitude, position.coords.longitude). } // One-shot position request. navigator.geolocation.getCurrentPosition(showMap);
草案还考虑到了隐私问题:
规范定义的 API 可用于获取设备的地理信息。在几乎所有情况下,该信息都将包含使用设备的用户位置,这样一来就对用户的隐私造成了潜在的威胁。规范的实现必须要提供一种机制来保护用户隐私,同时要确保在未得到用户同意的情况下不得擅自将用户的位置信息暴露出来。
其工作方式是怎样的? 在访问位置感知的站点时,Firefox 会询问你是否要共享你的位置。
如果你同意,那么 Firefox 就会搜集附近的无线访问点以及你机器的 IP 地址等信息,然后将这些信息发送到默认的服务供应商(Google Location Services)来对你的位置进行计算,接下来所请求的站点就会获得你的位置信息。
如果你不同意,那么 Firefox 就什么都不会做。
Opera 也发布了一个支持地理位置信息的构建版。
我们很高兴地宣布 Opera 第一个支持地理位置信息的浏览器版本发布了。W3C 的地理位置工作组(Geolocation Working Group )最近发布了 geolocation API 规范的首个工作草案,现在我们发布了支持该 API 的实验构建版。 网页中的 Javascript 代码会利用该 API 获取浏览器所处位置的经纬度信息。
Web 上的地理信息识别早已不是什么新鲜玩意了。很多站点都已经开始利用浏览器的 IP 地址来投放相关的内容,这其中主要是广告(比方说你会在页面上看到这样的内容:“来寻找同城好友吧”)。然而,这种方式却不那么准确,无法用在高级的地理信息服务中。另一方面,浏览器所在的设备却可以获得其精确的位置信息,前提是它有一个 GPS 单元,或是能访问无线访问点及信号塔,或是能查询到其 IP 地址。即便是设备没有相应的硬件,那它也可以利用位置信息提供商的 Web Services 做到这一点。它使用了 Skyhook 服务,因此需要在 loki.com 上注册你的站点,这样 Web 应用就能得到用户的位置信息了。除此以外,如果你使用的是 Windows XP,那还需要运行 svcsetup.exe,这保证了 WiFi 扫描不会受各种“WiFi 管理器”的影响。在未来的发布中其实不需要这么麻烦,但现在如果遇到问题,那还是先运行 svcsetup.exe 吧。
至于其他方面,可以使用 Google Gears 提供的 Geolocation API :
凭借 Geolocation API,Web 应用可以: - 通过 getCurrentPosition 方法获取用户当前的位置
- 通过 watchPosition 方法查看用户的位置
- 通过 lastPosition 属性快速、方便地获取用户的上一次访问位置
Geolocation API 通过大量资源(称作位置供应源)获取最准确的用户位置信息。这些供应源可以是移动的(比如 GPS),也可以是基于服务器的(网络位置供应源)。getCurrentPosition 和 watchPosition 方法支持可选的 PositionOptions 类型参数,它可以指定使用哪个位置供应源。
Gears 0.5 将使用 WiFi 无线数据提供更精确的位置数据:
Gears Geolocation API 可以利用网络服务器获取位置装置。服务器通过客户端提供的一套数据来判断客户端的位置。该数据包括客户端的 IP 地址及其检测到的任何信号塔或是 WiFi 结点。
InfoQ 有幸采访到了 Opera 的核心开发人员 Max Froumentin 以了解浏览器上的地理位置信息的未来发展方向:
InfoQ:Firefox 和 Opera 具有本地支持,而其他平台则可以利用 Google Gears 插件,你觉得该 API 的使用会成为未来的主流么,而且像 IE 等平台尚没有本地实现。你认为不久之后会提供支持么?
由于地理位置信息是 Web 上的一个极其有用的特性,尤其在移动设备上,因此只要浏览器对其提供了支持,相应的应用很快就会出现:很多站长都期待着这个功能,一旦出现必将得到广泛应用。
InfoQ:你觉得该 API 的前景如何呢?你认为它是对现有应用的锦上添花,还是一场真正的革命?
我觉得都有。显然那些正尝试使用地理位置信息(通过 IP 或其他类似的方法)的站点会从中受益,其获取到的信息的准确性将会大大提高,这样就能够提供更好的服务。然而我们也要相信一定会有人通过该 API 提供的新功能开创出革命性的应用。
InfoQ:你觉得隐私问题会不会减缓位置感知浏览的发展速度?
隐私问题会减缓其发展速度:如果不相信站点,觉得他们可能会泄漏自己的隐私,那么用户就应该避免使用浏览器的地理位置特性。就像用户往站点发送的任何敏感信息一样(比如信用卡信息),位置感知的浏览器需要确保能通过适当的防护措施来保护用户的隐私。一旦措施得当,用户就会转向位置感知的浏览了。
你怎么想?下一代的 Web 应用会不会天生就是位置感知的呢?
评论