最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

cordova+vue+webapp使用html5獲取地理位置的方法

 更新時間:2019年07月06日 09:29:38   投稿:zx  
這篇文章主要介紹了

1.在HTML5中使用Geolocation.getCurrentPosition()方法來獲取地理位置。

語法:

navigator.geolocation.getCurrentPosition(success, error, options)

參數(shù):

  •  success: 成功得到位置信息時的回調(diào)函數(shù),使用Position 對象作為唯一的參數(shù)。
  • error: 獲取位置信息失敗時的回調(diào)函數(shù),使用 PositionError 對象作為唯一的參數(shù),這是一個可選項。
  • options:一個可選的PositionOptions 對象,包含以下3個參數(shù)。
    • enableHighAccuracy 是一個Boolean值,用來表明應用是否使用其最高精度來表示結果,默認為false。
    • timeout 是一個正的long值,表明的是設備必須在多長時間(單位毫秒)內(nèi)返回一個位置,默認是Infinity。
    • maximumAge 是一個正的long值,表明可以返回多長時間(即最長年齡,單位毫秒)內(nèi)的可獲取的緩存位置。如果設置為 0,說明設備不能使用一個緩存位置,而且必須去獲取一個真實的當前位置。如果設置為 Infinity ,那么不管設置的最長年齡是多少,設備都必須返回一個緩存位置。默認值:0

2.success - 成功得到位置信息時的回調(diào)函數(shù)

navigator.geolocation.getCurrentPosition(function(position)) {
  // 獲取成功時的的處理
  //參數(shù)position是地理位置對象
}

position中返回的信息如下圖:

  • accuracy 獲取到的緯度或者經(jīng)度的精度(以米為單位)
  • altitude 當前地理位置的海撥高度(不能獲取為null)
  • altitudeAccurancy 獲取到的海撥高度的經(jīng)度(以米為單位)
  • heading 設備移動的方向(以度為單位)
  • latitude 當前地理位置的緯度
  • longitude 當前地理位置的經(jīng)度
  • speed 設備的前進速度(以米/秒為單位,不能獲取時為null)
  • timestamp 獲取地理位置信息時的時間

3.error - 獲取位置信息失敗時的回調(diào)函數(shù)

navigator.geolocation.getCurrentPosition(function(position){
   // 獲取成功時的的處理;
  //參數(shù)position是地理位置對象
},function(error)) {
  // 獲取失敗時的的處理;
}

error中返回的信息如下圖

code屬性有以下值:

- 1 地理位置信息的獲取失敗,因為該頁面沒有獲取地理位置信息的權限。
- 2 地理位置獲取失敗,因為至少有一個內(nèi)部位置源返回一個內(nèi)部錯誤。
- 3 獲取地理位置超時,通過定義PositionOptions.timeout 來設置獲取地理位置的超時時長。

message 返回一個開發(fā)者可以理解的 DOMString 來描述錯誤的詳細信息。

4.使用Geolocation.getCurrentPosition()注意事項:

  1. 本地項目中在Chrome瀏覽器中運行時,無法獲取到經(jīng)緯度信息,原因是Chrome已不再支持非安全域的
  2. 瀏覽器定位請求,只有在https下才可使用定位。在IE、Eage、Firefox下親測可以獲取的經(jīng)緯度信息。獲取到的GPS經(jīng)緯度信息在百度地圖展示位置會與實際位置不同,是因為百度對外接口的坐標系為BD09
  3. 坐標系,并不是GPS采集的真實經(jīng)緯度,在使用百度地圖JavaScript API服務前,需先將非百度坐標通過坐標轉(zhuǎn)換接口轉(zhuǎn)換成百度坐標。(轉(zhuǎn)換方法詳見下文)

5.使用Geolocation.getCurrentPosition()獲取經(jīng)緯度信息,并轉(zhuǎn)換為百度坐標并進行逆地址解析:

以Vue項目為例,首先根目錄index.html中引入百度API文件,如下圖:

獲取位置,標記marker并進行逆地址解析代碼如下:

    // 1 查詢當前位置信息
    getPosition() {
      navigator.geolocation.getCurrentPosition(this.getPositionSuccess, this.getPositionError, {"enableHighAccuracy": true, "timeout": 5000, "maximumAge": 5000})
    },
    // 1-1 查詢當前位置信息成功
    getPositionSuccess(position) {
      this.latitude = String(position.coords.latitude)
      this.longitude = String(position.coords.longitude)
      let ggPoint = new BMap.Point(this.longitude, this.latitude)
      let pointArr = []
      pointArr.push(ggPoint)
      let convertor = new BMap.Convertor()
      // 坐標轉(zhuǎn)換
      convertor.translate(pointArr, 1, 5, this.translateCallback)
    },
    // 1-2 查詢當前位置信息失敗
    getPositionError(error) {
      this.$toast({
        message: `獲取地理位置失敗請重試~`,
        duration: 1000
      })
    },
     // 坐標轉(zhuǎn)換回調(diào)
    translateCallback(data) {
      if (data.status === 0) {
        // 在地圖上標注marker
        let marker = new BMap.Marker(data.points[0])
        map.addOverlay(marker)
        map.panTo(data.points[0])
        // 逆地址解析
        let myGeo = new BMap.Geocoder()
        let that = this
        myGeo.getLocation(data.points[0], function(result){   
          if (result){
            // 獲取逆地址解析結果
            that.clockSite = result.address
          }   
        })
      }
    },

坐標轉(zhuǎn)換convertor.translate()方法說明:

語法:

convertor.translate(coords, from, to, fn)

參數(shù):

  • coords:需轉(zhuǎn)換的源坐標
  • from: 源坐標類型 詳見:[類型詳情][4]
  • to: 目標坐標類型 詳見:[類型詳情][5]
  • fn: 轉(zhuǎn)換結果回調(diào)

6.使用cordova+vue開發(fā)webapp中定位解決方法:

在cordova中安裝Geolocation插件后,方可在生成的app中獲取到地理位置信息,運行如下命令即可:

cordova plugin add cordova-plugin-geolocation

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Vue el-table表格第一列序號與復選框hover切換方式

    Vue el-table表格第一列序號與復選框hover切換方式

    這篇文章主要介紹了Vue el-table表格第一列序號與復選框hover切換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • vue+elementui實現(xiàn)點擊table中的單元格觸發(fā)事件--彈框

    vue+elementui實現(xiàn)點擊table中的單元格觸發(fā)事件--彈框

    這篇文章主要介紹了vue+elementui實現(xiàn)點擊table中的單元格觸發(fā)事件--彈框,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vue實現(xiàn)文件上傳

    vue實現(xiàn)文件上傳

    這篇文章主要為大家詳細介紹了vue實現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue3如何利用xlsx、xlsx-js-style導出Excel表格使用(適合新手)

    Vue3如何利用xlsx、xlsx-js-style導出Excel表格使用(適合新手)

    在Vue項目中導出Excel表格是常見的功能,特別是在后臺管理系統(tǒng)中,為了方便用戶將大量數(shù)據(jù)保存為本地文件,這篇文章主要給大家介紹了關于Vue3如何利用xlsx、xlsx-js-style導出Excel表格使用的相關資料,需要的朋友可以參考下
    2024-06-06
  • 詳解vue mixins和extends的巧妙用法

    詳解vue mixins和extends的巧妙用法

    vue提供了mixins、extends配置項,最近使用中發(fā)現(xiàn)很好用。下面小編通過本文給大家介紹下vue中 mixins和extends的巧妙用法,需要的朋友參考下吧
    2017-12-12
  • vuex state中的數(shù)組變化監(jiān)聽實例

    vuex state中的數(shù)組變化監(jiān)聽實例

    今天小編就為大家分享一篇vuex state中的數(shù)組變化監(jiān)聽實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Vue 的 v-model用法實例

    Vue 的 v-model用法實例

    這篇文章主要介紹了Vue 的 v-model用法實例,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下
    2020-11-11
  • 一文帶你搞懂Vue3?defineModel中的雙向綁定

    一文帶你搞懂Vue3?defineModel中的雙向綁定

    隨著vue3.4版本的發(fā)布,defineModel也正式轉(zhuǎn)正了,它可以簡化父子組件之間的雙向綁定,是目前官方推薦的雙向綁定實現(xiàn)方式,下面就跟隨小編一起深入了解一下defineModel的使用吧
    2024-02-02
  • Vue基礎之MVVM,模板語法和數(shù)據(jù)綁定

    Vue基礎之MVVM,模板語法和數(shù)據(jù)綁定

    這篇文章主要為大家介紹了Vue之MVVM,模板語法和數(shù)據(jù)綁定,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Vue中使用event的坑及解決event is not defined

    Vue中使用event的坑及解決event is not defined

    這篇文章主要介紹了Vue中使用event的坑及解決event is not defined,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03

最新評論

木里| 定兴县| 普兰县| 五大连池市| 天全县| 额尔古纳市| 开封县| 两当县| 新宁县| 余庆县| 班玛县| 哈尔滨市| 潞西市| 杭州市| 渝中区| 泊头市| 苍南县| 古丈县| 宁陵县| 梨树县| 准格尔旗| 嘉兴市| 西乌| 吴堡县| 郸城县| 宁明县| 巢湖市| 方正县| 马尔康县| 肥城市| 阿拉尔市| 金沙县| 虹口区| 巴青县| 阜南县| 古丈县| 甘孜| 明溪县| 陇西县| 沁阳市| 彰化市|