【系列】html5地理位置定位

发表于2014-10-09 20:16  |  次阅读  |  0条评论  |   作者:siru90

一、HTML5 地理位置定位(Geolocation)原理及应用
简介:
地理位置(Geolocation)是 HTML5 的重要特性之一,提供了确定用户位置的功能,借助这个特性能够开发基于位置信息的应用,使得开发人员不用借助其他软件就能轻松实现位置查找,地图应用,导航等功能,具有划时代的意义!
适用情况:
截止目前,支持它的浏览器:
IE 9.0+
Firefox 3.5+ 
Safari  5.0+ 
Chrome 5.0+ 
Opera  iPhone/iPad 3.0+ 
Android 2.0+
 
二、Geolocation的基本原理
1. GPS
① GPS基本原理是测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置。适用于具备GPS功能的设备
A. 优点:在空旷地区比较准确,覆盖面比较广
B. 缺点:需要比较长时间定位,比较耗电池,在室内不太好,需要GPS设备支持
2. WIFI
① 地理定位服务提供者会在全世界范围内去收集WIFI热点的位置信息,然后用户的设备只要能支持WIFI就能获取到周围WIFI热点的位置和信号强弱信息,然 后把这些信息发给提供者,就能得到自己的位置.
A. 优点:比较准确,适用于室内环境,相应速度快
B. 缺点:在wifi热点少的地方不适用

3. IP定位
原理很简单,就是通过你设备的物理地址所备案的地址信息来定位,但这种方式精确度不高,特别是用代理来上网的情况下。一般作为GPS和WIFI都不支持的情况下大致模糊匹配,比如各大团购网站检测用户所在城市 。
 
4. 手机基站
和WIFI原理类似,Apple的设备就是把WIFI和基站信息结合起来进行定位。

三、代码实现:
1. 核心对象
①Geolocation是window.navigator下面的一个对象,该对象提供了实现地理位置定位的接口。
②要用该功能首先判断浏览器是否支持navigator.geolocation该对象。
 
2. Geolocation对象详解
①getCurrentPosition(success,error,options)该方法是实现地理定位的核心方法,该方法能够对获取到的信息作出处理以及设置。
A.success(position) 获取信息成功的回调函数
B.error(errorcode)获取信息失败的回调函数
C.options获取信息前可以按照你的需求来设置一些参数

3. success(position) 获取信息成功的回调函数
①当成功获得信息的时候,会自动调用success函数,而
这个函数会自动生成一个包含返回地理信息的position
对象,如下:
A.coords.latitude(纬度)
B.coords.longitude(经度)
C.coords.altitude(海拔)
D.coords.accuracy(位置精确度)
E.coords.altitudeAccuracy(海拔精确度)
F.coords.heading(朝向)
G.coords.speed (速度)
H.timestamp(响应的日期/时间)
4、error(errorcode)获取信息失败的回调函数
A. 地理信息会因为各种因素,例如信号不好等等而出错。因此当获取信息失败的时候会自
动调用getCurrentPosition的第二个参数,即error函数,这个函数会自动生成一个包含错
误代码和错误信息的对象作为其参数,code是错误代码,message是错误信息。
switch(errorcode.code){
case 1 :
     alert(errorcode.message);//用户选了不允许
     break;
case 2:
     alert(errorcode.message);/连不上GPS卫星,或者网络断了
     break;
case 3:
    alert(errorcode.message);//超时了
    break;
default:
    alert(errorcode.message);//未知错误,其实是err.code==0的时候
    break;
}

5、options 设置一些参数
①options是一个对象,可以设置超时时间、缓存时间等,
如下:
A.enableHighAccuracy 表示是否允许使用高精度,但这个参数在很多设备上设置了都没用,设备综合考虑电量、地理情况等,很多时候都是默认的由设备自身来调整。
B.timeout 指定超时时间
C.maximumAge 是指缓存的时间

此外 geolocation 还有两个方法:
1.watchPosition(success,error,options) 表示重复获取地理位置,相当于将getCurrentPosition这个方法利用setinterval不断执行,其他用法和参数使用一样。
2.clearWatch()用来清除前一次获取的位置信息。这个两个方法配合使用,能够实现一些很棒的功能,比如说:导航等!
本站关键字:sunny90 web开发 数据库 移动开发 服务器 Nginx Mysql PHP
Copyright © sunny90版权所有 power by sunny90.com  
湘ICP备14012284号-1,粤公网安备 44030602000307号