C# 使用 IMapAlgebraOp 接口进行栅格计算并显示结果
C# 使用 IMapAlgebraOp 接口进行栅格计算并显示结果
本文将详细介绍如何在 C# 中使用 IMapAlgebraOp 接口和 RasterMapAlgebraOp 类进行栅格计算,并将结果显示在 MapControl 中。
-
添加引用 首先,需要添加
ESRI.ArcGIS.SpatialAnalyst引用,以便使用IMapAlgebraOp接口和RasterMapAlgebraOp类。 -
实例化对象 在代码中实例化
IMapAlgebraOp接口和RasterMapAlgebraOp类:
3. **构建表达式**
构建栅格计算表达式,例如:
```c#string expression = 'Con((' + rasterLayer1.FilePath + ' > 0), ' + rasterLayer1.FilePath + ' * ' + rasterLayer2.FilePath + ', 0)';
其中,`rasterLayer1` 和 `rasterLayer2` 是已经加载到 `MapControl` 中的两个栅格图层,`expression` 是栅格计算表达式。
4. **执行计算**
调用 `IMapAlgebraOp` 接口的 `Execute` 方法,执行栅格计算:
```c#IRaster rasterResult = mapAlgebra.Execute(expression);
5. **添加图层**
将计算结果添加到 `MapControl` 中:
```c#IRasterLayer rasterLayerResult = new RasterLayerClass();rasterLayerResult.CreateFromRaster(rasterResult);mapControl.AddLayer(rasterLayerResult);
6. **刷新 MapControl**
```c#mapControl.Refresh();
以上是使用 `IMapAlgebraOp` 接口和 `RasterMapAlgebraOp` 类进行栅格计算,并将结果显示在 `MapControl` 中的具体流程。
原文地址: https://www.cveoy.top/t/topic/nN7w 著作权归作者所有。请勿转载和采集!