AE+C# 개발 문제의 다섯째 – 지도 대수 ERROR 010328: Syntax error at or near symbol NEW-LINE.

1881 단어 Programminglanguage
최근 맵 대수를 사용하여 두 개의 격자선 데이터의 최대값, 최소값, 평균값을 계산할 때 다음과 같은 문제가 발생했습니다.
먼저 코드를 붙여넣습니다.
            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]
최대값 오류:
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 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 인터페이스에서 해석할 때 빈칸에 따라 연산자를 판단한다.

좋은 웹페이지 즐겨찾기