当看到这个API时心里的兴奋程度难以表达,因为目前的项目也恰好需要这样的API。

内容来源于《html5 高级程序设计》,是一本非常值得看的书。

下面是HTML5 Geolocation API的数据来源方式,以及各个方式的比较情况。

1.IP地址

其返回的位置信息通常不靠谱。实现方式是:查找用户ip地址,然后检索其注册的物理地址。如果ip地址是ISP提供的,其位置信息往往就由服务供应商的物理地址决定。

优点:任何地方都可以用,在服务器端处理。

缺点:不精确(经常出错,一般精确到城市级),运算代价大。

2.GPS(全球定位系统)

只要在室外,GPS就可以得到非常精确的位置信息。

GPS定位是通过收集运行在地球周围的多个GPS卫星信号实现的。但是定位时间较长,不适合做快速响应的应用程序。

优点:很精确。

缺点:定位时间较长,用户耗电量大,室内效果不好,需要硬件设备。

3.Wi-Fi

基于三角距离计算得到的。三角距离是指:用户当前位置到已知的多个Wi-Fi接入点(几乎都在城市里)的距离。不同于GPS,Wi-Fi在室内相对准确。

优点:精确,可在室内使用,简单、快捷定位。

缺点:在无线接入点比较少的地区(农村)效果不好。

4.GSM活CDMA手机的ID

是指:用户到一些基站的三角距离确定的,位置相对准确。

优点:相对准确,可在室内使用,简单、快捷定位。

缺点:需要能够访问手机或modem的设备,在基站较少的偏远地区效果不好。

5.用户自定义数据

应用程序可能允许用户输入他们的地址、邮政编码等一些信息,然后利用这些信息来提供感知服务。

优点:用户可以获得比程序定位服务更准确的位置数据,用户自行输入有可能比自动检测更快。

缺点:可能很不准确特别是用户位置变更后。

 

浏览器对HTML5 Geolocation的支持情况:

Chrome:在带有Gears的第2版Chrome中被支持Chrome12 Beta把这个功能拿掉了。

Firefox:3.5及以上版本

IE:用过Gears插件支持

Opera:计划在10中支持

Safari:在版本4中支持