白天
路人甲
路人甲
  • 注册日期2005-03-27
  • 发帖数25
  • QQ
  • 铜币214枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:4526回复:8

[求助]AE实现图层擦除功能Erase(附代码,请指正)

楼主#
更多 发布于:2008-05-07 20:07
<P>使用AE9.2中ESRI.ArcGIS.AnalysisTools.Clip可以实现图层剪切功能。现在想用ESRI.ArcGIS.AnalysisTools.Erase实现图层擦除功能,代码如下。但是所得到的结果为null,没有实现擦除效果。相似的代码,为何Erase就不起作用呢?</P>
<P>请高人赐教!谢谢!</P>
<P>  public  void Erase()<BR>        {<BR>            #region 初始化许可<BR>            IAoInitialize m_AoInitialize = new AoInitializeClass();<BR>            esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;<BR>           <BR>            licenseStatus = m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngine);<BR>            if (licenseStatus == esriLicenseStatus.esriLicenseNotInitialized)<BR>            {<BR>                MessageBox.Show("没有esriLicenseProductCodeEngine许可!");<BR>                Application.Exit();<BR>            }<BR>            #endregion</P>
<P>            Geoprocessor gp = new Geoprocessor();<BR>            gp.OverwriteOutput = true;<BR>          <BR>            ESRI.ArcGIS.AnalysisTools.Erase eraseTool = new ESRI.ArcGIS.AnalysisTools.Erase(@"G:\arcgis\ArcTutor\Catalog\Yellowstone\mask.shp", @"G:\arcgis\ArcTutor\Catalog\Yellowstone\study_area.shp", @"G:\arcgis\ArcTutor\Catalog\Yellowstone\eraseoutput.shp");<BR>           <BR>            //ESRI.ArcGIS.AnalysisTools.Clip clipTool = new ESRI.ArcGIS.AnalysisTools.Clip(@"G:\arcgis\ArcTutor\Catalog\Yellowstone\mask.shp", @"G:\arcgis\ArcTutor\Catalog\Yellowstone\study_area.shp", @"G:\arcgis\ArcTutor\Catalog\Yellowstone\clipoutput.shp");<BR>            IGeoProcessorResult result=(IGeoProcessorResult)gp.Execute(eraseTool, null);</P>
<P>            MessageBox.Show("ok");<BR>        }</P>
喜欢0 评分0
duke0606
路人甲
路人甲
  • 注册日期2010-04-13
  • 发帖数2
  • QQ
  • 铜币110枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2010-05-19 14:26
你真是纯爷们,太感谢了
举报 回复(0) 喜欢(0)     评分
niehoude
路人甲
路人甲
  • 注册日期2008-12-12
  • 发帖数5
  • QQ
  • 铜币132枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2009-06-25 11:04
<P>太谢谢了</P>
<P><img src="images/post/smile/dvbbs/em02.gif" /></P>
举报 回复(0) 喜欢(0)     评分
penguin86
路人甲
路人甲
  • 注册日期2006-10-08
  • 发帖数1
  • QQ
  • 铜币114枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2009-04-22 02:12
<P><img src="images/post/smile/dvbbs/em01.gif" />但是我得出的还是空的啊。。。。。。</P>
<P>谁帮帮我啊~~</P>
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
4楼#
发布于:2008-11-27 15:49
<P>楼上的问题,可能是你的窗体缺少引用或者缺少引用的控件等,请确定你已经引用了所有你程序的引用</P>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
Amin_GIS
路人甲
路人甲
  • 注册日期2006-03-03
  • 发帖数28
  • QQ
  • 铜币230枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2008-11-23 10:17
<P>#region 初始化许可<BR>            IAoInitialize m_AoInitialize = new AoInitializeClass();<BR>            esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;<BR>  //高<BR>            licenseStatus = m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcInfo);<BR>//低<BR>licenseStatus = m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngine);<BR>            #endregion</P>
<P>这段代码放在什么位置啊,我把它放在InitializeComponent()里,运行成功,可是停止运行时不能打开启动项FORM的界面,错误提示为<STRONG><FONT face=Arial size=2>加载设计器时遇到一个或多个错误。这些错误在下面列出。一些错误可通过重新生成项目来修复,而另一些错误则需要更改代码。而放在其他地方又不管用.</FONT></STRONG></P>
举报 回复(0) 喜欢(0)     评分
bluemaple
路人甲
路人甲
  • 注册日期2007-03-14
  • 发帖数12
  • QQ
  • 铜币179枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2008-08-01 19:56
<P>楼主,我用了你这个方法</P>
<P>得到的result的值是空的哦,</P>
<P>你会不会啊</P>
举报 回复(0) 喜欢(0)     评分
yanleigis
路人甲
路人甲
  • 注册日期2003-12-13
  • 发帖数38
  • QQ
  • 铜币185枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2008-05-12 14:13
<P>好,非常感谢,多多帮助</P>
举报 回复(0) 喜欢(0)     评分
白天
路人甲
路人甲
  • 注册日期2005-03-27
  • 发帖数25
  • QQ
  • 铜币214枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2008-05-10 14:54
<P>问题已找到,是权限不够。许可初始化的代码修改如下,程序即可执行擦除操作。</P>
<P> #region 初始化许可<BR>            IAoInitialize m_AoInitialize = new AoInitializeClass();<BR>            esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;<BR>  //高<BR>            licenseStatus = m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcInfo);<BR>//低<BR>licenseStatus = m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngine);<BR>            #endregion</P>
<P>注意:许可要从高到低添加,由高到低的排序为:esriLicenseProductCodeArcInfo、esriLicenseProductCodeArcEditor、esriLicenseProductCodeArcView、esriLicenseProductCodeArcServer、esriLicenseProductCodeEngineGeoDB、  esriLicenseProductCodeEngine</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部