华为地图服务 - 如何实现地图数据聚合效果? -- HarmonyOS自学20

场景介绍

本章节将向您介绍如何根据地图数据实现聚合效果。

您可以通过比例尺缩放自适应聚合效果,聚合图标可点击。聚合支持功能:

  • 支持按距离聚合ClusterItem。
  • 支持绘制聚合Overlay的默认图标。
  • 支持绘制聚合Overlay的自定义图标。
  • 支持监听聚合Overlay的点击事件。
  • 支持添加单个ClusterItem到聚合Overlay中。
  • 支持删除聚合Overlay。
  • 支持移动地图时重绘聚合Overlay。

cke_2710.png

接口说明

聚合功能主要由MapComponentController的addClusterOverlay接口实现,更多接口及使用方法请参见接口文档。

接口名

描述

addClusterOverlay(params: mapCommon.ClusterOverlayParams): Promise<ClusterOverlay>

聚合接口,支持节点聚合能力。

开发步骤

  1. 导入相关模块。
     
    1. import { map, mapCommon, MapComponent } from '@kit.MapKit';
    2. import { AsyncCallback } from '@kit.BasicServicesKit';
  2. 新增聚合图层。
     
    1. @Entry
    2. @Component
    3. struct ClusterOverlayDemo {
    4. private mapOption?: mapCommon.MapOptions;
    5. private mapController?: map.MapComponentController;
    6. private callback?: AsyncCallback<map.MapComponentController>;
    7. aboutToAppear(): void {
    8. this.mapOption = {
    9. position: {
    10. target: {
    11. latitude: 31.98,
    12. longitude: 118.7
    13. },
    14. zoom: 7
    15. }
    16. }
    17. this.callback = async (err, mapController) => {
    18. if (!err) {
    19. this.mapController = mapController;
    20. // 生成待聚合点
    21. let clusterItem1: mapCommon.ClusterItem = {
    22. position: {
    23. latitude: 31.98,
    24. longitude: 118.7
    25. }
    26. };
    27. let clusterItem2: mapCommon.ClusterItem = {
    28. position: {
    29. latitude: 32.99,
    30. longitude: 118.9
    31. }
    32. };
    33. let clusterItem3: mapCommon.ClusterItem = {
    34. position: {
    35. latitude: 31.5,
    36. longitude: 118.7
    37. }
    38. };
    39. let clusterItem4: mapCommon.ClusterItem = {
    40. position: {
    41. latitude: 30,
    42. longitude: 118.7
    43. }
    44. };
    45. let clusterItem5: mapCommon.ClusterItem = {
    46. position: {
    47. latitude: 29.98,
    48. longitude: 117.7
    49. }
    50. };
    51. let clusterItem6: mapCommon.ClusterItem = {
    52. position: {
    53. latitude: 31.98,
    54. longitude: 120.7
    55. }
    56. };
    57. let clusterItem7: mapCommon.ClusterItem = {
    58. position: {
    59. latitude: 25.98,
    60. longitude: 119.7
    61. }
    62. };
    63. let clusterItem8: mapCommon.ClusterItem = {
    64. position: {
    65. latitude: 30.98,
    66. longitude: 110.7
    67. }
    68. };
    69. let clusterItem9: mapCommon.ClusterItem = {
    70. position: {
    71. latitude: 30.98,
    72. longitude: 115.7
    73. }
    74. };
    75. let clusterItem10: mapCommon.ClusterItem = {
    76. position: {
    77. latitude: 28.98,
    78. longitude: 122.7
    79. }
    80. };
    81. let array: Array<mapCommon.ClusterItem> = [
    82. clusterItem1,
    83. clusterItem2,
    84. clusterItem3,
    85. clusterItem4,
    86. clusterItem5,
    87. clusterItem6,
    88. clusterItem7,
    89. clusterItem8,
    90. clusterItem9,
    91. clusterItem10
    92. ]
    93. for(let index = 0; index < 100; index++){
    94. array.push(clusterItem1)
    95. }
    96. for(let index = 0; index < 10; index++){
    97. array.push(clusterItem2)
    98. }
    99. // 生成聚合图层的入参 聚合distance设置为100vp
    100. let clusterOverlayParams: mapCommon.ClusterOverlayParams = { distance: 100, clusterItems: array };
    101. // 调用addClusterOverlay生成聚合图层
    102. await this.mapController.addClusterOverlay(clusterOverlayParams);
    103. }
    104. }
    105. }
    106. build() {
    107. Stack() {
    108. Column() {
    109. MapComponent({ mapOptions: this.mapOption, mapCallback: this.callback })
    110. .width('100%')
    111. .height('100%');
    112. }.width('100%')
    113. }.height('100%')
    114. }
    115. }

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

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

相关文章

祛“魅”霸王茶姬

“奔着员工福利可以每天喝奶茶去的&#xff0c;我在招聘软件上尝试约了霸王茶姬的面试&#xff0c;想着应该也不会太累&#xff0c;推荐去吗&#xff1f;”一位霸王茶姬的重度爱好者在社交平台发帖问。 茶饮界的“网红”“顶流”&#xff0c;年轻人的“新宠”&#xff0c;霸王…

巴蒂克图案识别系统源码分享

巴蒂克图案识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer V…

一文掌握 Prompt:万能框架+优化技巧+常用指标

Prompt 万能框架 在编写 Prompt 时&#xff0c;从0到1的编写出第一版 Prompt 往往是最难的&#xff0c;而基于已有 Prompt 利用各种技巧进行优化则相对简单。善于解决 “数理问题” 的我们在面对这样一个偏 “文理问题” 的任务时&#xff0c;就像小时候写作文一样难以提笔。如…

Java程序员在编写代码时,通常会使用哪些工具和框架?

Java程序员在日常编码工作中&#xff0c;通常会使用一系列工具和框架来提高开发效率、保证代码质量以及实现快速迭代。以下是一些常用的工具和框架&#xff1a; 开发环境和IDE IntelliJ IDEA&#xff1a;一个强大的Java集成开发环境&#xff0c;提供了智能代码补全、代码分析…

攻防世界Web新手练习区题目(view_source到simple_php)WP

目录 view_source​ robots​ Training-WWW-Robots PHP2​ get_post​ backup​ cookie​ disabled_button​ simple_js​ xff_referer​ weak_auth​ command_execution​ simple_php​ view_source 获取在线场景后访问题目场景 在右键不管用的情况下&#xff0…

一招教你挑代理IP的秘诀

逛乎&#xff0c;一直刷到这类问题&#xff1a; 本质上&#xff0c;都是在面对市面上那么多代理IP服务提供商&#xff0c;挑得眼花缭乱了&#xff0c;而代理IP直接影响到我们数据采集任务的效率、安全性和成功率&#xff0c;所以我们在挑选服务提供商的时候都会谨慎一些。索性我…

华为OD机试 - 水仙花数Ⅱ - 动态规划(Python/JS/C/C++ 2024 E卷 200分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

JavaWeb--纯小白笔记03:servlet入门---动态网页的创建

笔记&#xff1a;index.html在tomcat中为默认的名字&#xff0c;html里面的语法不严谨。改配置文件要小心&#xff0c;不然容易删掉其他 Servlet&#xff1a;服务器端小程序&#xff0c;写动态网页需要用Servlet&#xff0c;普通的java类通过继承HttpServlet&#xff0c;可以响…

抖音如何改ip地址到另外城市

在数字化时代&#xff0c;抖音作为广受欢迎的社交媒体平台&#xff0c;不仅连接了亿万用户&#xff0c;也成为了展示个人生活、分享创意内容的重要舞台。然而&#xff0c;有时候出于隐私保护等需求&#xff0c;用户可能希望更改抖音账号显示的IP地址&#xff0c;使其看起来像是…

超过1000篇文献?Mem)oRAG,下一代 RAG 技术,轻松让AI记住这些海量信息?

想象一下,你每天要阅读几十篇文献,整理上千页的笔记,再将这些信息整合到自己的研究中,是不是有点头大?不光是你,很多人都有这样的困扰,尤其是在处理大量信息时。我们总是渴望一种更智能的方式,能帮我们高效地找到、理解并且运用这些知识。而这正是 MemoRAG 的用武之地。…

会声会影2025视频剪辑教学

会声会影2025是一款超级受欢迎的视频播放软件&#xff0c;用于剪辑和编辑各种类型的视频素材。软件具有直观的用户界面&#xff0c;使得即使对于初学者来说也能轻松上手。该软件提供了各种创意工具&#xff0c;可以帮助用户实现他们的创意想法。用户可以裁剪、合并和重新排列视…

基于误差状态的卡尔曼滤波

基于误差状态的卡尔曼滤波ESKF 注意这里的观测方程&#xff0c;是IMU的误差状态和激光定位的差值得到的。

已解决sublime text 3 注册激活

问题&#xff1a;未激活 解决方法&#xff1a; 安装sublime3后&#xff0c;将Patch.exe文件放入sublime 安装文件下 运行Patch.exe&#xff0c;复制粘贴注册码到 preference->enter license&#xff1b;操作如下 点击“Use license”,提示如下图表示激活成功&#xff1a; 重…

学习笔记——EfficientNet

EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks EfficientNet&#xff1a;重新思考卷积神经网络的模型扩展 论文下载地址&#xff1a; https://arxiv.org/abs/1905.11946 学习笔记参考了这位大佬&#xff1a;https://blog.csdn.net/qq_37541097/ar…

【吊打面试官系列-MySQL面试题】列对比运算符是什么?

大家好&#xff0c;我是锋哥。今天分享关于【列对比运算符是什么&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 列对比运算符是什么&#xff1f; 在 SELECT 语句的列比较中使用&#xff0c;<>&#xff0c;<&#xff0c;<&#xff0c;> &#x…

高校心理辅导:Spring Boot技术实现

2 相关技术简介 2.1Java技术 Java是一种非常常用的编程语言&#xff0c;在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中&#xff0c;Java的身影无处不在&#xff0c;并且拥有旺盛的生命力。Java的跨平台能力十分强大&#xff0c;只需一次编译&#xff0c;任…

Spring Boot赋能高校心理健康教育

1绪 论 1.1研究背景 随着计算机和网络技术的不断发展&#xff0c;计算机网络已经逐渐深入人们的生活&#xff0c;网络已经能够覆盖我们生活的每一个角落&#xff0c;给用户的网上交流和学习提供了巨大的方便。 当今社会处在一个高速发展的信息时代&#xff0c;计算机网络的发展…

做短剧申请微信小程序备案整体的操作流程!

做国内短剧对接微信小程序&#xff0c;小程序备案是必不可少的&#xff0c;需要准备哪些资料&#xff0c;以及需要注意的事项&#xff0c;所需材料全部整理出来了&#xff0c;小程序从注册到类目和备案分为五个步骤来讲解&#xff0c;下面就由我来向大家介绍所有的操作流程。 …

【Linux】解锁系统编程奥秘,高效文件IO的实战技巧

文件 1. 知识铺垫2. C文件I/O2.1. C文件接口2.2 fopen()与重定向2.3. 当前路径2.4. stdin、stdout、stderr 3. 系统文件I/O3.1. 前言3.2. open3.2.1. flags</h3>3.2.2. mode</h3>3.2.3. 返回值fd 3.3. write</h2>3.4. read3.5. close</h2>3.6. lseek&l…