ArcEngine开发问题总结

来源:互联网 发布:承德县大数据 编辑:程序博客网 时间:2024/05/17 15:40

对最近几个月ArcEngine开发所碰到的问题整理了一下。把容易出错,或费了一番周折才解决的问题列出来,方便以后查看,也为碰到这些问题的朋友提供一些信息。并计划以后将问题不断更新到这里。

 

2010-1-3

一、使用Geoprocessor时,传入参数问题

   如果在使用相关工具传入参数是对象或相对数据库内路径时,需要给“workspace”环境变量设置值,可以是IWorkspace或数据库路径。

  如果需要为此环境变量设置值(后面也会说如何避免设置此环境变量的值),最好是数据库路径,而不要直接设置IWorkspace对象。经过实际使用经验,感觉如果将IWorkspace对象传入到Geoprocessor环境后,后继的处理偶尔会出现一些无法解释的异常。代码如下:

 

 上面提到,如果不设置“workspace”环境变量时,那么输入输出参数就不能是表名或要素类名,而必须包含数据库路径名(要素类在要素集中时。提示:对于输入参数,路径串中的要素集名是可选的)。同样功能代码如下:

两种方式各有优缺点:

用环境变量设置Workspace路径时,只能设置一个。如果需要对多个数据库进行处理时,其它数据库只能通过参数传入;

用参数传入Workspace路径时,对一些特殊符需要处理:碰到路径中包含有空格、分号时,需要把路径用双引号(或单引号)包含起来,如:pIntersect.in_features = "/""+sWorkPath+"//TestPline/";/""+sWorkPath+"//TestPgon/"";

 但如果路径中含有单引号时,不管是否用双引号包含,都会出错。(这个错误我感觉是ArcGIS的Bug)

 

二、创建自定义单位的地理坐标系,投影计算问题

按以下的代码实现自定义地理坐标系的创建,但进行投影计算时会出错,坐标系的单位显示的是自定义的单位,但换算时用的原单位。不知道是ArcGIS的Bug呢还是我们没有写对?

后来经过不断的尝试及用ArcMap的对比,发现用ArcMap定义好坐标系后导出成prj文件,再用ISpatialReferenceFactory.CreateESRISpatialReferenceFromPRJFile方法创建坐标系,可以正确使用。

 

三、Raster导入到RasterCatalog后,显示会偏色

  开始以为是导入时参数设置不对,但仔细看过帮助及反复导入,并未解决问题。后来上网不断的搜索,找到有相同问题的贴子,提示说修改显示的“Stretch Type”来解决。按此方法,果然奏效。

提示:在ArcCatalog中显示偏色,这并不是数据不正确,而是用的默认显示“Stretch Type”不合适有关;

在ArcMap或ArcEngine中,可以通过修改RasterLayer的属性来解决显示偏色问题,将“Stretch Type”改为“None”或“Minimum-Maximum”方式,显示就会正常。同时,我也对当时的影像试过,保持为“standard deviation”时,修改n值为5或以上值时,显示也是正常的。

原创粉丝点击