最近项目需要通过指定范围加载图层,做个总结。
1.如果使用的ArcGIS Server版本是10.8或者更高版本,动态服务在出图时支持clipping参数,可以只显示指定区域的数据。关于clipping参数的说明请见:Export Map | ArcGIS REST APIs | ArcGIS Developers (在此页面中搜索clipping)
在arcgis javascript api中,clipping参数通过MapImageLayer的customParameters参数指定。
2.对于切片服务,服务器端无法做切片过滤。最简单的方案还是在客户端做遮盖层,例如在graphicslayer中添加遮盖周边区域的graphic; 或者使用TileLayer、ImageryTileLayer的effect属性, demo请见:Highlight a country with an effect | Sample Code | ArcGIS Maps SDK for JavaScript 4.30 | Esri DeveloperDocumentation site for ArcGIS Maps SDK for JavaScript on Esri Developer website.https://developers.arcgis.com/javascript/latest/sample-code/effect-blur-shadow/
或者自定义图层做遮盖效果,demo请见:nullDocumentation site for ArcGIS Maps SDK for JavaScript on Esri Developer website.https://developers.arcgis.com/javascript/latest/sample-code/custom-lv-masking/
如果仅限制显示的extent, 可以在程序中设置图层的fullExtent。