You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C# WPF环境的ArcGIS Runtime中获取本地栅格文件波段数

栅格波段数获取方案

原有实现问题根因

你当前使用的IdentifyLayerAsync是用于指定位置的栅格像元查询接口,返回结果受识别范围、位置是否落在无数据区域、图层加载状态影响,天然存在返回空的概率,该接口设计用途不是读取栅格固有属性。

推荐实现方案

ArcGIS Runtime 100.x及以上版本中,Raster实例自带的元数据属性RasterInfo可直接读取波段数,不需要依赖任何交互识别操作,稳定性和性能远高于原有实现,示例代码如下:

// 先确保图层加载完成,若图层刚初始化可先主动触发加载
if (_rasterLayer.LoadStatus != Esri.ArcGISRuntime.LoadStatus.Loaded)
{
    await _rasterLayer.LoadAsync();
}
// 直接从栅格元数据读取波段数
int bandCount = _rasterLayer.Raster.RasterInfo.BandCount;

补充说明

  • 该方法直接读取栅格文件头的元数据信息,和栅格内容、显示位置无关,不会出现偶发获取失败的问题
  • 若你是直接通过本地文件路径初始化Raster,不需要绑定到图层也可直接读取:
Esri.ArcGISRuntime.Rasters.Raster localRaster = new Esri.ArcGISRuntime.Rasters.Raster("你的栅格文件路径");
await localRaster.LoadAsync();
int bandCount = localRaster.RasterInfo.BandCount;

内容的提问来源于stack exchange,提问作者Priyanka Ravi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 22:21:02