跳到主要内容

方法

在成功时所调用的 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'