arcgis for js获取可视范围内要素(空间查询)

背景

arcgis for js版本4.19

webgis上至少有几千个点,在地图放大到一定比例后,点高亮动画显示。由于点较多,如果全部高亮动画显示,地图会较卡顿,为了解决这个问题,定为仅可视范围内的点高亮动画显示。高亮动画已完成,现在需要完成的是获取可视范围内要素

实现 步骤

可视范围于拖拽相关,所以需要先监听MapView的拖拽事件。下面操作均在拖拽后。arcgis for js中的QueryTask支持geometry查询。所以关键是获取可视范围的geometry


// 获取当前可视范围区域geometry,MapView中的extent即包含当前地图可视范围的值 // 将extent通过fromExtent转为可查询的geometry。 //(因为可视范围是一个平面,所以借用Polygon模块的fromExtent转化,省略了一些计算) let geometry = esri.Polygon.fromExtent(view.extent) let query = new esri.Query({ geometry: geometry, returnGeometry: true, outFields: ['*'] }) featureLayer.queryFeatures(query).then(async res => { // 这个就是查询到的可视氛围中的要素了 console.log(res.features) })