在Android客户端,地理信息定位主要有GPS定位、基站定位、WIFI定位、A-GPS定位,各自的基本情况差不多是这个样子的:
一、GPS定位:Global Positioning System,全球定位系统
原理:
基于卫星的定位,只要设备有GPS定位模块,且处于开启状态,就能正常获取定位信息
优点:
1、最简单的定位方式,且精度也是最高的
2、基于卫星的定位,就算没有网络,定位功能也能用
缺点:
1、必须要保证手机有GPS定位模块,且处于开启状态
2、比较耗电
3、从GPS初次启动到初次获取地理信息数据,比较耗时
4、室内定位功能不行
二、基站定位(网络定位的一种)
原理:
大致是根据手机的通信网络,采集其归属的基站信息,再结合一定的网络服务,进一步得到基站的经纬度,较低精度的获得手机设备的地理位置信息
优点:
1、只要手机有信号,网络正常,室内室外都能用
缺点:
1、精度较低
三、WIFI定位(网络定位的一种)
原理:
类似基站定位,主要是采集当前手机设备的WIFI信息,结合一定的网络定位服务,获取WIFI所在地的经纬度,进一步得到手机设备d的地理位置信息
优点:
1、定位快
2、耗电量小
缺点:
1、精度相对GPS较低
四、A-GPS定位
原理:
其实依旧是GPS定位,只是采用基站信息对GPS定位功能进行辅助,同时还能对GPS定位结果进行适当修正,相比传统的GPS定位而言,速度更快、精度也更高。
HTML5 Geolocation的定位方式,主要取决于浏览器所在的硬件设备,大致有这些定位方式:IP地址定位、GPS定位、WIFI定位、基站定位、以及用户自定义位置。各种定位方式的优缺点与Android下差不多,都是在功耗、精度、可用性上的不同。
一般情况下,Geolocation API都是采用组合定位,但设置enableHighAcuracy属性为true后,会优先采用GPS进行更高精度的定位。
使用HTML5的Geolocation API进行定位,通常需要获得用户的手动确认许可,否则该定位功能不可用。比如在微信客户端中内嵌的嘀嘀打车,进去以后会弹出一个类似这样的确认框:“嘀嘀打车要使用你的地理位置,是否允许?”,用户选择了“允许”,则定位功能开启,服务正常使用,但如果用户“拒绝”,那么这个功能直接不能用了,即便第二次再打开,或者强刷页面,该域下的HTML5定位功能依然不可用。