如何申請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;
注意事項
- 獲取AppID之前需要先配置應用的簽名信息。
- 目前通過DevEco Studio連接云真機獲取到的appId不全,只獲取到了"包名_", 使用云真機調試高德地圖SDK時會導致鑒權不通過,正確的appId形式為:"包名_簽名信息", 例如:com.amap.demo_BGtGgVB3ASqU7ar1nHkwX4s0nIexDbEwqNrVoatUDs17GrClWC7V2/zhoYh6tFQHAd5DASWVTEAgvZfzrEGljjs=
獲取定位數據
使用定位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文章
1347瀏覽量
35449 -
SDK
+關注
關注
3文章
1045瀏覽量
46138 -
定位數據
+關注
關注
0文章
3瀏覽量
1029 -
鴻蒙
+關注
關注
57文章
2390瀏覽量
42965
發布評論請先 登錄
相關推薦
DIY --GPS +VB版谷歌地圖定位個人定位黑匣子
。將自己電腦的網絡IP寫入單片機,通過GPRS模塊 上網,將定位數據發到電腦上在地圖上顯示出來。這是GPS模塊提供的測試軟件,直接接上串口就可以測試模塊的定位性能及數據。后面是我的硬件
發表于 06-21 11:57
【求助】將GPS獲取的經緯度發送到網上、然后再谷歌地圖上顯示具體的位置。
我想做個定位系統,就是GPS獲取經緯度信息,然后發送到網上、最后PC端從網上下載數據,實時顯示在谷歌地圖上。實現物品防丟的功能。目前GPS獲取
發表于 11-26 15:22
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
自主移動機器人的定位與地圖創建(SLAM)關鍵性問題
移動機器人的定位和地圖創建是自主移動機器人領域的熱點研究問題。對于已知環境中的機器人自主定位和已知機器人位置的地圖創建已經有了一些實用的解決方法。然而在很多環境中機器人不能利用全局
發表于 11-10 14:49
?1987次閱讀
高德地圖正式進軍打車業務
高德先后與德爾福、博世、凱迪拉克、千尋位置等公司達成戰略合作,基于自動駕駛地圖數據、相關軟件能力和云計算能力進行深入合作,為中國市場提供基于云端的自動駕駛服務,為自動駕駛項目提供高精度
Apollo定位、感知、規劃模塊的基礎-高精地圖
與普通地圖不同,高精地圖主要服務于自動駕駛車輛,通過一套獨特的導航體系,幫助自動駕駛解決系統性能問題,擴展傳感器檢測邊界。目前 Apollo 內部高精
高精自動駕駛中的地圖匹配定位技術
汽車定位是讓自動駕駛汽車知道自身確切位置的技術,在自動駕駛系統中擔負著相當重要的職責。汽車定位涉及多種傳感器類
型和相關技術,主要可分為衛星定位、慣性導航定位、
發表于 06-07 10:31
?0次下載
評論