从零开始的HTML5之旅(六)

HTML5地理定位

  HTML5 Geolocation(地理定位)用于定位用户的位置。鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的。

浏览器支持

  IE9、Firefox、Chrome、Safari以及Opera支持地理定位。对于拥有GPS的设备,定位将更加准确。



地理定位

  用getCurrentPosition()方法获得用户的位置。

getCurrentPosition(successCallback, errorCallback,PositionOptions);

  ``getCurrentPosition()方法内包含了三个对象,分别是successCallback对象、errorCallback对象、PositionOptions`对象。

successCallback对象

  successCallback对象表示获取到的用户数据位置。此对象包含了coordstimestamp两个属性。

coords属性

描述
accuracy 精确度
latitude 纬度
longitude 经度
altitude 海拔
altitudeAcuracy 海拔高度的精确度
heading 朝向
speed 速度

代码





    
    
    Document



    

此处显示坐标




errorCallback对象

  errorCallback对象表示返回的错误代码。对象中包含了message属性和code属性。

code属性

描述
unknow_error 表示不包括在其他错误代码中的错误,可以在message中查找信息。
permission_denied 表示用户拒绝浏览器获取位置信息的请求。
position unavalablf 表示网络不可用或者连接不到卫星。
timeout 表示获取超时时。必须在options中指定了timeout值时才有可能发生这种错误。

代码





    
    
    Document



    

此处显示坐标




PositionOptions属性

  PositionOptions接口不继承任何属性。数据格式为json,有3个属性。

属性 描述
enableHighAcuracy 布尔值,表示是否启用高精确度模式,如果启用这个模式,浏览器在获取位置信息时可能需要耗费更多的时间。
Timeout 整数,表示浏览器需要在指定的时间内获取位置信息,否则触发errorCallback。
maximumAge 整数/常量,表示浏览器重新获取位置信息的时间间隔。



getCurrentPosition()方法

  若成功,则 getCurrentPosition() 方法返回对象。始终会返回 latitude、longitude 以及 accuracy 属性。如果可用,则会返回其他下面的属性。

属性 描述
coords.latitude 十进制数的纬度
coords.longitude 十进制数的经度
coords.accuracy 位置精度
coords.altitude 海拔,海平面以上以米计
coords.altitudeAccuracy 位置的海拔精度
coords.heading 方向,从正北开始以度计
coords.speed 速度,以米/每秒计
timestamp 响应的日期/时间




watchPosition()方法

  Geolocation.watchPosition()方法用于注册监听器,在设备的地理位置发生改变的时候自动被调用。也可以选择特定的错误处理函数。

  该方法会返回一个ID,如果取消监听可以通过Geolocation.clearWatch()传入该ID实现取消的目的。


语法

id = navigator.geolocation.watchPosition(success[, error[, options]])

参数

参数 描述
success 成功时候的回调函数, 同时传入一个 Position对象当作参数。
error 失败时候的回调函数,可选, 会传入一个 PositionError对象当作参数。
options 一个可选的 PositionOptions对象。



你可能感兴趣的:(从零开始的HTML5之旅(六))