AE+C#开发问题之五——地图代数ERROR 010328: Syntax error at or near symbol NEW-LINE.
2015-07-26 14:59
716 查看
最近在使用地图代数计算两个或者几个栅格数据的最大值、最小值、平均值的时候,遇到如下问题:
先粘贴下代码:
ERROR 010316: Unable to open the input raster: E:\项目\TEMPLATE.GDB\G_G528>E:\项目\TEMPLATE.GDB\G_G529
ERROR 010067: Error in executing grid expression.
最小值错误:
ERROR 010316: Unable to open the input raster: E:\项目\TEMPLATE.GDB\G_G808<E:\项目\TEMPLATE.GDB\G_G809
ERROR 010067: Error in executing grid expression.
平均值错误:
ERROR 010328: Syntax error at or near symbol NEW-LINE.
ERROR 010267: Syntax error in parsing grid expression.
经过反复试以及网友提供的方法,是因为空格的问题,拿最大值为例:
错误写法:
正确写法:
也就是说加了空格就没问题,就这么一个小的问题,或者arcengine接口解析的时候,是根据空格来判断运算符。
先粘贴下代码:
IGeoDataset tempGeodata1 = pRaster1 as IGeoDataset;// IGeoDataset tempGeodata2 = pRaster2 as IGeoDataset; IMapAlgebraOp rsalgebra = new RasterMapAlgebraOpClass(); //设置栅格运算空间 IRasterAnalysisEnvironment rasAnaEnv = (IRasterAnalysisEnvironment)rsalgebra; IWorkspaceFactory wsf = new FileGDBWorkspaceFactory(); IWorkspace ws = wsf.OpenFromFile(m_projextdatapath + "\\" + m_projextgdbname, 0);//设置输出空间 rasAnaEnv.OutWorkspace = ws; rsalgebra.BindRaster(tempGeodata1, "F"); rsalgebra.BindRaster(tempGeodata2, "T"); IGeoDataset outGetDataset = null; if (operatename == "MAX") { outGetDataset = rsalgebra.Execute("con([F]>[T],[F],[T])"); } if (operatename == "MIN") { outGetDataset = rsalgebra.Execute("con([F]<[T],[F],[T])"); } if (operatename == "MEAN") { outGetDataset = rsalgebra.Execute("([F]+[T]) / 2") ; } return outGetDataset;最大值错误:
ERROR 010316: Unable to open the input raster: E:\项目\TEMPLATE.GDB\G_G528>E:\项目\TEMPLATE.GDB\G_G529
ERROR 010067: Error in executing grid expression.
最小值错误:
ERROR 010316: Unable to open the input raster: E:\项目\TEMPLATE.GDB\G_G808<E:\项目\TEMPLATE.GDB\G_G809
ERROR 010067: Error in executing grid expression.
平均值错误:
ERROR 010328: Syntax error at or near symbol NEW-LINE.
ERROR 010267: Syntax error in parsing grid expression.
经过反复试以及网友提供的方法,是因为空格的问题,拿最大值为例:
错误写法:
outGetDataset = rsalgebra.Execute("con([F]>[T],[F],[T])");
正确写法:
outGetDataset = rsalgebra.Execute("con([F] > [T],[F],[T])");
也就是说加了空格就没问题,就这么一个小的问题,或者arcengine接口解析的时候,是根据空格来判断运算符。
相关文章推荐
- C# 弹出窗体位置设定
- C# 获取鼠标坐标
- C# - CSV file reader
- c#开发宝典王小科 李继业著 1.3.7 “输出”面板
- c# list用法
- C#设计模式(3)建造者模式
- C#设计模式(2)简单工厂模式
- C#设计模式(1)单例模式
- csharp: 用Enterprise Library对象实体绑定数据
- csharp: 用Enterprise Library对象实体绑定数据
- c++ 与C# 单例代码简单实现
- [转]Custom Controls in Visual C# .NET-如何实现自定义控件
- C#-默认显示前列-ShinePans
- c# 阶段总结
- c#中的委托
- c# BackGroundWorker 多线程操作的小例子
- c#中的程序集
- 自定义ComboBox控件,完美解决C#自带的ComboBox效率慢的问题
- 设置C# Windows 服务与桌面交互
- C# 配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler”节