背景
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)
})