tj_pzx
路人甲
路人甲
  • 注册日期2007-08-09
  • 发帖数2
  • QQ
  • 铜币100枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:985回复:1

关于融合同层中两条polyline要素的问题,请大侠们为小弟指点!

楼主#
更多 发布于:2007-09-06 16:33
<P>各位大虾,我是信任。我想在同层中,融合两条polyline要素,参考了帮助文档中的一些代码,写了如下代码。但一点效果都没有,请大虾们</P>
喜欢0 评分0
tj_pzx
路人甲
路人甲
  • 注册日期2007-08-09
  • 发帖数2
  • QQ
  • 铜币100枚
  • 威望0点
  • 贡献值0点
  • 银元0个
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>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部