10楼#
发布于:2005-06-05 19:58
<P>可以把你用这个接口的代码发给我参考一下吗?</P><img src="images/post/smile/dvbbs/em08.gif" />
|
|
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编辑过]
|
|
上一页
下一页