使用HTML5 获取位置

来源:互联网 发布:嗟乎时运不齐命途多舛 编辑:程序博客网 时间:2024/06/05 14:21

1.   使用navigator.Geolocation对象

    首先判断是否支持

    if(navigator.Geolocation){

      alert("支持位置对象")

    } else {

   alert("不支持")

   }

2.  Geolocation API存在于navigator对象中,

只包含3个方法:

1getCurrentPosition   //当前位置

2watchPosition          //监视位置

3clearWatch              //清除监视

getCurrentPosition(success,error,option)方法最多可以有三个参数:

第一个参数是成功获取位置信息的回调函数,它是方法唯一必须的参数;

第二个参数用于捕获获取位置信息出错的情况,

第三个参数是配置项。

[例子]

navigator.geolocation.getCurrentPosition( function(p) {

    var map="维度"+p.coords.latitude+"经度"+p.coords.longitude;

    alert(var);

    });

其他属性:

p.address.country   

p.address. region

p.address.city

p.coords.accuracy准确角

p.coords.altitude海拔高度

p.coords.altitudeAcuracy海拔高度的精确度

p.coords.heading行进方向

p.coords.speed地面的速度

出错处理

navigator.geolocation.getCurrentPosition( , function(error){

switch(error.code){  

        case error.TIMEOUT :  

            alert( " 连接超时,请重试 " );  

            break;  

        case error.PERMISSION_DENIED :  

            alert( " 您拒绝了使用位置共享服务,查询已取消 " );  

            break;  

        case error.POSITION_UNAVAILABLE :   

            alert( " ,抱歉,暂时无法为您所在的星球提供位置服务 " );  

            break;  

    }  

});

参数设置:

navigator.geolocation.getCurrentPosition( , … , option);

option配置项,第三个参数是一个对象,该对象影响了获取位置时的一些细节。 

enableHighAccuracy ,它将告诉浏览器是否启用高精度设备,所谓的高精度设备包含但不局限于前面所提到的GPSWIFI,值为true 的时候,浏览器会尝试启用这些设备,默认指为true。 

  timeout,超时,获取位置信息时超出设定的这个时长,将会触发错误,捕获错误的函数将被调用,并且错误码指向TIMEOUT。 
这样我们尝试修改调用
getCurrentPosition时传递的参数 


 3.  watchPosition像一个追踪器与clearWatch成对。

watchPositionclearWatch有点像setIntervalclearInterval的工作方式。

varwatchPositionId =navigator.geolocation.watchPosition(success_callback,error_callback, options);

navigator.geolocation.clearWatch(watchPositionId );



0 0