<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Geolocation API Geolocation API 用于獲取用戶的地理位置。 由于該功能涉及用戶隱私,所以瀏覽器會提示用戶,是否同意給出地理位置,用戶可能會拒絕。另外,這個 API 只能在 HTTPS 環境使用。 瀏覽器通過`navigator.geolocation`屬性提供該 API。 ## Geolocation 對象 `navigator.geolocation`屬性返回一個 Geolocation 對象。該對象具有以下三個方法。 - `Geolocation.getCurrentPosition()`:返回一個 Position 對象,表示用戶的當前位置。 - `Geolocation.watchPosition()`:指定一個監聽函數,每當用戶的位置發生變化,就執行該監聽函數。 - `Geolocation.clearWatch()`:取消`watchPosition()`方法指定的監聽函數。 ### Geolocation.getCurrentPosition() `Geolocation.getCurrentPosition()`方法用于獲取用戶的位置。 ```javascript navigator.geolocation.getCurrentPosition(success, error, options) ``` 該方法接受三個參數。 - `success`:用戶同意給出位置時的回調函數,它的參數是一個 Position 對象。 - `error`:用戶拒絕給出位置時的回調函數,它的參數是一個 PositionError 對象。該參數可選。 - `options`:參數對象,該參數可選。 Position 對象有兩個屬性。 - `Position.coords`:返回一個 Coordinates 對象,表示當前位置的坐標。 - `Position.timestamp`:返回一個對象,代表當前時間戳。 PositionError 對象主要有兩個屬性。 - `PositionError.code`:整數,表示發生錯誤的原因。`1`表示無權限,有可能是用戶拒絕授權;`2`表示無法獲得位置,可能設備有故障;`3`表示超時。 - `PositionError.message`:字符串,表示錯誤的描述。 參數對象`option`可以指定三個屬性。 - `enableHighAccuracy`:布爾值,是否返回高精度結果。如果設為`true`,可能導致響應時間變慢或(移動設備的)功耗增加;反之,如果設為`false`,設備可以更快速地響應。默認值為`false`。 - `timeout`:正整數,表示等待查詢的最長時間,單位為毫秒。默認值為`Infinity`。 - `maximumAge`:正整數,表示可接受的緩存最長時間,單位為毫秒。如果設為`0`,表示不返回緩存值,必須查詢當前的實際位置;如果設為`Infinity`,必須返回緩存值,不管緩存了多少時間。默認值為`0`。 下面是一個例子。 ```javascript var options = { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 }; function success(pos) { var crd = pos.coords; console.log(`經度:${crd.latitude}`); console.log(`緯度:${crd.longitude}`); console.log(`誤差:${crd.accuracy} 米`); } function error(err) { console.warn(`ERROR(${err.code}): ${err.message}`); } navigator.geolocation.getCurrentPosition(success, error, options); ``` ### Geolocation.watchPosition() `Geolocation.watchPosition()`對象指定一個監聽函數,每當用戶的位置發生變化,就是自動執行這個函數。 ```javascript navigator.geolocation.watchPosition(success[, error[, options]]) ``` 該方法接受三個參數。 - `success`:監聽成功的回調函數,該函數的參數為一個 Position 對象。 - `error`:該參數可選,表示監聽失敗的回調函數,該函數的參數是一個 PositionError 對象。 - `options`:該參數可選,表示監聽的參數配置對象。 該方法返回一個整數值,表示監聽函數的編號。該整數用來供`Geolocation.clearWatch()`方法取消監聽。 下面是一個例子。 ```javascript var id; var target = { latitude : 0, longitude: 0 }; var options = { enableHighAccuracy: false, timeout: 5000, maximumAge: 0 }; function success(pos) { var crd = pos.coords; if (target.latitude === crd.latitude && target.longitude === crd.longitude) { console.log('恭喜,你已經到達了指定位置。'); navigator.geolocation.clearWatch(id); } } function error(err) { console.warn('ERROR(' + err.code + '): ' + err.message); } id = navigator.geolocation.watchPosition(success, error, options); ``` ### Geolocation.clearWatch() `Geolocation.clearWatch()`方法用來取消`watchPosition()`方法指定的監聽函數。它的參數是`watchPosition()`返回的監聽函數的編號。 ```javascript navigator.geolocation.clearWatch(id); ``` 使用方法的例子見上一節。 ## Coordinates 對象 Coordinates 對象是地理位置的坐標接口,`Position.coords`屬性返回的就是這個對象。 它有以下屬性,全部為只讀屬性。 - `Coordinates.latitude`:浮點數,表示緯度。 - `Coordinates.longitude`:浮點數,表示經度。 - `Coordinates.altitude`:浮點數,表示海拔(單位:米)。如果不可得,返回`null`。 - `Coordinates.accuracy`:浮點數,表示經度和緯度的精度(單位:米)。 - `Coordinates.altitudeAccuracy`:浮點數,表示海拔的精度(單位:米)。返回`null`。 - `Coordinates.speed`:浮點數,表示設備的速度(單位:米/秒)。如果不可得,返回`null`。 - `Coordinates.heading`:浮點數,表示設備前進的方向(單位:度)。方向按照順時針,北方是0度,東方是90度,西方是270度。如果`Coordinates.speed`為0,`heading`屬性返回`NaN`。如果設備無法提供方向信息,該屬性返回`null`。 下面是一個例子。 ```javascript navigator.geolocation.getCurrentPosition( function (position) { let lat = position.coords.latitude; let long = position.coords.longitude; console.log(`緯度:${lat.toFixed(2)}`); console.log(`經度:${long.toFixed(2)}`); }); ``` ## 參考鏈接 - [Geolocation API](https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API), by MDN
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看