小阿飞
路人甲
路人甲
  • 注册日期2004-11-05
  • 发帖数3
  • QQ
  • 铜币130枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1141回复:0

图斑相交操作错误!

楼主#
更多 发布于:2007-01-29 17:43
<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>
喜欢0 评分0
游客

返回顶部