当前位置: 首页 > article >正文

华为HarmonyOS地图服务 6 - 侦听事件来实现地图交互

本章节包含地图的点击和长按、相机移动(华为地图的移动是通过模拟相机移动的方式实现的)、以及“我的位置”按钮点击等事件侦听。

接口说明

以下是地图侦听事件相关接口,以下功能主要由MapComponentController提供,更多接口及使用方法请参见接口文档。

接口名

描述

on(type: 'mapClick', callback: Callback<mapCommon.LatLng>): void

设置地图点击事件侦听器。

on(type: 'mapLongClick', callback: Callback<mapCommon.LatLng>): void

设置地图长按事件侦听器。

on(type: 'cameraMoveStart', callback: Callback<number>): void

设置相机开始移动事件侦听器。

on(type: 'cameraMove', callback: Callback<void>): void

设置相机移动事件侦听器。

on(type: 'cameraIdle', callback: Callback<void>): void

设置相机移动结束事件侦听器。

on(type: 'markerClick' , callback: Callback<Marker>): void

设置marker点击事件侦听器。

on(type: 'myLocationButtonClick', callback: Callback<void>): void

设置我的位置按钮点击事件侦听器。

on(type: 'pointAnnotationClick', callback: Callback<PointAnnotation>): void

设置pointAnnotation点击事件侦听器。

开发步骤

地图点击事件侦听

this.mapController.on("mapClick", (position) => {
console.info("mapClick", `on-mapClick position = ${position.longitude}`);
});

地图长按事件侦听

this.mapController.on("mapLongClick", (position) => {
console.info("mapLongClick", `on-mapLongClick position = ${position.longitude}`);
});

相机移动侦听

相机移动时(华为地图的移动是通过模拟相机移动的方式实现的),通过设置侦听器,能够对相机移动状态进行侦听。

  • 当相机开始移动时,会回调cameraMoveStart。
this.mapController.on("cameraMoveStart", (reason) => {
console.info("cameraMoveStart", `on-cameraMoveStart reason = ${reason}`);
});
  • 当相机移动或用户与触摸屏交互时,会多次调用cameraMove。

this.mapController.on("cameraMove", () => {
console.info("cameraMove", `on-cameraMove`);
});
  • 当相机停止移动时,会回调cameraIdle。
this.mapController.on("cameraIdle", () => {
console.info("cameraIdle", `on-cameraIdle`);
});

标记点击事件侦听

标记是指在地图的指定位置添加标记以标识位置、商家、建筑等。详情请参见标记。

this.mapController.on("markerClick", (marker) => {
console.info("markerClick", `markerClick: ${marker.getId()}`);
});

我的位置侦听

this.mapController.on("myLocationButtonClick", () => {
console.info("myLocationButtonClick", `myLocationButtonClick`);
});

点注释事件侦听

点注释是指在地图的指定位置添加点注释以标识位置、商家、建筑等,并可以通过信息窗口展示详细信息。

this.mapController.on("pointAnnotationClick", (pointAnnotation) => {
console.info("pointAnnotationClick", `pointAnnotationClick: ${pointAnnotation.getId()}`);
});

 

 


http://www.kler.cn/news/315073.html

相关文章:

  • C++中的new和delete及其重载
  • JMeter全流程性能测试实战!
  • 第十二周:机器学习
  • iPhone16,超先进摄像头系统?丝滑的相机控制
  • 说说 RESTful API,以及如何使用它构建 web 应用程序。
  • 【6DRepNet360全范围头部姿态估计onnxruntime推理】
  • Spring Boot RESTful 风格四大请求编码模板(GET、POST、PUT、DELETE)
  • 分布式事务详细笔记:什么是分布式事务--Seata--XA模式--AT模式
  • 分享课程:云LAN到家视频教程
  • 【数据结构】排序算法---归并排序
  • VMware虚拟机因磁盘空间不足黑屏无法登录
  • 为什么Redis这么快及可以实现的功能
  • Postman接口测试工具详解
  • 计算机网络通关学习(二)
  • 【Matlab 肌电信号分析】
  • VMware安装win10
  • SpringBoot lombok(注解@Getter @Setter)
  • Backend - Eclipse 软件写 java 项目
  • 从 CSS 到屏幕:揭秘浏览器渲染背后的小秘密
  • 数据结构与算法-Trie树添加与搜索
  • 茴香豆的茴的写法-SpringBoot处理客户端请求的几种方式
  • 并发与并行的区别:深入理解Go语言中的核心概念
  • 大模型安全风险分析
  • 如何在WordPress中添加事件Schema(分步指南)
  • 小世界网络 | “小世界”网络和无标度网络
  • 开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-快速体验(十三)
  • 695. 岛屿的最大面积
  • C# 访问Access存取图片
  • 实时流处理框架(如Flink、Spark Streaming)
  • 系统架构设计师:软件可靠性