【HarmonyOS 5】Map Kit 地圖服務之應用內地圖加載

#HarmonyOS SDK應用服務,#Map Kit,#應用內地圖

目錄

前期準備

AGC 平臺創建項目并創建APP ID

生成調試證書

生成應用證書 p12 與簽名文件 csr

獲取?cer 數字證書文件

獲取?p7b?證書文件

配置項目簽名

項目開發?

配置Client ID

開通地圖服務

配置簽名證書指紋?

地圖展示

導入 Map Kit 相關模塊

初始化地圖

創建圖釘(示例)

其他

獲取設備 UDID


在移動端應用開發過程中,應用內地圖使用也較為頻繁。無論是出行導航、生活服務,還是社交娛樂類應用,精準且高效的地圖加載都能為用戶提供更加直觀、便捷的服務。本文將重點介紹鴻蒙應用內地圖加載的配置與開發要點, 更多地圖相關接口操作還需查看官方接口文檔:文檔中心。

使用 Map Kit 地圖服務時前期準備工作較為耗時,當項目完成配置后,加載 MapComponent(地圖組件)并配合相關接口的使用即可完成應用內地圖的展示。本期完整demo也已提交至Gitee:應用內地圖加載: 鴻蒙5.0,應用內地圖加載示例。

應用內地圖

前期準備

當應用需要使用 Map Kit 時需要預先添加公鑰指紋,則需手動生成簽名支撐項目的運行與調試,若你已經了解簽名申請相關的內容可直接查看“項目開發”章節。

AGC 平臺創建項目并創建APP ID

1. 在 AGC(AppGallery Connect) 平臺創建項目

2. 創建項目后到此頁返回即可。

?3. 項目創建完成后選擇所屬項目。

4. 填入應用名稱,應用包名,選擇分類,需要注意的是:此處包名需與應用中包名一致。

5. 選擇所屬項目(上一步所創建的項目)

6. 確認后即可完成APP ID的創建

生成調試證書

在應用使用 Map Kit 時需要給應用進行手動簽名,使用自動簽名無法正常加載地圖。

生成應用證書 p12 與簽名文件 csr

1. 打開 IDE 開發工具,點擊上方 Build/Generate Key and CSR,供第四步生成 Profile 文件使用。

2. 新建證書文件,選擇證書導出文件地址,設置證書名稱

3. 確認證書密碼,請記住該密碼

4. 設置證書別名,請記住該別名,點擊下一步

5. 選擇簽名導出目錄,設置簽名文件名稱

6. 點擊完成,簽名文件生成成功

獲取?cer 數字證書文件

1. 前往 AGC 平臺上傳第三步在 IDE 中生成的 csr 文件進行提交,換取 cer 數字證書

2. 下載保存,此處將獲得 cer 證書文件

獲取?p7b?證書文件

1. AppGallery Connect?選擇創建的應用,填寫Profile名稱,選擇Profile類型,選擇設備(此處我生成的為發布證書),勾選受限權限。

2. 若選擇的是調試證書,請在此處添加設備

需要注意的是:發布與調試的區別為調試證書需要選擇設備ID,使用該 Profile 打包的應用在開發階段只可安裝在指定的手機,如何獲取設備 UDID 可查看文章結尾。

3. 下載生成的 Profile 文件(p7b)

配置項目簽名

1. 經過前幾步的操作,已經拿到了 .p12.csr.cer.p7b 四個文件,點擊 DevEco 鴻蒙開發工具右上角 Project Structure 按鈕,即可進入到簽名配置頁面。

2. 按描述選擇對應格式文件,輸入第三步中設置的證書密碼與證書別名,點擊 OK 即可完成受限權限的配置,后續使用第六步勾選的受限權限將不會再進行編譯報錯限制。

項目開發?

配置Client ID

1.登錄AppGallery Connect平臺,在“我的項目”中選擇目標應用,獲取“項目設置 > 常規 > 應用”的Client ID。

注意:需要獲取應用的Client ID,而不是項目的Client ID。

2.在工程中entry模塊的module.json5文件中,新增metadata,配置name為client_id,value為上一步獲取的Client ID的值,如下所示:

"module": {"name": "xxxx","type": "entry","description": "xxxx","mainElement": "xxxx","deviceTypes": ['phone','tablet'],"pages": "xxxx","abilities": [],"metadata": [{"name": "client_id","value": "xxxxxx"  // 配置為獲取的Client ID}]
}

開通地圖服務

1.登錄AppGallery Connect網站,選擇項目。

2.進入項目管理頁,選擇API管理,找到地圖服務開關,打開開關。

配置簽名證書指紋?

?在“項目設置 > 常規”頁面的“應用”區域,點擊“SHA256證書/公鑰指紋”后的“添加公鑰指紋(HarmonyOS API 9及以上)”。?在“選擇SHA256公鑰指紋”窗口,選擇應用/元服務使用的證書對應的指紋,點擊“確認”。

?

地圖展示

本篇文章只介紹如何配置并展示地圖,更多操作還需詳細查看官方接口文檔:文檔中心

導入 Map Kit 相關模塊

import { MapComponent, mapCommon, map } from '@kit.MapKit';
import { AsyncCallback } from '@kit.BasicServicesKit';

初始化地圖

1.初始化地圖參數 mapOption ,設置地圖中心點坐標及層級。

2.綁定 callback 回調方法,獲取 MapComponentController 對象,用來操作地圖。

3.調用 MapComponent 組件,傳入 mapOption 和 callback 參數,初始化地圖。

import { MapComponent, mapCommon, map } from '@kit.MapKit';
import { AsyncCallback } from '@kit.BasicServicesKit';@Entry
@Component
struct Index {@State message: string = 'Hello World';private mapOption?: mapCommon.MapOptions;private callback?: AsyncCallback<map.MapComponentController>;private mapController?: map.MapComponentController;aboutToAppear(): void {this.mapInit()}mapInit() {this.mapOption = {position: {target: {latitude: 39.9,longitude: 116.4,},zoom: 13},// 展示定位按鈕,如果要展示,則需要申請定位權限// myLocationControlsEnabled: true};// 地圖初始化的回調this.callback = async (err, mapController) => {if (!err) {// 獲取地圖的控制器類,用來操作地圖this.mapController = mapController;this.mapController.on("mapLoad", () => {console.info("MapKit Test", `on-mapLoad`);});}}}build() {Column({ space: 15 }) {Text("應用內地圖加載示例")Text("地點:天安門廣場")MapComponent({mapOptions: this.mapOption, mapCallback: this.callback}).width("100%").height(300)}.alignItems(HorizontalAlign.Start).padding({ top: 10, left: 15, right: 15 }).height('100%').width('100%')}
}

使用效果如下:

創建圖釘(示例)

應用內嵌入的地圖為華為的花瓣地圖,與其他地圖開發一致,具備圖形繪制相關能力,此處演示繪制圖釘,示例代碼如下,詳細可查看官方文檔字段解釋:文檔中心。

獲取到地圖控制器?mapController 后,可調用對應方法添加圖上內容。

  /*** 新建圖釘*/createMaker() {let markerOptions: mapCommon.MarkerOptions = {position: {latitude: 39.9,longitude: 116.4},rotation: 0,visible: true,zIndex: 0,alpha: 1,// anchorU: 0.5,// anchorV: 1,clickable: true,draggable: true,flat: false,icon: 'test.png',altitude: 100,}this.mapController?.addMarker(markerOptions)}

使用效果如下:

其他

獲取設備 UDID

1. 連接升級了鴻蒙5.0系統的手機并開啟開發者模式,打開USB調試

?2. 打開 DevEco 鴻蒙開發工具安裝目錄,找到 toolchains 目錄

3. 打開 CMD 命令窗口,輸入命令,即可獲取當前設備 UDID

hdc shell bm get --udid

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/84481.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/84481.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/84481.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

(1-6-1)Java 集合

目錄 0.知識概述&#xff1a; 1.集合 1.1 集合繼承關系類圖 1.2 集合遍歷的三種方式 1.3 集合排序 1.3.1 Collections實現 1.3.2 自定義排序類 2 List 集合概述 2.1 ArrayList &#xff08;1&#xff09;特點 &#xff08;2&#xff09;常用方法 2.2 LinkedList 3…

Vue.extend

Vue.extend 是 Vue 2 中的一個重要 API&#xff0c;用于基于一個組件配置對象創建一個“可復用的組件構造函數”。它是 Vue 內部構建組件的底層機制之一&#xff0c;適用于某些高級用法&#xff0c;比如手動掛載組件、彈窗動態渲染等。 ?? 在 Vue 3 中已被移除&#xff0c;V…

【MySQL系列】SQL 分組統計與排序

博客目錄 引言一、基礎語法解析二、GROUP BY 的底層原理三、ORDER BY 的排序機制四、NULL 值的處理策略五、性能優化建議六、高級變體查詢 引言 在現代數據分析和數據庫管理中&#xff0c;分組統計是最基礎也是最核心的操作之一。無論是業務報表生成、用戶行為分析還是系統性能…

spring中的InstantiationAwareBeanPostProcessor接口詳解

一、接口定位與核心功能 InstantiationAwareBeanPostProcessor是Spring框架中擴展Bean生命周期的關鍵接口&#xff0c;繼承自BeanPostProcessor。它專注于Bean的實例化階段&#xff08;對象創建和屬性注入&#xff09;的干預&#xff0c;而非父接口的初始化階段&#xff08;如…

uniapp使用sse連接后端,接收后端推過來的消息(app不支持!!)

小白終成大白 文章目錄 小白終成大白前言一、什么是SSE呢&#xff1f;和websocket的異同點有什么&#xff1f;相同點不同點 二、直接上實現代碼總結 前言 一般的請求就是前端發 后端回復 你一下我一下 如果需要有什么實時性的 后端可以主動告訴前端的技術 我首先會想到 webso…

QML學習06Button

QMLx學習06Button 1、Button1.1 狀態改變&#xff08;checkable&#xff09;1.2 排斥性&#xff08;autoExclusive&#xff09;1.3 重復觸發&#xff08;autoRepeat&#xff09;、第一次觸發延時時間&#xff08;autoRepeatDelay&#xff09;、相互之間觸發的時間間隔&#xff…

什么是前端工程化?它有什么意義

前端工程化是指通過工具、流程和規范,將前端開發從手工化、碎片化的模式轉變為系統化、自動化和標準化的生產過程。其核心目標是 提升開發效率、保障代碼質量、增強項目可維護性,并適應現代復雜 Web 應用的需求。 一、前端工程化的核心內容 1. 模塊化開發 代碼模塊化:使用 …

校園二手交易系統

該交易平臺分為兩部分&#xff0c;前臺和后臺。用戶在前臺進行商品選購以及交易&#xff1b;管理員登錄后臺可以對商品進行維護&#xff0c;主要功能包含&#xff1a; 后臺系統的主要功能模塊如下&#xff1a; 登錄功能、注冊功能、后臺首頁 系統設置&#xff1a; 菜單管理、…

06-Web后端基礎(java操作數據庫)

1. 前言 在前面我們學習MySQL數據庫時&#xff0c;都是利用圖形化客戶端工具(如&#xff1a;idea、datagrip)&#xff0c;來操作數據庫的。 我們做為后端程序開發人員&#xff0c;通常會使用Java程序來完成對數據庫的操作。Java程序操作數據庫的技術呢&#xff0c;有很多啊&a…

uni-app學習筆記十三-vue3中slot插槽的使用

在頁面開發中&#xff0c;通常一個頁面分為頭部&#xff0c;尾部&#xff0c;和中心內容區。其中頭部&#xff0c;尾部一般比較固定&#xff0c;而中心區域往往是多樣的&#xff0c;需要自定義開發。此時&#xff0c;我們可以引入slot(插槽)來實現這一目標。<slot> 作為一…

Agent模型微調

這篇文章講解&#xff1a; 把 Agent 和 Fine-Tuning 的知識串起來&#xff0c;在更高的技術視角看大模型應用&#xff1b;加深對 Agent 工作原理的理解&#xff1b;加深對 Fine-Tuning 訓練數據處理的理解。 1. 認識大模型 Agent 1.1 大模型 Agent 的應用場景 揭秘Agent核心…

【最新版】Arduino IDE的安裝入門Demo

1、背景說明 1、本教程編寫日期為2025-5-24 2、Arduino IDE的版本為&#xff1a;Arduino IDE 2.3.6 3、使用的Arduino為Arduino Uno 1、ArduinoIDE的安裝 1、下載。網址如下&#xff1a;官網 2、然后一路安裝即可。 期間會默認安裝相關驅動&#xff0c;默認安裝即可。 3、安…

Python應用運算符初解

大家好!運算符是編程中不可或缺的工具&#xff0c;它們能幫助我們執行各種計算和操作。無論是數學運算&#xff0c;還是變量賦值&#xff0c;運算符都在背后默默發揮作用。對于編程初學者來說&#xff0c;理解并掌握常見運算符的用法是邁向編程世界的重要一步。 算術運算符: 加…

小米2025年校招筆試真題手撕(二)

一、題目 給一個長度為n的序列和一個整數x&#xff0c;每次操作可以選擇序列中的一個元素&#xff0c;將其從序列中刪去&#xff0c;或者將其值加一。 問至少操作多少次&#xff0c;可以使操作后的序列&#xff08;可以為空&#xff09;中數字之和是x的倍數。 輸入描述&#…

CNN卷積神經網絡到底卷了啥?

參考視頻&#xff1a;卷積神經網絡&#xff08;CNN&#xff09;到底卷了啥&#xff1f;8分鐘帶你快速了解&#xff01; 我們知道&#xff1a; 圖片是由像素點構成&#xff0c;即最終的成像效果是由背后像素的顏色數值所決定 在Excel中&#xff1a;有這樣一個由數值0和1組成的66…

教師技術知識對人工智能賦能下教學效果的影響:以教學創新為中介的實證研究

教師技術知識對人工智能賦能下教學效果的影響&#xff1a;以教學創新為中介的實證研究 摘要 隨著教育信息化的快速發展&#xff0c;人工智能技術在教育領域的應用日益廣泛&#xff0c;為教育教學帶來了深刻變革。然而&#xff0c;當前關于教師技術知識如何影響人工智能賦能下的…

Linux驅動學習筆記(九)

設備模型 1.kobject的全稱為kernel object&#xff0c;即內核對象&#xff0c;每一個kobject都會對應到系統/sys/下的一個目錄&#xff0c;這些目錄的子目錄也是一個kobject&#xff0c;以此類推&#xff0c;這些kobject構成樹狀關系&#xff0c;如下圖&#xff1a; kobject定…

25年上半年五月之軟考之設計模式

目錄 一、單例模式 二、工廠模式 三、 抽象工廠模式 四、適配器模式 五、策略模式 六、裝飾器模式 ?編輯 考點&#xff1a;會挖空super(coffeOpertion); 七、代理模式 為什么必須要使用代理對象&#xff1f; 和裝飾器模式的區別 八、備忘錄模式 一、單例模式 這個…

Python打卡第36天

浙大疏錦行 作業&#xff1a; 對之前的信貸項目&#xff0c;利用神經網絡訓練下&#xff0c;嘗試用到目前的知識點讓代碼更加規范和美觀。 import torch import torch.nn as nn import torch.optim as optim from sklearn.model_selection import train_test_split from sklear…

全面理解類和對象(下)

文章目錄 再談構造函數初始化列表 static概念&#xff1a; 友元友元函數友元類 內部類再次理解類和對象 再談構造函數 class Date { public:Date(int year, int month, int day){_year year;_month month;_day day;} private:int _year;int _month;int _day; };上述代碼有了…