YULIN Arcgis 无标签 2023年08月27日 10:05:00 1776 ArcGis JS API监听地图拖动 监听地图的方式有很多,在文档中搜索watch关键词你会发现非常多的方法,这里以监听地图的Extent属性为例,主要讲解2种方式。 如果想要监听地图被人为操作了,只要监听Extent属性就够了,无论是拖拽、旋转、缩放、键盘移动还是其他的padding修改等操作都可以触发。 关于防抖:属性的变更事件反馈是非常迅速且频繁的,一秒出十好几次。需要做防抖操作。 防抖也有很多方案,例如lodash工具类debounce()、rxjs的debounceTime()、甚至也可以自己通过重复的撤销刷新setTimeout()事件来实现防抖。 > [官网实现监听的demo](https://developers.arcgis.com/javascript/latest/sample-code/sandbox/?sample=event-explorer) 也可以参考官方给出的监听实现方案 方法1.对MapView上的属性进行watch监听 ``` this.STATE.view.watch('extent', (extent) => { // do something 执行你想要的操作 }); ``` 方法2:arcgis [reactiveUtils](https://developers.arcgis.com/javascript/latest/api-reference/esri-core-reactiveUtils.html#watch)工具类 > ArcGIS API for JavaScript 4.23 版本发布 ``` reactiveUtils.watch( () => view.popup.visible, // 直接在这里填写你要监听的对象 () => { console.log(`Popup visible: ${visible}`); // callback }); ``` 分享到QQ好友 Last Arcgis JS API 利用CIM Symbol 实现双拼色管线效果 Next Mac 终端关闭被占用的端口程序