开发手册 欢迎您!
软件开发者资料库

HTML5 - 地理位置

HTML5地理位置 - 通过简单简单的步骤学习HTML 5,其中包含2D画布,音频,视频,新语义元素,地理位置,持久本地存储,Web存储,Web SQL,Forms 2.0,微数据和拖放,IndexedDB,Web消息传递的示例,CORS,Web RTC,画布绘制矩形,Web存储,服务器发送事件,Web画布,Web工作者,幻灯片。

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

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

var geolocation = navigator.geolocation;

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

地理定位方法

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

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

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

2watchPosition()

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

3clearWatch()

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

示例

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

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

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

位置属性

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

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

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

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

示例

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

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

处理错误

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

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

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

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

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

示例

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

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

职位选项

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

 getCurrentPosition(callback, ErrorCallback, options)

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

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

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

示例

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

function getLocation() {   var geolocation = navigator.geolocation;   geolocation.getCurrentPosition(showLocation, errorHandler, {maximumAge: 75000});}