您的位置:首页 > 其它

关于调用ArcGIS中GP工具Erase等得不到结果解决方法

2009-11-11 11:24 976 查看
关于调用ArcGIS中GP工具.Erase、SymDiff

得不到生成结果问题解决方法

□/文 3echo

一、问题描述:

最近在做一个数据检查工具,检查空间数据拓扑关系的正确性,我使用以下代码实现图形擦除效果、图形差集效果,总是得不到生成结果文件,觉得非常奇怪。

1、 擦除效果代码

Erase tErase = new Erase();

tErase.in_features = tInfeatures; //待擦除图层

tErase.erase_features = tEraseFeatures; //擦除图层

tErase.out_feature_class = strFileName; //输出文件路径

tErase.cluster_tolerance = this.m_Tolerance; //容差值

2、 差集效果代码

SymDiff tSymDiff = new SymDiff();

tSymDiff.in_features = tInfeatures;

tSymDiff.update_features = tupdatefeatures;

tSymDiff.out_feature_class = strFileName;

tSymDiff.cluster_tolerance = "0.01"; // this.m_Tolerance;

tSymDiff.join_attributes = "ALL";

二、问题分析

得到不生成结果文件有几中可能情况,一种是参数设置不正确,如容差值应该为数字型的文字,如果弄成文本型文字,就是出现得不到生成结果文件的情形;第二种是要素类设置不正确。

我仔细核对了这两种情形,发现自己写的代码确实是没有问题,但是就是出不来结果,真是奇怪了。

三、问题解决

最后发现是license授权问题,我们在程序启动运行时,如果将权限设置低于ArcInfo,都会得不到生成结果,不信你可以利用ArcMap试试看。所以这就要求我们在初始化License时要授予正确的权限。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐