第十一章 获取地理位置信息-《HTML5+CSS3权威指南》

本章主要是介绍geolocation API来获取用户的地理位置信息。附带页面上使用Google地图的基本方法(这我就不讲了,google有很好的API使用说明书)。

Geolocation是window.navigator对象新增加的属性。Geolocation API存在三个方法。

1.获取地理位置

2.持续监视当前地理位置的信息

3.停止获取用户的地理位置信息

获取当前地理位置信息

1.可是使用getCurrentPosition方法来获取用户地理位置信息,使用方法是:

void getCurrentPosition(onSuccess, onError,options);

onSuccess是返回获取地理位置成功时做什么;onError是返回获取地理位置失败时;oprtions是一些可选属性(书上这么说的,我知道的还有一个超时的属性)。
/* 一个完整的获取地理位置信息代码段 */
navigator.geolocation.getCurrentPosition(
        /*成功获取片断*/
	function(position){
		var latitude = position.coords.latitude;//获取当前位置的纬度
		var longitude = position.coords.longitude;//获取当前位置的精度
		document.getElementById('map').value = '纬度:'+latitude+'精度:'+longitude;
	},
    /*获取地质位置错误片断*/
	function(error){
		var errorType={1:'位置服务器拒绝',2:'获取不到位置',3:'获取信息超时'};
                   alert(errorType[error.code]+":获取地理位置错误,请检查您的网络是否通畅!");
	},
     /* 超时处理*/
	{
     /*设置缓存有效时间是2分钟,单位是毫秒*/
		maximumAge:60*1000*2,
     /*5秒内没有回获取信息视为超时*/
		timeout:5000
	}
);

如果获取地理位置成功的话,position有这样几个属性:

latitude 当前地理位置的纬度

longitude 当前地理位置的精度

altitude 当前海拔高度  不能获取时为null

accuracy 获取的纬度或经度的精度(以米为单位)

altitudeAccurancy 获取海拔高度的精度(以米为单位)

heading 设备的前进方向。用面朝正北方的顺时针旋转角度来表示(不能获取时为null)

speed 设备的前进速度(单位:米/秒)

timestamp 获取地理时间

如果获取地理位置失败的话,Error对象有以下属性:

code属性有三个值(1.用户拒绝了位置服务 2.获取不到位置信息 3.获取信息超时错误)

(还没弄明白,后面是书的原文)message属性:包含了一个字符串,在该字符串中包含了错误信息

再来看看最后一个可以省略参数包含那些属性

enableHighAccuracy 要求高精度的地理位置,这个参数在很多设备上没有用,所以大多数把设为默认

maximumAge 对地理位置的获取操作做一个超时限制(单位毫秒)

持续监视当前地理位置信息

使用watchPosition方法来持续获取用户信息当前地理位置,它会定期自动获取,该方法定义如下:

int watchCurrentPosition(pnSuccess,onError,options);

该方法三个参数的说明和使用方法和getCurrentPosition方法一样。返回一个数字,这个数字的使用方法与javasctipt脚本中setInterval方法的返回值参数类似。

停止获取用户的地理位置信息

可以使用

vodi clearWatch(watchId);

watchId是调用上面的getCurrentPosition方法监视时返回的参数。

转载于:https://my.oschina.net/TOW/blog/38131

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值