用途:在 ArcGIS Maps SDK for JavaScript 的 MapView 中实现用户交互,包括点击命中测试(hitTest)、要素高亮、绘制几何图形、坐标转换和事件处理,适用于需要点击识别要素、悬停高亮或让用户绘制与编辑图形的 Web 地图应用。
主要能力: 命中测试:view.hitTest(event) 返回结果数组,可设置 include 或 exclude 过滤图层;结果类型含 graphic、media、route。 高亮:通过 view.whenLayerView(layer) 获取 layerView,调用 layerView.highlight() 高亮单个、多个图形或按 objectId,返回句柄需 remove() 释放。 绘制:提供 arcgis-sketch 组件(属性如 creation-mode、available-create-tools,事件如 arcgisCreate、arcgisUpdate、arcgisDelete,方法如 create、update、delete、undo、redo),以及核心 Sketch 组件和低层 Draw 工具(draw.create("polygon")、vertex-add、draw-complete)。 事件处理:支持 click、immediate-click、double-click、pointer-move、drag、key-down 等;用 reactiveUtils 监听属性变化或一次性等待。 坐标转换:view.toMap() 与 view.toScreen()。
使用方式:支持直接 ESM 导入,如 import Draw from "@arcgis/core/views/draw/Draw.js";CDN 场景改为 const Draw = await $arcgis.import("@arcgis/core/views/draw/Draw.js")。通常先获取 view 并 await view.when(),再绑定事件。
限制与注意:需避免高亮句柄泄漏,新建高亮前先移除旧句柄;避免重复添加事件监听导致回调多次触发;命中测试无结果时检查图层过滤与 view 是否就绪;响应点击建议用 immediate-click 以降低延迟;弹窗需图层启用 popupEnabled 并设置 popupTemplate。其余如具体收费、版本兼容范围暂未提供。