|
阅读:1141回复:0
图斑相交操作错误!
<P>数据库中的两个不同图层的两个图斑求相交时出现错误,但是将这两个图斑导出到本地两个shape文件作相交时并没有错误,求高手指教!</P>
<P>代码如下:</P> <P>IWorkspaceFactory pWorkspaceFactory;<BR>IFeatureWorkspace pFeatureWorkspace;<BR>pWorkspaceFactory =new ESRI.ArcGIS.DataSourcesGDB.AccessWorkspaceFactoryClass();<BR> <BR>IPropertySet pPropertySet;<BR>pPropertySet=new PropertySetClass() ;<BR>pPropertySet.SetProperty("DATABASE","c:/landuse.mdb");</P> <P>pFeatureWorkspace=(IFeatureWorkspace)pWorkspaceFactory.Open (pPropertySet,0);<BR>IFeatureClass pFeatureClass1 = pFeatureWorkspace.OpenFeatureClass("landuselandystmp_yd");<BR>IFeatureClass pFeatureClass2 = pFeatureWorkspace.OpenFeatureClass("landusepolygon2006_XZ");<BR>IQueryFilter pQueryFilter1=new QueryFilterClass() ;<BR>IQueryFilter pQueryFilter2=new QueryFilterClass() ;<BR>pQueryFilter1.WhereClause="objectid=30";<BR>pQueryFilter2.WhereClause="objectid=13825";<BR>IFeatureCursor pFeatureCursor1 = pFeatureClass1.Search(pQueryFilter1, false);<BR>IFeatureCursor pFeatureCursor2 = pFeatureClass2.Search(pQueryFilter2, false);<BR>IFeature pFeature1 = pFeatureCursor1.NextFeature();<BR>IFeature pFeature2 = pFeatureCursor2.NextFeature();</P> <P>ITopologicalOperator3 pTopo1 = (ITopologicalOperator3)pFeature1.Shape;<BR>pTopo1.IsKnownSimple_2 = false;<BR>pTopo1.Simplify();<BR>ITopologicalOperator3 pTopo2 = (ITopologicalOperator3)pFeature2.Shape;<BR>pTopo2.IsKnownSimple_2 = false;<BR>pTopo2.Simplify();<BR>IGeometry pGeometry = (IGeometry)pTopo2;<BR>ESRI.ArcGIS.Geometry.IGeometry pGeometry2 = pTopo1.Intersect(pGeometry,ESRI.ArcGIS.Geometry.esriGeometryDimension.esriGeometry2Dimension);</P> <P>产生错误:</P> <P>"HRESULT中的异常:0x80040218"</P> <P>pFeature1:错误:标识符"pFeature1"超出范围</P> <P>pTopo1:错误:标识符"pTopo1"超出范围</P> |
|