方法
在成功时所调用的 success_callback 函数中会带有一个参数,这个参数是一个获取地理位置详细数据信息的 Position 对象参数。 Position 有两个属性 coords 和 timestamp 属性。 timestamp 属性表示获取地理位置的时间, coords 属性的值 。
属性 | 额 |
---|---|
accuracy | 当前地理位置的精确度 |
latitude | 当前地理位置的纬度 |
longitude | 当前地理位置的经度 |
altitude | 当前地理位置的海拔高度 |
altitudeAccurancy | 当前地理位置的海拔精确度(单位: m ) |
heading | 设置当前的前进方向,用正北方向的顺时针旋转角度来表示。无法获取时返回 null |
speed | 当前设置的前进速度,以 m/s 为单位,无法获取时返回值为 null |
error_callback
error_callback 和 success_callback 函数一样带有一个参数,该对象有 message 和 code 两个属性,前者表示错误信息,后者表示错误代码。
其中,错误代码( error.code )的值有 4 个,说明如下。
- 0 ( UNKNOW_ERROR ):描述未知的错误信息,表示不包括在其它错误代码中的错误,可以在 message 属性中查找错误信息
- 1 ( PERMISSION_DENIED ):用户拒绝了浏览器定位服务的请求
- 2 ( POSITION_UNAVALIABLE ):没有正确获取或者获取不到地理位置信息
- 3 ( TIMEOUT ):获取地理位置时操作过时,必须在 positionOptions 参数中指定了 timeout 值才有可能发生这种错误
positionOptions
positionOptions 的数据格式为 JSON ,它有三个可选择的属性,说明如下。
- enableHighAcuracy :它的值是一个布尔类型,表示是否启用高精确度模式,如果启用这种模式,浏览器在获取位置信息时可能需要耗费更多的时间
- timeout :它的值是一个整数,表示浏览器需要在指定的时间内获取位置信息,否则触发 error_callback 函数中的错误
- maximumAge :它是一个整数或者常量,表示浏览器重新获取位置信息的时间间隔
watchCurrentPosition() 方法
watchCurrentPosition() 方法可以实时获取或者检测用户的地理位置信息,它能像追踪器一样时刻监视用户的位置,只要发生变化,浏览器就会触发 watchCurrentPosition() 方法中的回调函数。
watchCurrentPosition() 方法中同样包含三个参数,这三个参数的说明与 getCurrentPosition() 完全一样。不同的地方就是返回值,它类似于内置的延迟函数 setTimeout() 或者间隔函数 setInterval() ,返回一个 watchID ,可以被清除掉。
clearWatch() 方法会接收一个 watchPosition 返回的 watchId ,清除对用户位置的循环监视。
navigator.geolocation.clearWatch(watchId);
watchId 参数并不是必需的,如果不向该方法中传递参数,则表示清除所有的 watchPosition 对象。
经纬度坐标可以用以下两种方式表示:
- 十进制格式,如 39.172 22
- DMS 角度格式,如 39°20'