国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

uniapp開發(fā)小程序獲取定位信息(騰訊地圖)

這篇具有很好參考價值的文章主要介紹了uniapp開發(fā)小程序獲取定位信息(騰訊地圖)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

定位一直是一個讓人頭疼的問題,不是這個有問題就是那里有問題。這里結合我多方查找和實際運行,獲得的一些經(jīng)驗給予分享。

怎么進行定位?基本流程是:

1.去騰訊位置服務的控制那里創(chuàng)建一個應用

騰訊位置服務 - 立足生態(tài),連接未來 (qq.com)

uni-app 小程序獲取精準位置方案,uni-app

2.添加一個key,并開通WebServiceAPI服務

這個key是到時候用來定位的標識(必要的)。開發(fā)的哪種就選擇哪種就行。

uni-app 小程序獲取精準位置方案,uni-app

uni-app 小程序獲取精準位置方案,uni-app

3.下載微信jssdk(這里會用到逆地址解析等等)

微信小程序JavaScript SDK | 騰訊位置服務 (qq.com)

點擊去下載其中之一即可。

uni-app 小程序獲取精準位置方案,uni-app

?下載好后,我將它放在這個文件夾中進行使用,放在其它文件夾也行(不一定跟我一樣),看自己習慣,只要到時候導入路徑寫對。

uni-app 小程序獲取精準位置方案,uni-app

4.去小程序后臺管理開啟安全域名

小程序 (qq.com)

uni-app 小程序獲取精準位置方案,uni-app

uni-app 小程序獲取精準位置方案,uni-app

將這個域名添加進去

	
https://apis.map.qq.com

uni-app 小程序獲取精準位置方案,uni-app

5.修改配置manifest.json文件

將位置接口勾選了

uni-app 小程序獲取精準位置方案,uni-app

還要修改其源碼,將以下這段代碼添加:

"permission" : {
            "scope.userLocation" : {
                "desc" : "為了您更好的體驗,請確認獲取您的位置信息"
            }
        },
        "requiredPrivateInfos" : [
            "getLocation",
            "chooseLocation",
            "onLocationChange",
            "startLocationUpdateBackground"
        ]

具體在這里下面添加:?

uni-app 小程序獲取精準位置方案,uni-app

6.在使用到的頁面引入sdk

import QQMapWX from "../../common/qqmap-wx-jssdk.js"

不過這里有個坑,這樣導入會報錯,我查閱了一下,使用require導入也不行,具體是這樣操作之后就可以了。

找到剛才你下載的sdk源文件,打開它滑倒最下面,將

module.exports = QQMapWX;注釋掉,換成

export default QQMapWX;

uni-app 小程序獲取精準位置方案,uni-app

7.使用uni.getLocation獲取經(jīng)緯度信息給QQMapWX實例進行使用

uni.getLocation(OBJECT) | uni-app官網(wǎng) (dcloud.net.cn)

uni.getLocation(OBJECT)

獲取當前的地理位置、速度。

OBJECT 參數(shù)說明

參數(shù)名 類型 必填 說明 平臺差異說明
type String 默認為 wgs84 返回 gps 坐標,gcj02 返回國測局坐標,可用于?uni.openLocation?和 map 組件坐標,App 和 H5 需配置定位 SDK 信息才可支持 gcj02。
altitude Boolean 傳入 true 會返回高度信息,由于獲取高度需要較高精確度,會減慢接口返回速度 抖音小程序、飛書小程序、支付寶小程序不支持
geocode Boolean 默認false,是否解析地址信息 僅App平臺支持(安卓需指定 type 為 gcj02 并配置三方定位SDK)
highAccuracyExpireTime Number 高精度定位超時時間(ms),指定時間內返回最高精度,該值3000ms以上高精度定位才有效果 App (3.2.11+)、H5 (3.2.11+)、微信小程序 (基礎庫 2.9.0+)
timeout String 默認為 5,定位超時時間,單位秒 僅飛書小程序支持
cacheTimeout Number 定位緩存超時時間,單位秒;每次定位緩存當前定位數(shù)據(jù),并記下時間戳,當下次調用在cacheTimeout之內時,返回緩存數(shù)據(jù) 僅飛書小程序、支付寶小程序支持
accuracy String 默認為 high,指定期望精度,支持 high,best。當指定 high 時,期望精度值為100m,當指定 best 時期望精度值為20m。當定位得到的精度不符合條件時,在timeout之前會繼續(xù)定位,嘗試拿到符合要求的定位結果 僅飛書小程序支持
isHighAccuracy Boolean 開啟高精度定位 App (3.4.0+)、H5 (3.4.0+)、微信小程序 (基礎庫 2.9.0+)
success Function 接口調用成功的回調函數(shù),返回內容詳見返回參數(shù)說明。
fail Function 接口調用失敗的回調函數(shù)
complete Function 接口調用結束的回調函數(shù)(調用成功、失敗都會執(zhí)行)

success 返回參數(shù)說明

參數(shù) 說明
latitude 緯度,浮點數(shù),范圍為-90~90,負數(shù)表示南緯
longitude 經(jīng)度,浮點數(shù),范圍為-180~180,負數(shù)表示西經(jīng)
speed 速度,浮點數(shù),單位m/s
accuracy 位置的精確度
altitude 高度,單位 m
verticalAccuracy 垂直精度,單位 m(Android 無法獲取,返回 0)
horizontalAccuracy 水平精度,單位 m
address 地址信息(僅App端支持,需配置geocode為true)

address 地址信息說明

屬性 類型 描述 說明
country String 國家 如“中國”,如果無法獲取此信息則返回undefined
province String 省份名稱 如“北京市”,如果無法獲取此信息則返回undefined
city String 城市名稱 如“北京市”,如果無法獲取此信息則返回undefined
district String 區(qū)(縣)名稱 如“朝陽區(qū)”,如果無法獲取此信息則返回undefined
street String 街道信息 如“酒仙橋路”,如果無法獲取此信息則返回undefined
streetNum String 獲取街道門牌號信息 如“3號”,如果無法獲取此信息則返回undefined
poiName String POI信息 如“電子城.國際電子總部”,如果無法獲取此信息則返回undefined
postalCode String 郵政編碼 如“100016”,如果無法獲取此信息則返回undefined
cityCode String 城市代碼 如“010”,如果無法獲取此信息則返回undefined

示例

uni.getLocation({
	type: 'wgs84',
	success: function (res) {
		console.log('當前位置的經(jīng)度:' + res.longitude);
		console.log('當前位置的緯度:' + res.latitude);
	}
});

使用type:'gcj02?'會準確一些。

以下是完整demo代碼,其中參考了這位老哥的文章【uniapp小程序實戰(zhàn)】—— 使用騰訊地圖獲取定位_uniapp 騰訊地圖-CSDN博客

<template>
  <view class="content">
    <view class="address" @click="getposition">
      獲取定位
    </view>
    當前的定位是:{{position}}
  </view>
</template>

<script>
  import QQMapWX from "../../common/qqmap-wx-jssdk.js"
  export default {
    data() {
      return {
        title: 'Hello',
        position:''
      }
    },
    methods: {
      async getposition() {
        const location = await this.getLocationInfo()
        console.log("lo",location)
        this.position = location.formatted_addresses
        console.log("po",this.position)
      },
      async getLocationInfo() {
        return new Promise((resolve) => {
          let location = {
            longitude: 0,
            latitude: 0,
            province: "",
            city: "",
            area: "",
            street: "",
            address: "",
            formatted_addresses:""
          };
          // 使用uni.getLocation獲取經(jīng)緯度
          uni.getLocation({
            type: "gcj02",
            isHighAccuracy: true,
            success(res) {
              location.longitude = res.longitude;
              location.latitude = res.latitude;
              // 創(chuàng)建實例
              const qqmapsdk = new QQMapWX({
                key: 'ONXBZ-6G2L3-7OT3O-ODZDC-K35HK-5KBF5' //這里填寫自己申請的key
              });
              // 使用騰訊的逆地址解析
              qqmapsdk.reverseGeocoder({
                location,
                success(response) {
                  console.log("成功!",response.result)
                  let info = response.result;
                  console.log(info);
                  location.province = info.address_component.province;
                  location.city = info.address_component.city;
                  location.area = info.address_component.district;
                  location.street = info.address_component.street;
                  location.address = info.address;
                  location.formatted_addresses = info.formatted_addresses.standard_address
                  resolve(location);
                },
              });
            },
            fail(err) {
              console.log(err)
              resolve(location);
            },
          });
        });
      }
    }
  }
</script>

<style scoped>
  .address{
    width: 50px;
    height: 50px;
    background-color: aqua;
  }
</style>

8.為了防止不同步配置,在微信小程序開發(fā)者平臺檢查一下,如果沒有同步過來可以關了重新編譯。

uni-app 小程序獲取精準位置方案,uni-app

點擊獲取定位,能夠成功獲取到定位信息。?

uni-app 小程序獲取精準位置方案,uni-app?具體返回的json文件可以點開這里查看保存下來,因為請求的騰訊api每天的額度有上限(具體額度在下面有說明),雙擊打開保存下來可以參考使用。

uni-app 小程序獲取精準位置方案,uni-app

9.可能存在位置發(fā)生偏移(不準確)的問題

我將獲取到的經(jīng)緯度拿去坐標拾取器里面復原位置是準確的,也就是說經(jīng)緯度對應逆地址解析的位置是正確的,問題出現(xiàn)在獲取到的經(jīng)緯度不準確。綜合來看,就是uni.getLocation的問題。

uni-app 小程序獲取精準位置方案,uni-app

uni-app 小程序獲取精準位置方案,uni-app

為此,查看了一下其它文章,在編輯器中獲取的定位信息確實是有偏差,我這里就去真機調試了一番,我這里的結果是真機調試的位置誤差小于100,而在編輯器中卻是有2公里左右的誤差。具體的解決方案有待討論。 (比較菜,暫時找不到方案解決)

uni-app 小程序獲取精準位置方案,uni-app

10.存在真機調試getLocation報錯

真機調試控制臺窗口

uni-app 小程序獲取精準位置方案,uni-app

我也是多次幾次才成功的! (這個位置就比較準確)

?uni-app 小程序獲取精準位置方案,uni-app

報錯的原因可能是:

uni-app 小程序獲取精準位置方案,uni-app

也就是說30秒內僅一次有效。??

11. 調用額度說明

具體是這個模塊

uni-app 小程序獲取精準位置方案,uni-app

這里為接口分配額度,普通開發(fā)者只有最高每天10000的額度,升級為企業(yè)級會多一些。

uni-app 小程序獲取精準位置方案,uni-app

uni-app 小程序獲取精準位置方案,uni-app

uni-app 小程序獲取精準位置方案,uni-app

調用了多少,可以在這里看到,這里主要使用逆地址解析接口:

uni-app 小程序獲取精準位置方案,uni-app?

以上就是使用騰訊地圖進行定位的完整過程,其它方案如果有好的,也歡迎分享交流。文章來源地址http://www.zghlxwxcb.cn/news/detail-836534.html

到了這里,關于uniapp開發(fā)小程序獲取定位信息(騰訊地圖)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包