当看到这个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中支持