阅读:4526回复:8
[求助]AE实现图层擦除功能Erase(附代码,请指正)
<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> |
|
1楼#
发布于:2010-05-19 14:26
你真是纯爷们,太感谢了
|
|
2楼#
发布于:2009-06-25 11:04
<P>太谢谢了</P>
<P><img src="images/post/smile/dvbbs/em02.gif" /></P> |
|
3楼#
发布于:2009-04-22 02:12
<P><img src="images/post/smile/dvbbs/em01.gif" />但是我得出的还是空的啊。。。。。。</P>
<P>谁帮帮我啊~~</P> |
|
4楼#
发布于:2008-11-27 15:49
<P>楼上的问题,可能是你的窗体缺少引用或者缺少引用的控件等,请确定你已经引用了所有你程序的引用</P>
|
|
|
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> |
|
6楼#
发布于:2008-08-01 19:56
<P>楼主,我用了你这个方法</P>
<P>得到的result的值是空的哦,</P> <P>你会不会啊</P> |
|
7楼#
发布于:2008-05-12 14:13
<P>好,非常感谢,多多帮助</P>
|
|
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> |
|