You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Esri ArcGIS JS API 4.x版本MapView调用emit触发点击/双击事件失效问题

ArcGIS JS API 4.20 模拟触发MapView点击/双击事件说明

4.20版本支持通过MapView.emit方法触发点击、双击事件,升级后失效的核心原因是4.x版本的事件参数结构和3.x存在本质差异,直接复用3.x写法无法正常运行。

正确实现代码

// 需确保MapView实例已完成加载,建议放在view.when()回调内执行
const screenPoint = {
  x: 200, // 目标点击位置相对于MapView容器左上角的水平像素值
  y: 300  // 目标点击位置相对于MapView容器左上角的垂直像素值
};

// 转换得到合规的地图坐标点,自动适配当前视图空间参考
const mapPoint = view.toMap(screenPoint);

// 构造完整的模拟事件参数
const simulateEventParams = {
  mapPoint,
  screenPoint,
  stopPropagation: () => {},
  preventDefault: () => {}
};

// 触发单击事件
view.emit("click", simulateEventParams);

// 触发双击事件
view.emit("double-click", simulateEventParams);

注意事项

  • 必须传入mapPoint和screenPoint两个核心参数,缺少任意一个都会导致监听回调无法正常识别触发事件
  • 若事件监听逻辑中需要读取点击命中的要素、图形等属性,需要手动将对应属性补充到simulateEventParams对象中
  • 禁止在视图未完成加载(view.when()未回调)时调用emit方法,该场景下事件不会被触发

内容的提问来源于stack exchange,提问作者Jethik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 22:39:00