本章主要是介绍geolocation API来获取用户的地理位置信息。附带页面上使用Google地图的基本方法(这我就不讲了,google有很好的API使用说明书)。 Geolocation是window.navigator对象新增加的属性。Geolocation API存在三个方法。 1.获取地理位置 2.持续监视当前地理位置的信息 3.停止获取用户的地理位置信息 获取当前地理位置信息1.可是使用getCurrentPosition方法来获取用户地理位置信息,使用方法是: 1 | void getCurrentPosition(onSuccess, onError,options); |
onSuccess是返回获取地理位置成功时做什么;onError是返回获取地理位置失败时;oprtions是一些可选属性(书上这么说的,我知道的还有一个超时的属性)。
[backcolor=rgb(248, 248, 248) !important]02 | navigator.geolocation.getCurrentPosition( |
[backcolor=rgb(248, 248, 248) !important]
05 | var latitude = position.coords.latitude;//获取当前位置的纬度 |
[backcolor=rgb(248, 248, 248) !important]06 | var longitude = position.coords.longitude;//获取当前位置的精度 |
07 | document.getElementById('map').value = '纬度:'+latitude+'精度:'+longitude; |
[backcolor=rgb(248, 248, 248) !important]
[backcolor=rgb(248, 248, 248) !important]
11 | var errorType={1:'位置服务器拒绝',2:'获取不到位置',3:'获取信息超时'}; |
[backcolor=rgb(248, 248, 248) !important]12 | alert(errorType[error.code]+":获取地理位置错误,请检查您的网络是否通畅!"); |
[backcolor=rgb(248, 248, 248) !important]
[backcolor=rgb(248, 248, 248) !important]16 | /*设置缓存有效时间是2分钟,单位是毫秒*/ |
[backcolor=rgb(248, 248, 248) !important]
[backcolor=rgb(248, 248, 248) !important]
如果获取地理位置成功的话,position有这样几个属性: latitude 当前地理位置的纬度 longitude 当前地理位置的精度 altitude 当前海拔高度 不能获取时为null accuracy 获取的纬度或经度的精度(以米为单位) altitudeAccurancy 获取海拔高度的精度(以米为单位) heading 设备的前进方向。用面朝正北方的顺时针旋转角度来表示(不能获取时为null) speed 设备的前进速度(单位:米/秒) times**p 获取地理时间
如果获取地理位置失败的话,Error对象有以下属性: code属性:有三个值(1.用户拒绝了位置服务 2.获取不到位置信息 3.获取信息超时错误) (还没弄明白,后面是书的原文)message属性:包含了一个字符串,在该字符串中包含了错误信息
再来看看最后一个可以省略参数包含那些属性 enableHighAccuracy 要求高精度的地理位置,这个参数在很多设备上没有用,所以大多数把设为默认 maximumAge 对地理位置的获取操作做一个超时限制(单位毫秒) 持续监视当前地理位置信息使用watchPosition方法来持续获取用户信息当前地理位置,它会定期自动获取,该方法定义如下: 1 | int watchCurrentPosition(pnSuccess,onError,options); |
该方法三个参数的说明和使用方法和getCurrentPosition方法一样。返回一个数字,这个数字的使用方法与javasctipt脚本中setInterval方法的返回值参数类似。 停止获取用户的地理位置信息可以使用 1 | vodi clearWatch(watchId); |
watchId是调用上面的getCurrentPosition方法监视时返回的参数。
|