HTML5 - 地理位置

HTML5 Geolocation API可让您与喜爱的网站分享您的位置信息. JavaScript可以捕获您的纬度和经度,并可以发送到后端网络服务器并执行奇特的位置感知功能,例如查找本地商家或在地图上显示您的位置.

今天大多数浏览器和移动设备支持Geolocation API.地理定位API使用全局导航器对象的新属性,即.地理定位对象,可以创建如下 :

var geolocation = navigator.geolocation;

地理位置对象是一个服务对象,允许小部件检索有关设备地理位置的信息.

地理定位方法

地理定位对象提供以下方法 :

Sr.No. 方法&描述
1 getcurrentPosition()

此方法检索用户的当前地理位置.

2 watchPosition()

此方法检索有关设备当前地理位置的定期更新.

3 clearWatch()

此方法取消正在进行的watchPosition调用.

示例

以下是使用任何一个的示例代码上面的方法 :

function getLocation() {
   var geolocation = navigator.geolocation;
   geolocation.getcurrentPosition(showLocation, errorHandler);
}

这里showLocation和errorHandler是回调方法,用于获取实际位置,如下一节所述,并处理错误,如果有任何.

位置属性

地理位置方法getcurrentPosition()和getPositionUsingMethodName()指定检索位置信息的回调方法.这些方法与对象位置异步调用,该对象存储完整的位置信息.

位置对象指定当前的地理位置装置.该位置表示为一组地理坐标以及有关航向和速度的信息.

下表描述了Position对象的属性.对于可选属性,如果系统无法提供值,则属性的值设置为null.

属性 输入 描述
coords objects 指定设备的地理位置.该位置表示为一组地理坐标以及有关航向和速度的信息.
coords.latitude Number 以十进制度数指定纬度估计值.值范围是[-90.00,+ 90.00].
coords.longitude Number 指定经度估算十进制度.值范围是[-180.00,+ 180.00].
coords.altitude Number [可选]指定高度估计值以米为单位,高于WGS 84椭圆体.
coords.accuracy Number [可选]指定以米为单位的纬度和经度估计的准确度.
coords.altitudeaccuracy Number [可选]指定准确度以米为单位的高度估计值.
coords .heading Number [可选]指定设备当前的移动方向,以相对于真北的顺时针方向计数.
coords.speed Number [可选]指定设备的当前地面速度,单位为米/秒.
timestamp date 指定检索位置信息和创建Position对象的时间.

示例

以下是使用Position对象的示例代码.这里showLocation方法是一个回调方法 :

function showLocation( position ) {
   var latitude = position.coords.latitude;
   var longitude = position.coords.longitude;
   ...
}

处理错误

地理定位很复杂,而且非常多需要捕获任何错误并正常处理它.

地理位置方法getcurrentPosition()和watchPosition()使用错误处理程序回调方法,该方法提供 PositionError 对象这个对象有以下两个属性 :

物业 类型 描述
code 数字 包含错误的数字代码.
message 字符串 包含人类可读的错误描述.

下表描述了PositionError对象中返回的可能错误代码.

代码 常量 描述
0 UNKNOWN_ERROR 由于未知错误,该方法无法检索设备的位置.
1 PERMISSION_DENIED 该方法无法检索设备的位置,因为该应用程序无权使用位置服务.
2 POSITION_UNAVAILABLE 无法确定设备的位置.
3 TIMEOUT 该方法无法在指定的最大超时间隔内检索位置信息.

示例

以下是使用PositionError对象的示例代码.这里errorHandler方法是一个回调方法 :

function errorHandler( err ) {
   
   if (err.code == 1) {
      
      // access is denied
   }
   ...
}

职位选项

以下是getcurrentPosition()方法的实际语法 :

 getcurrentPosition(callback, ErrorCallback, options)

这里的第三个参数是 PositionOptions 对象,它指定了一组用于检索设备地理位置的选项.

以下是可以指定为第三个参数的选项;

Property 类型 描述
enableHighaccuracy Boolean 指定小部件是否希望获得最准确的位置估计.默认情况下,这是假的.
timeout Number 超时属性是您的Web应用程序愿意等待某个职位的毫秒数.
maximumAge Number 指定缓存位置信息的到期时间(以毫秒为单位).

示例

以下示例代码显示如何使用上述方法 :

function getLocation() {
   var geolocation = navigator.geolocation;
   geolocation.getcurrentPosition(showLocation, errorHandler, {maximumAge: 75000});
}
本文链接:https://www.f2er.com/3188905.html