smilemsok
路人甲
路人甲
  • 注册日期2004-12-17
  • 发帖数26
  • QQ
  • 铜币200枚
  • 威望0点
  • 贡献值0点
  • 银元0个
10楼#
发布于:2005-06-05 19:58
<P>可以把你用这个接口的代码发给我参考一下吗?</P><img src="images/post/smile/dvbbs/em08.gif" />
举报 回复(0) 喜欢(0)     评分
smilemsok
路人甲
路人甲
  • 注册日期2004-12-17
  • 发帖数26
  • QQ
  • 铜币200枚
  • 威望0点
  • 贡献值0点
  • 银元0个
11楼#
发布于:2005-06-06 21:46
<P>谁用过这个方法,帮我看看我的代码错在哪好吗?</P>
<P>//如果用户点击确定按钮<br>   if(md.DialogResult == DialogResult.OK )</P>
<P>           //选择"selece from the" 用户操作<br>    if (md.selectedOperateIndex  == 0)<br>    <br>     //选择的层的操作为intersect<br>     if (md.layerOperateMethodIndex == 0)</P>
<P>             <br>       <br>   <br>   if (md.checkedListBox1.SelectedIndices.Count> 0 )<br>    for (int i = 0;i < md.checkedListBox1.SelectedIndices.Count;i++)<br>    {<br>    inputfeaturelayer =(FeatureLayer)this.axMapControl1.get_Layer(md.checkedListBox1.SelectedIndices);<br>       MessageBox.Show(inputfeaturelayer.Name.ToString());<br>   //确定输入table <br>   ITable inputTable = (ITable)inputfeaturelayer;</P>
<P>   //定义输入featureclass(备用)<br>   IFeatureClass inputfeatureclass = inputfeaturelayer.FeatureClass;</P>
<P>   //确定用户选择的单层(overlayfeaturelayer)<br>   overlayfeatureLayer = (FeatureLayer)this.axMapControl1.get_Layer(md.selectedlayerIndex);<br>   MessageBox.Show(overlayfeatureLayer.Name.ToString());<br>   //确定OverlayTable<br>   ITable OverlayTable = (ITable)overlayfeatureLayer;</P>
<P>   //Table错误检查<br>   if (inputTable == null)<br>      MessageBox.Show("Table QI failed");<br>         if (OverlayTable == null)<br>    MessageBox.Show("Table QI failed");</P>
<P>             MessageBox.Show("Table QI failed");</P>
<P>   //定义输出featureclass name和shape type(由输入feature class决定)<br>   IFeatureClassName featureclassName = new FeatureClassNameClass();<br>   featureclassName.FeatureType = esriFeatureType.esriFTSimple;<br>            featureclassName.ShapeType = inputfeatureclass.ShapeType;<br>   featureclassName.ShapeFieldName = "shape";</P>
<P>   //设置输出路径和featureclass名称<br>   IWorkspaceName wsName = new WorkspaceNameClass();<br>   wsName.WorkspaceFactoryProgID = "esriCore.ShapeFileWorkspaceFactory.1";<br>   wsName.PathName = "C:\temp";<br>   IDatasetName datasetName = (IDatasetName)featureclassName;<br>   datasetName.Name = "Intersect_result";<br>   datasetName.WorkspaceName = wsName;<br>             <br>   //设置tolerance<br>   double tol = 0.0;</P>
<P>            IBasicGeoprocessor BSGeop = new BasicGeoprocessorClass();<br>   MessageBox.Show("error?");<br>            //IFeatureClass outputfeatureclass = new FeatureClassClass();<br>   IFeatureClass outputfeatureclass = BSGeop.Intersect(inputTable, false, OverlayTable, false, tol,featureclassName);<br>   <br>   //加载输出层到当前地图<br>            IFeatureLayer outputfeaturelayer = new FeatureLayerClass();<br>   outputfeaturelayer.FeatureClass = outputfeatureclass;<br>            outputfeaturelayer.Name = outputfeatureclass.AliasName;<br>   this.axMapControl1.AddLayer(outputfeaturelayer,this.axMapControl1.LayerCount);</P>

<P><STRONG><FONT face=Verdana color=#61b713>调试最后停在这一行代码上:IFeatureClass outputfeatureclass = BSGeop.Intersect(inputTable, false, OverlayTable, false, tol,featureclassName);</FONT></STRONG></P>
<P><FONT face=Verdana color=#61b713><STRONG>提示错误为:未处理的“System.Runtime.InteropServices.COMException”类型的异常出现在 control.exe 中。</STRONG></FONT></P>
<P><STRONG><FONT face=Verdana color=#61b713>其他信息: 未指定的错误</FONT></STRONG></P>
<P><br> </P><img src="images/post/smile/dvbbs/em08.gif" />
[此贴子已经被作者于2005-6-6 21:53:31编辑过]
举报 回复(0) 喜欢(0)     评分
上一页 下一页
游客

返回顶部