华为地图服务 - 如何在地图指定位置增加气泡?-- HarmonyOS自学19

场景介绍

本章节将向您介绍如何在地图的指定位置添加气泡。

您可以通过气泡在道路上指定位置显示测速、拥堵情况。气泡支持功能:

  • 支持设置四个方向的图标(传入的图标宽高需要相同)。
  • 支持设置图标碰撞规则。
  • 支持设置当前气泡的候选坐标段,通过计算使气泡在最佳的线段位置上。
  • 支持设置图标动画。
  • 支持添加点击事件。

cke_2568.png

接口说明

添加气泡功能主要由BubbleParams、addBubble和Bubble提供,更多接口及使用方法请参见接口文档。

接口名

描述

BubbleParams

气泡相关属性。

addBubble(params: mapCommon.BubbleParams): Promise<Bubble>

在地图上添加气泡。

Bubble

气泡,支持更新和查询相关属性。

开发步骤

添加气泡

  1. 导入相关模块。
     
    1. import { MapComponent, mapCommon, map } from '@kit.MapKit';
    2. import { AsyncCallback } from '@kit.BasicServicesKit';
  2. 添加气泡,在Callback方法中创建初始化参数并新建气泡。
     
    1. @Entry
    2. @Component
    3. struct BubbleDemo {
    4. private mapOption?: mapCommon.MapOptions;
    5. private mapController?: map.MapComponentController;
    6. private callback?: AsyncCallback<map.MapComponentController>;
    7. private bubble?: map.Bubble;
    8. aboutToAppear(): void {
    9. this.mapOption = {
    10. position: {
    11. target: {
    12. latitude: 39.918,
    13. longitude: 116.397
    14. },
    15. zoom: 14
    16. }
    17. };
    18. this.callback = async (err, mapController) => {
    19. if (!err) {
    20. this.mapController = mapController;
    21. let bubbleOptions: mapCommon.BubbleParams = {
    22. // 气泡位置
    23. positions: [[{ latitude: 39.918, longitude: 116.397 }]],
    24. // 设置图标,必须提供4个方向的图标,图标存放在resources/rawfile
    25. icons: [
    26. 'speed_limit_10.png',
    27. 'speed_limit_20.png',
    28. 'speed_limit_30.png',
    29. 'speed_limit_40.png'
    30. ],
    31. // 定义气泡的显示属性,为true时,在被碰撞后仍能显示
    32. forceVisible: true,
    33. // 定义气泡碰撞优先级,数值越大,优先级越低
    34. priority: 3,
    35. // 定义气泡展示的最小层级
    36. minZoom: 2,
    37. // 定义气泡展示的最大层级
    38. maxZoom: 20,
    39. // 定义气泡是否可见
    40. visible: true,
    41. // 定义气泡叠加层级属性
    42. zIndex: 1
    43. }
    44. // 添加气泡
    45. this.bubble = await this.mapController.addBubble(bubbleOptions);
    46. }
    47. };
    48. }
    49. build() {
    50. Stack() {
    51. Column() {
    52. MapComponent({ mapOptions: this.mapOption, mapCallback: this.callback });
    53. }.width('100%')
    54. }.height('100%')
    55. }
    56. }

    cke_5708.png

设置监听气泡点击事件

 
  1. this.mapController?.on("bubbleClick", (bubble) => {
  2. console.info(`on-BubbleClick bubble = ${bubble.getId()}`);
  3. });

气泡动画

Bubble调用setAnimation(animation: Animation)设置动画。

Bubble调用startAnimation启动动画。

 
  1. let animation: map.ScaleAnimation = new map.ScaleAnimation(1, 3, 1, 3);
  2. // 设置动画单次的时长
  3. animation.setDuration(3000);
  4. // 设置动画的开始监听
  5. animation.on("start", () => {
  6. console.info('start ScaleAnimation');
  7. });
  8. // 设置动画的结束监听
  9. animation.on("end", () => {
  10. console.info('end ScaleAnimation');
  11. });
  12. // 设置动画执行完成的状态
  13. animation.setFillMode(map.AnimationFillMode.BACKWARDS);
  14. // 设置动画重复的方式
  15. animation.setRepeatMode(map.AnimationRepeatMode.REVERSE);
  16. // 设置动画插值器
  17. animation.setInterpolator(Curve.Linear);
  18. // 设置动画的重复次数
  19. animation.setRepeatCount(100);
  20. this.bubble.setAnimation(animation);
  21. this.bubble.startAnimation();

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

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

相关文章

二叉搜索树(附源码C++)

游凡/搜索二叉树https://gitee.com/you-fan-a/search-binary-tree 一、什么是二叉搜索树&#xff1f; 若它的左子树不空&#xff0c;则左子树上所有结点的值均小于它根结点的值。若它的右子树不空&#xff0c;则右子树上所有结点的值均大于它根结点的值。它的左、右树又分为⼆…

Linux移植之系统烧写

直接参考【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.81 本文仅作为个人笔记使用&#xff0c;方便进一步记录自己的实践总结。 前面我们已经移植好了 uboot 和 linux kernle&#xff0c;制作好了根文件系统。但是我们移植都是通过网络来测试的&#xff0c;在实际的产品开发中…

Autosar Dcm开发-诊断2E或31服务实现pending功能

文章目录 前言Dcm规范功能实现总结前言 项目开发过程中,有需求在31服务(Routine)收到请求时,等待应用层反馈执行完后再进行响应。所以pending一段时间,本文介绍该功能的实现。 Dcm规范 以Routine为例,其服务包含以下返回状态 0:E_OK,服务成功执行 1:E_NOT_OK,服务…

【PythonCode】力扣Leetcode46~50题Python版

【PythonCode】力扣Leetcode46~50题Python版 前言 力扣Leetcode是一个集学习、刷题、竞赛等功能于一体的编程学习平台&#xff0c;很多计算机相关专业的学生、编程自学者、IT从业者在上面学习和刷题。 在Leetcode上刷题&#xff0c;可以选择各种主流的编程语言&#xff0c;如C…

数据仓库建模方法论 :维度模型

使用ER模式建立的数仓&#xff0c;优点是没有冗余的数据。缺点是&#xff1a;数仓是用于分析的&#xff0c;分析的数据量特别大&#xff0c;多个表需要join操作&#xff0c;运行的时候特别慢。 比如&#xff1a;统计哪一年&#xff0c;哪个国家的哪个品类卖的最好&#xff1f;…

如何实现一个流畅的滚动列表

如何实现一个流畅的滚动列表 在网页开发中&#xff0c;滚动列表是展示大量数据时常用的交互方式。通过结合CSS动画和视觉设计&#xff0c;我们可以让列表内容自动滚动&#xff0c;为用户提供顺畅的浏览体验。今天&#xff0c;我将带你一步步实现一个流畅、富有视觉吸引力的滚动…

地平线占用预测 FlashOcc 参考算法-V1.0

1.简介 3D Occupancy Networks 的基本思路是将三维空间划分成体素网格&#xff0c;并对每个网格进行各类感知任务的预测。目前以网格为中心的方法能够预测每个网格单元的占用率、语义类别、未来运动位移和实例信息。3D occupancy 可以对道路障碍物进行更细粒度的划分&#xff…

如何利用nw.js打包vue项目

引言 最近有一个开发windows桌面应用的需求, 需要将vue项目打包成.exe文件&#xff0c;最好是变成可安装版(非绿色版)。特此记录一下如何通过nw.js将vue项目打包成.exe。可能这种方式不是最优&#xff0c;仅供大家参考&#xff01; nw.js简介&#xff08;以下描述来自nw.js官…

如何估算 Transformer 模型中的参数数量

最有效的理解新机器学习架构&#xff08;以及任何新技术&#xff09;的方式是从零开始实现它。虽然这种方法非常复杂、耗时&#xff0c;并且有时几乎不可能做到&#xff0c;但它能帮助你深入理解每一个实现细节。例如&#xff0c;如果你没有相应的计算资源或数据&#xff0c;你…

AI宠物拟人化新玩法,教你如何用0成本打造爆款创意内容!

近年来&#xff0c;随着AI技术的快速发展&#xff0c;各种创新玩法不断涌现&#xff0c;尤其是在内容创作领域&#xff0c;AI带来的变革尤为显著。 **其中&#xff0c;宠物拟人化逐渐成为社交媒体上的一大热门话题。**通过AI生成工具&#xff0c;我们不仅可以将宠物拟人化&…

面试面经|大模型算法岗常见面试题100道

本文提供了一份全面的大模型算法岗位面试题清单&#xff0c;包括基础理论、模型结构、训练微调策略、应用框架、分布式训练和模型推理等方面的知识点&#xff0c;旨在帮助求职者准备相关技术面试。 一、基础篇 1、目前主流的开源模型体系有哪些&#xff1f; Transformer体系&a…

基于yolov8和openpose人体骨骼关键点实现的摔倒姿态识别检测系统实现

【参考源码】 GitHub - HRonaldo/Openpose_YOLO 本项目参考上面框架进行全面改进&#xff0c;改进如下&#xff1a; &#xff08;1&#xff09;将检测框架换成当前最流行框架yolov8&#xff0c;并封装成类实现模块化设计。关于yolov5优化项目可以访问&#xff1a;https://bl…

队列的各种接口的实现(C)

队列的概念 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c;队列具有先进先出FIFO(First In First Out) 入队列&#xff1a;进行插入操作的一端称为队尾 出队列&#xff1a;进行删除操作的一端称为队头 队列的实…

华为地图服务 - 如何在地图上绘制多边形? -- HarmonyOS自学16

场景介绍 本章节将向您介绍如何在地图上绘制多边形。 接口说明 添加多边形功能主要由MapPolygonOptions、addPolygon和MapPolygon提供&#xff0c;更多接口及使用方法请参见接口文档。 接口名 描述 MapPolygonOptions 用于描述MapPolygon属性。 addPolygon(options: mapC…

(八)使用Postman工具调用WebAPI

访问WebAPI的方法&#xff0c;Postman工具比SoapUI好用一些。 1.不带参数的get请求 [HttpGet(Name "GetWeatherForecast")] public IEnumerable<WeatherForecast> Get() {return Enumerable.Range(1, 5).Select(index > new WeatherForecast{Date DateT…

优优嗨聚集团:引领互联网服务新篇章

在当今这个日新月异的互联网时代&#xff0c;企业之间的竞争愈发激烈&#xff0c;如何高效地运营线上业务成为了众多商家关注的焦点。在这一背景下&#xff0c;四川优优嗨聚集团凭借其卓越的服务质量、创新的技术解决方案和强大的品牌影响力&#xff0c;逐渐成为了众多商家信赖…

【大模型教程】如何在Spring Boot中无缝集成LangChain4j,玩转AI大模型!

0 前言 LangChain4j 提供了用于以下功能的 Spring Boot 启动器&#xff1a; 常用集成声明式 AI 服务 1 常用集成的 Spring Boot starters Spring Boot 启动器帮助通过属性创建和配置 语言模型、嵌入模型、嵌入存储 和其他核心 LangChain4j 组件。 要使用 Spring Boot 启动…

基于MATLAB的虫害检测系统

课题背景介绍 中国为农业大国&#xff0c;因此在农业病虫害防治等方面积累了丰富的经验&#xff0c;但在实际工作过程中也存在许多问题。如过于依赖传统经验&#xff0c;对突如而来的新型病虫害问题研究不够到位&#xff0c;如由于判断者主观上面的一些模糊&#xff0c;而带来…

从零实现循环神经网络(二)

#本篇博客代码是基于上一篇《从零实现循环神经网络&#xff08;一&#xff09;》 上一篇网址&#xff1a;从零实现循环神经网络&#xff08;一&#xff09;-CSDN博客 1.初始化时返回隐藏层状态 def init_rnn_state(batch_size, num_hiddens, device):"""bat…

大神用一幅动态的风景画:让天气预报变得更生动

你有没有想过,有一天你可以不看那些冰冷的天气图表,而是通过一幅美丽的风景画就能知道明天的天气?想象一下,清晨醒来,打开手机,看到的不是一堆晦涩的数字,而是一幅阳光洒满草原的画,告诉你今天是个好天气。这就是现在逐渐兴起的一种新方式——通过风景图像来可视化天气…