鸿蒙next开启地图服务

news2024/11/25 6:33:06

一般手机软件有的都会有开启地图功能,这里说一下怎么开启地图服务
1、 首先你需要配置一些东西,在华为的agc平台上,下边链接就是详细的教程
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/map-config-agc-V5
我说一下你自己需要在ide上做的,
在这里插入图片描述

有三个证书,这个需要你从华为官方上下载好的,就是上边链接告诉你要做的一个p12,一个p7b,一个cer,你需要在项目里设置一下
在module.json5里你需要申请地图权
’requestPermissions‘:[
{
“name”: ‘ohos.permission.LOCATION’,
‘reason’: ‘KaTeX parse error: Expected 'EOF', got '}' at position 139: … } }̲, { …string:GPSReason’,
‘usedScene’: {
“abilities”: [
‘EntryAbility’
],“when”: ‘inuse’
}
}
]

然后再entryablity里去把权限申请好
let manager= abilityAccessCtrl.createAtManager()
await manager.requestPermissionsFromUser(this.context,[
‘ohos.permission.LOCATION’,
‘ohos.permission.APPROXIMATELY_LOCATION’])//地图权限
}
这样在一进入应用就会提升app需要开启地图权限
显示地图主要是MapComponent组件
你需要一个地图控制器
controller?: map.MapComponentController
一个回调函数
private callback?: AsyncCallback<map.MapComponentController>
你在build函数里写一个地图的组件,
build() {
Stack() {
// 调用MapComponent组件初始化地图
MapComponent({ mapOptions: this.mapOptions, mapCallback: this.callback }).width(‘100%’).height(‘100%’);
}.height(‘100%’)
}
有这么两个参数,mapOptions有很多参数,你只写position就行,一个经度一个纬度,具体是什么数值,我觉得如果符合经纬度的值的可以随便写,比如(116,60)经度116纬度60,
然后是这个回调函数,在aboutToAppear函数里写这个函数执行的逻辑
this.callback = async (err, mapController) => {
if (!err) {
// 获取地图的控制器类,用来操作地图
this.mapController = mapController
}
};
他的回调函数有两个参数,一个err是报错,一个是mapController,用来给我们定义的控制器赋值,这样我们就拿到了地图的控制器。
怎么操作地图知道你自己的位置呢
1、首先你需要获取经纬度
let result = await geoLocationManager.getCurrentLocation()
//2、经纬度转化成街道
let Addressesresult = await geoLocationManager.getAddressesFromLocation(
{
latitude: result.latitude,
longitude: result.longitude
}
)
this.currentMessage = Addressesresult[0].placeName as string
这个currentMessage 就是街道信息后续根据业务可能需要用到
//3、设置当前位置
this.controller.setMyLocation({
latitude: result.latitude,
longitude: result.longitude,
altitude: result.altitude,
accuracy: result.accuracy,
speed: result.speed,
timeStamp: result.timeStamp,
direction: result.direction,
timeSinceBoot: result.timeSinceBoot
})
//4、准备一个相机、位置挪到定位处
let camera: map.CameraUpdate = map.newCameraPosition({
target: {
longitude: result.longitude,
latitude: result.latitude
}, zoom: 16
})
this.controller.moveCamera(camera)
//5、转换坐标84转02
let transposition02: mapCommon.LatLng = await map.convertCoordinate(mapCommon.CoordinateType.WGS84
, mapCommon.CoordinateType.GCJ02, result)
//6、你自己打点看看你在哪里
//自定义打点展示,加一个标记,如果效果不理想们可以自定义builder
this.controller.addMarker({
position: {
latitude: transposition02.latitude,
longitude: transposition02.longitude
},
title: ‘当前位置’,
clickable: true,
//街道信息
snippet: this.currentMessage
})
重要一点模拟器不支持地图!!!!,目前只有真机可以,这在学习鸿蒙上有一定的难度,就是代码写完不知道行不行,之前写完地图能出来。但是没有街道等信息,只有左下角的petal maps,和右边的加减号可以,其余的都是空白,应该在真机上不出意外应该是没问题的
在aboutToAppear函数里也可以把这两代码加上,模拟器上显示不出来地图但是可以显示出来一个点,那个就是你当前的位置,至于准不准我也不清楚,毕竟模拟器不显示地图(手动狗头)
//设置地图展示位置
this.controller.setMyLocationEnabled(true)
//设置地图控制器
this.controller.setMyLocationControlsEnabled(true)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2195339.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于LORA的一主多从监测系统_框架搭建

第一节、框架搭建 打开CubeMAX&#xff0c;选择好芯片&#xff0c;进行基础配置 第一步、先配置时钟源 第二步、配置SYS选项 配置debug口以及计数器源&#xff0c;我这里选择TIM1 第三步、选择I2C接口 配置如下即可&#xff0c;默认配置不用改 第四步、串口选择 我们这里使…

2024年超火的AI绘画项目,多重变现方法,日赚1000+

一&#xff0e;项目介绍 绘画是一个很大的领域&#xff0c;今天讲是壁纸头像类的细分赛道&#xff0c;它可以说是一个经久不衰的项目。今年最火的项目肯定是AI&#xff0c;这个项目的核心是将AI生成的头像或壁纸上传到抖音或其他平台上进行变现。这个项目的变现渠道非常多&…

基于STM32的智能台灯设计

1. 设计目的与意义 1.1设计目的 设计一个采用220v交流电进行供电&#xff0c;具备显示屏能够实时显示日期&#xff08;年、月、日和星期&#xff09;&#xff0c;时间&#xff08;小时、分钟、秒&#xff09;和温度&#xff08;摄氏度&#xff09;&#xff0c;能够通过语音交…

github项目——howtocook

github偶然发现的一个项目&#xff0c;无关编程 &#xff0c;只教你做菜&#x1f602; 参与其中&#xff0c;简历就可以写上github热门项目贡献者&#x1f602; 66.7K stars,深的程序员喜爱&#xff01;甚至搞了个专门的域名网站。。。 菜品还有专门的配图和难度系数&#xff0…

水务行业的数字化转型之路:四大挑战与展望

随着数字时代的全面到来&#xff0c;各行各业都在积极探索数字化转型的路径&#xff0c;而作为国民经济命脉之一的水务行业也不例外。水务行业的数字化转型不仅是技术革新的必然趋势&#xff0c;更是提升水资源管理效率、保障水安全、促进生态文明建设的关键举措。然而&#xf…

tick数据合成k线的完整过程(含源代码)

tick数据合成k线的完整过程&#xff08;含源代码&#xff09; 写在前面tick 数据的选择行情结构体字段tick 行情示例 批量合成1分钟k线方式增量合成1分钟k线方式k线分钟级别扩展源码获取方式 写在前面 码上君量化互助社群已建立&#xff0c;所有源码免费对社群成员开放&#x…

鹏哥C语言自定义笔记重点(79-)

79.动态内存管理 80.使用动态内存管理的常见问题 对5的问题修改: 内存泄露的第一种可能: 第二种可能: 81.下面程序可能出现的问题 解决问题的两种方法: 82. 都是会造成野指针 83.p里面的内容不能进入Test 84.内存泄露问题 85.野指针问题:malloc创建的空间销毁了&#xff0c;但…

关于ad 的焊盘自动排序功能说明

你是不是想&#xff0c;不想手动一个一个改焊盘的号数&#xff0c;真的很累&#xff0c;对吧 那么下来看看&#xff0c;关于这个的用法的说明 比如我要改这个红色框中的焊盘的序号&#xff0c;那么我们就先框选好&#xff0c;来到右边的栏目&#xff0c;看到红色圈出的地方&am…

算法工程师重生之第二十二天(递增子序列 全排列 全排列 II 重新安排行程 N皇后 解数独 总结 )

参考文献 代码随想录 一、非递减子序列 给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素&#xff0c;如出现两个整数相等&#xff0c;也可以视作…

数据结构(7.4_3)——B+树

B树的定义&#xff1a; B树的查找&#xff1a; 查找成功时&#xff1a; 查找失败时&#xff1a; B树和B树的比较 总结&#xff1a;

AI写作工具大比拼:揭秘Claude的神秘魅力以及如何订阅Claude

AI写作困境与Claude的惊喜表现 最近有很多朋友在吐槽AI写的文章不太行&#xff0c;我一看他的要求写的很清楚&#xff0c;已经把提示词都用到位了&#xff0c;例如&#xff1a;写作背景、写作要求等&#xff0c;都有具体写出来。但文章阅读起来就是欠缺点啥。 你们有没有遇到…

基于LORA的一主多从监测系统_前言

第一章、前言 最近想用手头的东西做一个小项目&#xff0c;也算是一个共用框架&#xff0c;这个框架可以做很多东西&#xff0c;比如基于lora的智慧农场&#xff0c;基于lora的智慧牧场&#xff0c;基于lora的智慧城市&#xff0c;智慧矿井等。 这个项目我对他的定位是可以用…

用java编写飞机大战

游戏界面使用JFrame和JPanel构建。背景图通过BG类绘制。英雄机和敌机在界面上显示并移动。子弹从英雄机发射并在屏幕上移动。游戏有四种状态&#xff1a;READY、RUNNING、PAUSE、GAMEOVER。状态通过鼠标点击进行切换&#xff1a;点击开始游戏&#xff08;从READY变为RUNNING&am…

RL_足球教练

文章目录 前言什么是 Agent?定义Agent的组成部分Agent的目标 什么是 End-to-End Approach?定义特点优势与挑战示例 Fuzzy Bayesian Reinforcement Learning (RB-RL)系统组成部分系统工作原理 贝叶斯方法基础_条件概率定义 贝叶斯定理示例敏感性 Q-learning强化学习算法Q-lear…

java代理模式(动态代理、静态代理、需要实现类的JDK代理、不需要实现类的JDK动态代理、CGLIB代理)

静态代理简单使用 静态代理是代理模式的一种实现方式&#xff0c;它在编译时就已经确定了被代理对象和代理对象的关系。在静态代理中&#xff0c;需要手动创建一个代理类&#xff0c;该代理类与被代理对象实现相同的接口或继承相同的父类&#xff0c;并在代理类的方法中调用被…

什么是 JavaScript 的数组空槽

JavaScript 中的数组空槽一直是一个非常有趣且颇具争议的话题。我们可能对它的实际意义、历史以及现今的新版本中对它的处理方式有所疑问。数组空槽的存在最早可以追溯到 JavaScript 的诞生之初&#xff0c;当时的设计决定让它成为了现代 JavaScript 开发中的一种特别的现象。 …

Linux网络编程 -- 网络基础

本文主要介绍网络的一些基础概念&#xff0c;不涉及具体的操作原理&#xff0c;旨在构建对网络的基础认识。 1、网络的早期发展历程 20世纪50年代 在这一时期&#xff0c;计算机主机非常昂贵&#xff0c;而通信线路和设备相对便宜。为了共享计算机主机资源和进行信息的综合处…

[运维]6.github 本地powershell登录及设置ssh连接

当我在本地的git hub 进行修改后&#xff0c;需要推送到远程github仓库。 当我运行了git add . git commit -m "ingress-controller image" 以后&#xff0c;运行git push origin main&#xff0c;发现由于网络原因无法连接到远程github仓库。 此时开始设置ssh连…

【IC验证】基于systemverilog(UVM)断言

断言 0.注意1.作用2.分类3.断言的语法4.基本组成5.实现断言6.常见断言方法7.APB的断言7.1APB的时序7.2 断言的检查7.4 断言覆盖率的统计...未完待续 0.注意 在sequence序列、property属性和断言语句中都可以触发事件&#xff0c;但是建议在property中定义&#xff1b; 1.作用…

机器学习西瓜书笔记(十四) 第十四章概率图模型

第十四章 概率图模型14.1 隐马尔可夫模型14.1.1 小结 14.2 马尔可夫随机场小结 14.3 条件随机场14.3.1 小结 14.4 学习与推断14.4.1 变量消去14.4.2 信念传播小结 14.5 近似推断14.5.1 MCMC采样14.5.2 变分推断小结 14.6 话题模型14.6.1 小结 总结 概率图模型 14.1 隐马尔可夫…