首页 > 代码库 > 8月11号=》386页-390页
8月11号=》386页-390页
14.9 navigator和地理位置
window对象有一个navigator属性,该属性对应于Navigator对象,该对象代表浏览该页面所使用的浏览器。该对象在不同
的平台上的信息并不完全相同,但总包含如下几个常用的属性。
appName:返回该浏览器的内核名称。
appVersion:返回该浏览器当前的版本号。
platform:返回当前浏览器所在的操作系统。
14.9.1 HTML5新增的geolocation属性
HTML5为navigator新增了一个geolocation属性,这个属性时一个Geolocation对象,通过该对象获取浏览者的地理位置。
Geolocation对象提供了如下3个方法。
getCurrentPosition(onSuccess,onError,options):该方法请求获取地理位置。该方法可以指定3个参数,其中第一个
参数代表成功获取地理位置时触发的回调函数;第二个参数代表获取地理位置失败后触发的回调函数;第三个参数用于传入
一些额外的选项。该函数的后两个参数是可选的。
int watchCurrentPosition(onSuccess,onError,options):该方法用于持续监听地理位置(该方法相当于周期性地
调用getCurrentPosition()方法),该方法的3个参数的意义与前一个方法的3个参数完全相同。该方法返回一个int
类型的标示,该标示是这个“监听器”的表示ID,从而允许程序在后面调用clearWatch(watchld)来取消监听。
clearWatch(watchld):该方法用于停止持续监听地理位置。该方法的参数值就是watchCurrentPosition()方法返回的
“监听器”的标识
14.9.1.1 获取成功的回调函数
上面介绍的前两个方法的第一个形参就是获取成功的回调函数,它是一个形如function(postion){}的回调函数,该回调函数中的position
表示浏览器所获取的地理信息。
position对象包含如下两个属性。
timestamp:该属性返回获取地理位置时的时间。
coords:该属性返回一个Coordinates对象。该对象里包含了详细的地理信息。该对象包含如下属性。
longitude:返回经度值。
latitude:返回维度值。
altitude:返回高度值。
accuracy:返回经度和纬度的精度值,以米为单位。
altitudeAccuracy:返回高度的精度值,以米为单位。
speed:返回浏览器所在设备的移动速度。不能获取速度时返回null。
heading:返回浏览器所在设备移动的方向,以指向正北方向顺时针转过的角度来表示。不能获取移动方向时返回null。
timestamp:返回获取地理位置时的时间戳。
14.9.1.2 获取失败的回调函数
上面介绍的前两个方法的第二个形参就是获取失败的回调函数,它是一个形如function(error){}的回调函数,该回调函数中的error
包含了错误信息。该error对象包含如下两个属性。
code:返回错误代码。该code有如下几种情况。
1:用户拒绝了位置服务。
2:无法获取地址位置信息。
3:获取地理位置信息超时。
message:返回错误描述信息。
14.9.1.3 额外的选项
上面介绍的前两个方法的第三个形参就是获取地理信息时的额外选项。该参数应该是一个JavaScript对象,该对象支持如下属性。
enableHighAccuracy:指定是否要求高精度的地理位置信息。
timeout:指定获取地理位置信息时的超时时长。如果没有在该时间内获取到地理位置信息,将会引发错误。
maximumAge:指定地理信息的缓存时间,以毫秒为单位。