<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙NXET實戰:高德地圖定位SDK【獲取Key+獲取定位數據】(二)

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-22 18:03 ? 次閱讀

如何申請key

1、創建新應用

進入[控制臺],創建一個新應用。如果您之前已經創建過應用,可直接跳過這個步驟。

2、添加新Key

在創建的應用上點擊"添加新Key"按鈕,在彈出的對話框中,依次:輸入應用名名稱,選擇綁定的服務為“HarmonyOS平臺”,輸入AppID,如下圖所示:

注意

1個KEY只能用于一個應用(多渠道安裝包屬于多個應用),1個Key在多個應用上使用會出現服務調用失敗。

在閱讀完高德地圖API服務條款后,勾選此選項,點擊“提交”,完成 Key 的申請,此時您可以在所創建的應用下面看到剛申請的 Key 了。

如何獲取AppID

請在當前應用的Ablitiy中使用如下代碼獲取

let flag = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_SIGNATURE_INFO;
let bundleInfo = bundleManager.getBundleInfoForSelfSync(flag)
let appId = bundleInfo.signatureInfo.appId;

注意事項

  1. 獲取AppID之前需要先配置應用的簽名信息。
  2. 目前通過DevEco Studio連接云真機獲取到的appId不全,只獲取到了"包名_", 使用云真機調試高德地圖SDK時會導致鑒權不通過,正確的appId形式為:"包名_簽名信息", 例如:com.amap.demo_BGtGgVB3ASqU7ar1nHkwX4s0nIexDbEwqNrVoatUDs17GrClWC7V2/zhoYh6tFQHAd5DASWVTEAgvZfzrEGljjs=

QQ瀏覽器截圖20240320162546.png

獲取定位數據

使用定位SDK之前,需要在 config.json 文件中進行相關權限設置,確保定位功能可以正常使用。

第一步,配置module.json5

首先,聲明權限

...
 "requestPermissions": [
      {
        "name": "ohos.permission.APPROXIMATELY_LOCATION",
        "usedScene": {
          "abilities": [
            "Harmony_location_demoAbility"
          ],
          "when": "always"
        }
      },
      {
        "name": "ohos.permission.LOCATION",
        "usedScene": {
          "abilities": [
            "Harmony_location_demoAbility"
          ],
          "when": "always"
        }
      },
      {
        "name": "ohos.permission.LOCATION_IN_BACKGROUND",
        "usedScene": {
          "abilities": [
            "Harmony_location_demoAbility"
          ],
          "when": "always"
        }
      },
      {
        "name": "ohos.permission.INTERNET",
        "usedScene": {
          "abilities": [
            "Harmony_location_demoAbility"
          ],
          "when": "always"
        }
      },
      {
        "name": "ohos.permission.KEEP_BACKGROUND_RUNNING",
        "usedScene": {
          "abilities": [
            "Harmony_location_demoAbility"
          ],
          "when": "always"
        }
      }
    ]
...

第二步,向工程中添加定位開發包

從ohpm倉庫獲取定位包,依次添加依賴。

"dependencies": {
    "@amap/amap_lbs_common": "1.0.0",
    "@amap/amap_lbs_location": "1.0.0"
}

第三步,初始化定位

首先,設置Key

[獲取Key]

AMapLocationManagerImpl.setApiKey("您的key");

初始化隱私政策

AMapLocationManagerImpl.updatePrivacyShow(AMapPrivacyShowStatus.DidShow, AMapPrivacyInfoStatus.DidContain, getContext(this))
    AMapLocationManagerImpl.updatePrivacyAgree(AMapPrivacyAgreeStatus.DidAgree, getContext(this))

創建AMapLocationManagerImpl

locationManger?: AMapLocationManagerImpl;
this.locationManger = new AMapLocationManagerImpl(this.context);

動態申請相關權限

reqPermissionsFromUser(permissions: Array< Permissions >): void {
    let context: Context = getContext(this) as common.UIAbilityContext;
    let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
    // requestPermissionsFromUser會判斷權限的授權狀態來決定是否喚起彈窗
    atManager.requestPermissionsFromUser(context, permissions).then((data: PermissionRequestResult) = > {
      let grantStatus: Array< number > = data.authResults;
      let length: number = grantStatus.length;
      for (let i = 0; i < length; i++) {
        if (grantStatus[i] === 0) {
          // 用戶授權,可以繼續訪問目標操作
        } else {
          // 用戶拒絕授權,提示用戶必須授權才能訪問當前頁面的功能,并引導用戶到系統設置中打開相應的權限
          return;
        }
      }
      // 授權成功
    }).catch((err: BusinessError) = > {
      console.error(`Failed to request permissions from user. Code is ${err.code}, message is ${err.message}`);
    })
  }

最后,開始請求相關定位信息

如:連續定位

let listener: IAMapLocationListener = {
                onLocationChanged: (location) = > {
                // todo something
                }, onLocationError: (error) = > {
                // todo something
                }
              };

let options: AMapLocationOption = {
  priority: geoLocationManager.LocationRequestPriority.FIRST_FIX,
  scenario: geoLocationManager.LocationRequestScenario.UNSET,
  timeInterval: 2,
  distanceInterval: 0,
  maxAccuracy: 0,
  allowsBackgroundLocationUpdates: true,
  locatingWithReGeocode: false,
  reGeocodeLanguage: AMapLocationReGeocodeLanguage.Chinese,
  isOffset: true
}

this.locationManger?.setLocationListener(AMapLocationType.Updating,listener)
this.locationManger?.setLocationOption(AMapLocationType.Updating,options)
this.locationManger?.startUpdatingLocation()
//  停止定位
//  this.locationManger?.stopUpdatingLocation()

如需在后臺定位,則要在應用切入后臺前調用開啟后臺定位任務

this.locationManger?.startContinuousTask()

回到前臺可以停止后臺任務

this.locationManger?.stopContinuousTask()

至此就可以看到定位相關信息。也可依據參考手冊實現單次定位、最后位置等操作。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 定位
    +關注

    關注

    5

    文章

    1124

    瀏覽量

    35115
  • SDK
    SDK
    +關注

    關注

    3

    文章

    974

    瀏覽量

    44861
  • 定位數據
    +關注

    關注

    0

    文章

    3

    瀏覽量

    994
  • 鴻蒙
    +關注

    關注

    55

    文章

    1866

    瀏覽量

    42180
收藏 人收藏

    評論

    相關推薦

    鴻蒙千帆起】地圖攜手HarmonyOS NEXT,開啟智能出行新篇章

    活動。會上,地圖鴻蒙化負責人宋浩波發表了題為\"地圖
    發表于 02-02 11:09

    DIY --GPS +VB版谷歌地圖定位個人定位黑匣子

    。將自己電腦的網絡IP寫入單片機,通過GPRS模塊 上網,將定位數據發到電腦上在地圖上顯示出來。這是GPS模塊提供的測試軟件,直接接上串口就可以測試模塊的定位性能及數據。后面是我的硬件
    發表于 06-21 11:57

    【求助】將GPS獲取的經緯度發送到網上、然后再谷歌地圖上顯示具體的位置。

    我想做個定位系統,就是GPS獲取經緯度信息,然后發送到網上、最后PC端從網上下載數據,實時顯示在谷歌地圖上。實現物品防丟的功能。目前GPS獲取
    發表于 11-26 15:22

    地圖基于阿里云MaxCompute的最佳實踐

    (原ODPS)、流計算StreamCompute等服務,可以做出行線路選擇、擁堵大數據、躲避擁堵、城市熱點分布、景區推薦、商圈熱度,主要是根據用戶的定位數據,進行實時的
    發表于 02-27 12:37

    uwb室內定位系統

    解算層獲取位置、人臉對比結果和視頻聯動視頻數據,以地圖的形式實時顯示標簽的位置和標簽的攜帶者,并可以選擇顯示視頻聯動的監控畫面。 服務層 服務層包括定位引擎軟件、系統管理軟件、對內和對
    發表于 11-16 16:33

    LabVIEW定位到Word文檔標題后面的位置,獲取內容

    請問,我該如何用LabVIEW定位word文檔中標題的位置呢,我先要定位到位置后,獲取每個標題后面,一定長度的文本內容?;蛘?,誰知道,不定位的話,應該怎么去
    發表于 04-08 11:37

    #2020征文-手機#地圖組件TinyMap來啦!鴻蒙上第一個開源地圖組件?

    )優勢:開源,方便大家學習研究超級輕量化,目前僅包含3個類,適合源碼研究和學習???b class='flag-5'>高地圖和Google地圖作為地理底圖,并且可以選擇衛星影像和矢量底圖
    發表于 12-21 14:51

    UWB定位技術的特點與優勢

    帶信號,對其它無線設備干擾小。UWB定位系統特點1. 安全性 定位系統無線發射功率很低,不會對現場其它設備產生任何干擾;定位數據采用加密方式傳輸。 2. 高可靠性 網絡系統的穩定可靠是應用系統正常運行的關鍵
    發表于 09-10 16:34

    【合宙Air551G雙頻定位開發板試用體驗】+巡檢定位系統軟件設計

    ://bbs.elecfans.com/jishu_2247836_1_1.html2、云平臺解析,調用地圖API,云端顯示并標記當前位置;*3、電子圍欄(后期擴展)、平臺搭建工
    發表于 01-29 20:20

    【合宙Air551G雙頻定位開發板試用體驗】 獲取定位數據

    帶有NEMA解析功能,所以這樣直接可以解析出定位數據。我們是專業做定位產品的廠家,所以直接連接到產品上,直接看效果會比較直接的對模塊做出評估。給產品上電后,成功的獲取到了數據,通過對
    發表于 03-25 12:55

    鴻蒙應用開發的JS UI框架如何實現地圖的訪問?

    鴻蒙應用,現在分為Java UI框架和Ark UI框架,其中JS UI開發者框架Ark UI框架,現在地圖鴻蒙應用開發如何Java U
    發表于 04-28 11:44

    使用Rock-X SDK進行人臉特征點定位快速開發的過程

    和相關數據結構請參考:/RockX_SDK_V1.1.0_20191115/doc/rockx_api_doc/html/index.html初始化以上代碼加載了Rock-X的人臉檢測和人臉特征點定位
    發表于 06-29 15:08

    大彩串口屏4G應用-HTTP定位獲取天氣

    大彩串口屏4G應用-HTTP定位獲取天氣:本例程中,通過獲取天氣、定位來介紹4G的HTTP GET的應用。
    的頭像 發表于 07-22 16:40 ?1473次閱讀
    大彩串口屏4G應用-HTTP<b class='flag-5'>定位</b>和<b class='flag-5'>獲取</b>天氣

    啟英泰倫SDK獲取

    :CI110X_SDK_ALG_Application離在線SDK:CI110X_SDK_Combine_Cloud.2、SDK獲取流程第一
    的頭像 發表于 02-11 10:28 ?528次閱讀
    啟英泰倫<b class='flag-5'>SDK</b><b class='flag-5'>獲取</b>

    鴻蒙開發實例【使用高德地圖鴻蒙SDK】(一)

    使用高德地圖鴻蒙SDK的快速入門指南。
    的頭像 發表于 03-22 16:59 ?319次閱讀
    <b class='flag-5'>鴻蒙</b>開發實例【使用高德<b class='flag-5'>地圖</b><b class='flag-5'>鴻蒙</b><b class='flag-5'>SDK</b>】(一)
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>