在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ HTML/ HTML5 地理定位
HTML5 Web 存儲
HTML5 Web SQL 數(shù)據(jù)庫
HTML5 字符編碼
HTML5 URL 編碼
HTML5 Modernizr
HTML5 快速指南
HTML5 畫布
HTML5 語法
HTML5 顏色代碼生成器
HTML5 音頻和視頻
HTML5 微數(shù)據(jù)
HTML5 標(biāo)簽參考
HTML5 在線編輯器
HTML5 表單 2.0
HTML5 概述
HTML5 SVG 教程
HTML5 驗證
有用的 HTML5 資源
HTML5 字體參考
HTML5 屬性
HTML5 新標(biāo)簽(元素)
HTML5 地理定位
HTML5 拖放
HTML5 字符實體參考
HTML5 Web Workers
HTML5 過時標(biāo)簽和屬性
HTML5 顏色名稱
HTML5 WebSockets 教程
HTML5 服務(wù)器推送事件
HTML5 事件
HTML5 MathML 教程

HTML5 地理定位

HTML5 Geolocation API 允許我們對喜歡的網(wǎng)站共享我們的位置。JavaScript 可以捕獲到緯度和經(jīng)度,還可以發(fā)送給后端服務(wù)器,然后做一些位置感知的事情,比如查找本地企業(yè)或者在地圖上顯示我們的位置。

當(dāng)前大多數(shù)瀏覽器和移動設(shè)備都支持 Geolocation API。地理定位 APIs 是作為全局 navigator 對象的一個新屬性工作的??梢园凑杖缦路绞絼?chuàng)建地理定位對象:

var geolocation = navigator.geolocation;

地理對象是一個允許組件檢索設(shè)備地理位置相關(guān)信息的服務(wù)對象。

Geolocation 方法

地理定位對象提供了下列方法:

方法 描述
getCurrentPosition()

這個方法用于檢索用戶的當(dāng)前地理位置。

watchPosition()

這個方法用于檢索設(shè)備當(dāng)前地理位置定期更新信息。

clearWatch()

這個方法用于取消 watchPosition 方法調(diào)用。

示例

下面是一個使用上述方法的示例代碼:

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

這里的 showLocation 和 errorHandler 分別是用來下一節(jié)會講述的獲取實際位置和處理錯誤的回調(diào)方法。

Location 屬性

地理定位方法 getCurrentPosition() 和 getPositionUsingMethodName() 指定了檢索位置信息的回調(diào)方法。這些方法使用一個存儲完整位置信息的 Position 對象異步調(diào)用。

這個 Position 對象指定了設(shè)備的當(dāng)前地理位置。這個位置以一組帶有方向和速度信息的地理坐標(biāo)表示。

下面的表格描述了 Position 對象的屬性。對于可選屬性,如果系統(tǒng)沒有提供值,則該屬性值為 null。

屬性 類型 描述
coords objects

表示設(shè)備的地理位置。位置以一組帶有方向和速度信息的地理坐標(biāo)表示。

coords.latitude Number

十進(jìn)制的緯度估值。值范圍為 [-90.00, +90.00]。

coords.longitude Number

十進(jìn)制的經(jīng)度固執(zhí)。值范圍為 [-180.00, +180.00]。

coords.altitude Number

【可選】 WGS-84 球面以上的海拔高度固執(zhí),以米為單位計算。

coords.accuracy Number

【可選】 以米為單位的緯度和經(jīng)度精確估值。

coords.altitudeAccuracy Number

【可選】 以米為單位的海拔高度精確估值。

coords.heading Number

【可選】 相對正北方向設(shè)備以順時針方向運動計算的當(dāng)前方向。

coords.speed Number

【可選】 以米/每秒為單位的設(shè)備當(dāng)前地面速度。

timestamp date

檢索位置信息和創(chuàng)建 Position 對象的日期時間。

示例

下面是一個使用 Position 對象的示例代碼。其中 showLocation 方法是一個回調(diào)方法:

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

處理錯誤

地理定位是復(fù)雜的。非常需要我們捕獲任意錯誤并優(yōu)雅的處理它。

地理定位方法 getCurrentPosition() 和 watchPosition() 可以使用一個提供 PositionError 對象的錯誤處理回調(diào)方法。這個對象有下列兩屬性。

屬性 類型 描述
code Number

錯誤碼。

message String

錯誤描述信息。

下面這個表格描述了 PositionError 對象可能返回的錯誤碼。

錯誤碼 常量 描述
0 UNKNOWN_ERROR

由于未知錯誤,檢索設(shè)備位置信息失敗。

1 PERMISSION_DENIED

由于應(yīng)用程序沒有權(quán)限使用位置服務(wù),檢索設(shè)備位置信息失敗。

2 POSITION_UNAVAILABLE

設(shè)備位置信息無法確定。

3 TIMEOUT

不能在給定的最大超時區(qū)間內(nèi)檢索位置信息。

示例

下面是一個使用 PositionError 對象的示例代碼。其中 errorHandler 方法是一個回調(diào)方法:

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

Position 選項

下面是 getCurrentPosition() 方法的實際語法:

getCurrentPosition(callback, ErrorCallback, options)

其中第三個參數(shù)是指定一組檢索設(shè)備地理位置選項的 PositionOptions 對象。

下列選項可以指定為第三個參數(shù):

屬性 類型 描述
enableHighAccuracy Boolean

是否想要檢索最精準(zhǔn)的位置估值。默認(rèn)值為 false。

timeout Number

timeout 屬性就是 Web 應(yīng)用程序要等待定位的毫秒數(shù)。

maximumAge Number

用于緩存位置信息的過期時間毫秒數(shù)。

示例

下面這個示例代碼展示了如何使用上面提到的方法:

function getLocation() {
   var geolocation = navigator.geolocation;
   geolocation.getCurrentPosition(showLocation, errorHandler, {maximumAge: 75000});
}
上一篇:HTML5 表單 2.0