Logo
Section 1 / 2

简单事件

学习如何使用事件监听器处理地图上的简单事件。

导入

简单事件

学习如何使用事件监听器处理地图上的简单事件。

JavaScript 是一种在浏览器中使用的事件驱动编程语言。这意味着 JavaScript 会响应用户交互,通过生成事件并期望程序监听这些用户界面(UI)事件。

UI 事件分为两种类型,具体如下:

  • 状态变化事件:反映 Maps JavaScript API 中某些对象的状态变化。当对象的属性发生改变时,会触发一个事件,表明该属性已更改。例如,当地图的缩放级别发生变化时,会触发 zoom_changed 事件。
  • 用户事件:从 DOM 向 Maps JavaScript API 传播的事件。例如鼠标点击事件(click)。

Course Image

UI 事件

Maps JavaScript API 中的对象会响应用户事件,如鼠标事件或键盘事件。以下是一些与地图对象相关的事件:

  • bounds_changed 事件:每当地图视图范围发生变化时触发。
  • center_changed 事件:每当地图中心点发生变化时触发。
  • click 事件:当用户点击地图上的任意可点击元素或地图本身时触发。
  • contextmenu 事件:当用户尝试在地图容器中打开 DOM 上下文菜单时触发。
  • dblclick 事件:当用户双击地图时触发。
  • drag 事件:当用户按住并拖动地图时触发。
  • dragend 事件:当用户停止拖动地图时触发。
  • dragstart 事件:当用户开始拖动地图时触发。
  • heading_changed 事件:当地图的航向属性发生变化时触发。
  • idle 事件:当地图在缩放或平移后进入空闲状态时触发。
  • maptypeid_changed 事件:当用户更改地图类型时触发。
  • mousemove 事件:当用户将指针移动到地图上时触发。
  • mouseout 事件:当用户将指针移出地图容器时触发。
  • mouseover 事件:当用户将指针从外部移入地图容器时触发。
  • projection_changed 事件:当地图的投影发生变化时触发。
  • rightclick 事件:当用户右键点击地图时触发。
  • tilesloaded 事件:当地图瓦片加载完成时触发。
  • tilt_changed 事件:当地图的倾斜角度发生变化时触发。
  • zoom_changed 事件:当地图的缩放级别发生变化时触发。

事件处理

使用 addListener() 方法来注册事件通知。该方法接收两个参数:要监听的事件和事件触发时调用的函数。以下是为名为 map 的 Map 对象添加 click 事件监听器的示例:

1map.addListener("click", () => { 2 // 在点击事件触发时执行操作 3});

代码示例

在下面的示例中,事件监听器被附加到标记(marker)和地图上,用于监听标记被点击或地图被平移的情况。

No configuration found for ID: c8bd6140108b0fa243da7f851541a240f7e667be6a7641647f0ead622c8a0524

以下是上述代码组件中 JavaScript 文件的简要说明:

  • 第 8 行:我们初始化一个名为 marker 的 Marker 对象,以便测试点击事件。
  • 第 15 行:我们为 map 对象添加了一个 center_changed 事件监听器,该事件在用户拖动或平移地图导致地图中心改变时触发。
  • 第 16 至 18 行:center_changed 事件监听器触发一个延时函数。该函数在事件发生三秒后,使用 panTo() 方法将地图重新平移到标记位置。
  • 第 23 至 26 行:我们为标记添加了 click 事件监听器。该监听器在点击事件发生时,首先将地图缩放级别从 4 改为 8,然后如果地图尚未以标记为中心,则将其中心调整为标记的位置。

控件与交互

在 UI 事件中访问参数