|
阅读:985回复:1
关于融合同层中两条polyline要素的问题,请大侠们为小弟指点!
<P>各位大虾,我是信任。我想在同层中,融合两条polyline要素,参考了帮助文档中的一些代码,写了如下代码。但一点效果都没有,请大虾们</P>
|
|
|
1楼#
发布于:2007-09-06 16:35
连接上面的帖子
<P>请大虾们帮小弟看看!多谢了!</P>
<P>代码:</P> <P>Private Sub Command2_Click()<BR> <BR> Dim pGeoBag As IGeometryBag<BR> Dim pEnumGeometry As IEnumGeometry<BR> Dim pGeo As IGeometry, i As Long<BR> Dim pPolyLineU As IPolyline<BR> Dim pTopoOp As ITopologicalOperator2<BR> Set pGeoBag = CreateGeometryBag<BR> Set pEnumGeometry = pGeoBag<BR> 'Reset the enumratorpEnumGeometry.Reset<BR> 'Print the number of geometries<BR> Debug.Print "Number of geometries : " ; pEnumGeometry.Count<BR> 'Loop over the enumerator and print the geometrytype of each geometry<BR> Set pGeo = pEnumGeometry.Next<BR> While Not pGeo Is Nothing<BR> Debug.Print "Geometry: " ; i ; " Geometry type: " ; pGeo.GeometryType<BR> i = i + 1<BR> Set pGeo = pEnumGeometry.Next<BR> Wend<BR> <BR> Set pPolyLineU = New Polyline<BR> Set pTopoOp = pPolyLineU<BR> pTopoOp.ConstructUnion pEnumGeometry</P> <P>End Sub</P> <P>Private Function CreateGeometryBag() As IGeometryBag</P> <P> Dim pGeoColl As IGeometryCollection, pPointColl0 As IPointCollection</P> <P> Dim pPointColl1 As IPointCollection<BR> <BR> Dim pMap As IMap<BR> Dim pEnumFeature As IEnumFeature<BR> Dim pEnumFeatureSetup As IEnumFeatureSetup<BR> Dim pFeature As IFeature<BR> Dim pRowSubtypes As IRowSubtypes<BR> Dim pFC As IFeatureClass</P> <P> <BR> Set pGeoColl = New GeometryBag<BR> <BR> Set pMap = MapControl1.Map<BR> Set pEnumFeature = pMap.FeatureSelection<BR> Set pEnumFeatureSetup = pEnumFeature 'QI<BR> pEnumFeatureSetup.AllFields = True<BR>' pEnumFeature.Reset<BR> Set pFeature = pEnumFeature.Next<BR> 'Get the ObjectClassID and Subtype of the first feature in the Enum. Check all of there features against<BR> 'this one in the Do..Loop that follows.<BR> Set pFC = pFeature.Class</P> <P> <BR> Do While (Not pFeature Is Nothing)<BR> Set pPointColl0 = pFeature.ShapeCopy<BR> pGeoColl.AddGeometry pPointColl0<BR> Set pFeature = pEnumFeature.Next<BR> Loop<BR> Set CreateGeometryBag = pGeoColl<BR> <BR>End Function</P> |
|