鸿蒙NXET实战:高德地图定位SDK【获取Key+获取定位数据】(二)
如何申请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=
鸿蒙知识已更新前往gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md参考。

获取定位数据
使用定位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()
至此就可以看到定位相关信息。也可依据参考手册实现单次定位、最后位置等操作。
最后呢,很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发岗位需要掌握那些核心技术点?为此鸿蒙的开发学习必须要系统性的进行。
而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造的《鸿蒙NEXT星河版OpenHarmony开发文档》里面内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点
如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发的学习路线图。

高清完整版请点击→《鸿蒙NEXT星河版开发学习文档》
针对鸿蒙成长路线打造的鸿蒙学习文档。话不多说,我们直接看详细资料鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,帮助大家在技术的道路上更进一步。
《鸿蒙 (OpenHarmony)开发学习视频》

《鸿蒙生态应用开发V2.0白皮书》

《鸿蒙 (OpenHarmony)开发基础到实战手册》
获取这份鸿蒙星河版学习资料,请点击→《鸿蒙NEXT星河版开发学习文档》
OpenHarmony北向、南向开发环境搭建

《鸿蒙开发基础》
-
ArkTS语言
-
安装DevEco Studio
-
运用你的第一个ArkTS应用
-
ArkUI声明式UI开发
-
.……

《鸿蒙开发进阶》
-
Stage模型入门
-
网络管理
-
数据管理
-
电话服务
-
分布式应用开发
-
通知与窗口管理
-
多媒体技术
-
安全技能
-
任务管理
-
WebGL
-
国际化开发
-
应用测试
-
DFX面向未来设计
-
鸿蒙系统移植和裁剪定制
-
……

《鸿蒙开发实战》
-
ArkTS实践
-
UIAbility应用
-
网络案例
-
……

获取这份鸿蒙星河版学习资料,请点击→《鸿蒙NEXT星河版开发学习文档》
总结
鸿蒙—作为国家主力推送的国产操作系统。部分的高校已经取消了安卓课程,从而开设鸿蒙课程;企业纷纷跟进启动了鸿蒙研发。
并且鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,未来将会支持 50 万款的应用。那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!

相关文章:
鸿蒙NXET实战:高德地图定位SDK【获取Key+获取定位数据】(二)
如何申请key 1、创建新应用 进入[控制台],创建一个新应用。如果您之前已经创建过应用,可直接跳过这个步骤。 2、添加新Key 在创建的应用上点击"添加新Key"按钮,在弹出的对话框中,依次:输入应用名名称&…...
Dubbo管理控制台
1.将资料中的dubbo-admin-2.6.0.war文件复制到tomcat的webapps目录下 2.启动tomcat,修改WEB-INF下的dubbo.properties文件 #如果Zookeeper是安装在虚拟机上的那么注册中心的地址需要修改为虚拟机的ip地址 dubbo.registry.addresszookeeper://192.168.100.110:2181 dubbo.admin…...
CSS问题精粹1
1.关于消除<li>列表前的符号 我相信很多人在初学CSS时会遇到该问题,无论是创作导航,还是列表,前面都会有个黑点点或其它符号。 解决该问题其实很简单 采用list-style-type:none或list-style:none直接解决 如果你想更换前面的黑点点&a…...
neo4j所有关系只显示RELATION,而不显示具体的关系
当看r时,真正的关系在properties中的type里,而type为“RELATION” 造成这个的原因是: 在创建关系时,需要指定关系的类型,这是固定的,不能像属性那样从CSV文件的一个字段动态赋值。标准的Cypher查询语言不支…...
VMware和Xshell连接
1.开启虚拟机 2.使用管理员账户,点击未列出 3.输入用户名密码 4.点击编辑虚拟网络编辑器 5.记住自己的网关和IP地址 6.打开终端 7.输入命令,vim / etc / sysconfig / network -scripts / ifcfg-ens33 回车 8.修改图中两处按“ I ”键进入编辑 d…...
【C语言进阶篇】编译和链接
【C语言进阶篇】编译和链接 🥕个人主页:开敲🍉 🔥所属专栏:C语言🍓 🌼文章目录🌼 编译环境与运行环境 1. 翻译环境 2. 编译环境:预编译(预处理)编…...
pytorch+tensorboard
安装依赖 pip install teorboard pip install torch_tb_profiler了解teorboard 记录并可视化标量[组]、图片[组]。 如何使用 第一步:构建模型,记录中间值,写入summarywriter 每次写入一个标量add_scalar 比如: from torch.utils.tensorboard import SummaryWriter wr…...
PTA------ 敲笨钟
字符串处理问题!------->字符串处理相关操做 代码: #include <iostream> #include<algorithm> #include<cmath> #include<cstring> #include<set> #include<stack> #include<queue> #include<map>…...
关于HashSet的五个问题
1.HashSet集合的底层数据结构是什么样的? HashSet 集合的底层数据结构是哈希表,它是由一个数组和链表(或红黑树,具体取决于 JDK 版本)组成的数据结构。 数组:哈希表的主要部分是一个数组,它的每个位置称为…...
linux性能调优汇总(一)cpu
目录 一、引言 二、CPU ------>2.1、/proc/cpuinfo ------>2.2、cpuid指令 ------>2.3、lscpu ------>2.4、turbostat ------>2.5、rdmsr ------>2.6、perf ------>2.7、top ------>2.8、ps ------>2.9、pidstat 查看每个进程CPU、内存、…...
CSS object-fit 属性
object-fit 属性指定元素的内容应该如何去适应指定容器的高度与宽度。 object-fit 一般用于 img 和 video 标签,一般可以对这些元素进行保留原始比例的剪切、缩放或者直接进行拉伸等。 您可以通过使用 object-position 属性来切换被替换元素的内容对象在元素框内的…...
使用LangChain LCEL生成RAG应用、使用LangChain TruLens对抗RAG幻觉
# 导入LangChain的库 from langchain import *# 加载数据源 loader WebBaseLoader() doc loader.load("https://xxx.html")# 分割文档对象 splitter RecursiveCharacterTextSplitter(max_length512) docs splitter.split(doc)# 转换文档对象为嵌入,并…...
npm淘宝镜像源更新
目录 前情提要: 背景: 镜像源更新: 清楚缓存: 直接切换镜像源: 补充: 错误解释: 解决方法: 前情提要: 2024 /1 /22 ,registry.npm.taobao.org淘宝镜像源的SSL…...
Navicat 干货 | 探索 PostgreSQL 的外部数据包装器和统计函数
PostgreSQL 因其稳定性和可扩展性而广受青睐,为开发人员和数据管理员提供了许多有用的函数。在这些函数中,file_fdw_handler、file_fdw_validator、pg_stat_statements、pg_stat_statements_info 以及 pg_stat_statements_reset 是其中的重要函数&#x…...
耳目一新的滑块版登录注册界面~
又到了毕业季,大家做毕设的时候总会参考已有的案例,不过大多产品的样式非常单一雷同。本帖博主给大家分享一个比较别树一帜的登录界面,如下: 如果没有账号,点击“去注册”,则会产生如下的效果: …...
分布式系统的发展史
目录 🐳今日良言:且视他人之疑目如盏盏鬼火,大胆地去走自己的夜路 🐇一、常见概念 🐇二、发展史 今日良言:且视他人之疑目如盏盏鬼火,大胆地去走自己的夜路 一、常见概念 在正式介绍分布式系…...
2024年腾讯云服务器最新价格表,CPU内存带宽系统盘报价
腾讯云服务器价格表2024年最新价格,轻量2核2G3M服务器61元一年、2核2G4M服务器99元1年,三年560元、2核4G5M服务器165元一年、3年900元、轻量4核8M12M服务器646元15个月、4核16G10M配置32元1个月、8核32G配置115元1个月,345元3个月。CVM云服务…...
深入解析Oracle数据库ORA-01427错误:单行子查询返回多行的问题与解决办法
深入解析Oracle数据库ORA-01427错误:单行子查询返回多行的问题与解决办法 1、引言2、错误描述3、常见场景与示例4、解决方案5、声明 1、引言 在Oracle数据库日常运维与开发过程中,经常会遇到ORA-01427错误,这是一个很典型的数据库错误提示&am…...
【正点原子FreeRTOS学习笔记】————(12)信号量
这里写目录标题 一、信号量的简介(了解)二、二值信号量(熟悉)三、二值信号量实验(掌握)四、计数型信号量(熟悉)五、计数型信号量实验(掌握)六、优先级翻转简介…...
【数据分享】1929-2023年全球站点的逐年平均露点(Shp\Excel\免费获取)
气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、能见度等指标,说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 有关气象指标的监测站点数据,之前我们分享过1929-2023年全球气象站…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
