HTML5之地理位置


HTML5 中的 Geolocation 用于获得用户的地理位置,Web应用程序获取到用户的地理位置后,可以根据该位置定制用户体验,接下来我看看具体是怎么获取用户的地理位置。


对象名称:Geolocation


方法

1. getCurrentPosition(successCallback, errorCallback, options) 获取当前的地理位置。

2. watchPosition(successCallback, errorCallback, options) 监视位置随时间变化的情况。

3. clearWatch(watchId) 清除watchPosition()的监视。


其中successCallback()返回的属性

1. coords.latitude 纬度

2. coords.longitude 经度

3. coords.accuracy 精度

4. coords.altitude 海拔

5. coords.altitudeAccuracy 海拔精度

6. coords.heading 方向

7. coords.speed 速度

8. timestamp 响应时间


其中options包含的属性

1. enableHighAccuracy 是否启用高精度,默认为false

2. maximumAge 在重复获取地理位置时,指定获取位置信息的时间间隔,默认为0

3. timeout 获取地理位置的超时时间,默认不限时


兼容性:(来自http://caniuse.com


一个实时监控地理位置的demo(实时监控比较消耗资源,如果没有该需求,则用getCurrentPosition获取当前位置)


html代码:

<div id="demo"></div>

  

javascript代码:

var demo = document.getElementById("demo");
if(navigator.geolocation) { // 判断是否支持geolocation,如果支持,则获取地理位置
  navigator.geolocation.watchPosition(success, error);
}else {
  demo.innerHTML = 'sorry,浏览器不支持 geolocation!'
};
function success(position) { // 获取地理位置成功并输出相应参数
  demo.innerHTML = '纬度:' + position.coords.latitude + '<br />' +
                   '经度:' + position.coords.longitude + '<br />' +
                   '位置精度:' + position.coords.accuracy + '<br />' +
                   '海拔:' + position.coords.altitude + '<br />' +
                   '海拔精度:' + position.coords.altitudeAccuracy + '<br />' +
                   '方向:' + position.coords.heading + '<br />' +
                   '速度:' + position.coords.speed + '<br />' +
                   '响应时间:' + position.timestamp	
};
function error() { // 获取地理位置失败
  demo.innerHTML = 'sorry,无法检索你的位置!'
};


注释:Geolocation API 的数据来源可能是 GPS、IP 地址、RFID、WiFi、蓝牙 MAC 地址、GSM/CDMA 卡 ID 等,所以如果是非移动端,数据可能通过IP等其他方式获得,偏差可能会有点大。


some Known issues(来自http://caniuse.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值