fnwgz
伴读书童
伴读书童
  • 注册日期2004-09-16
  • 发帖数120
  • QQ
  • 铜币638枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2135回复:3

[求助]如何由polyline图层生成polygon图层

楼主#
更多 发布于:2007-05-21 22:36
<P>如题,我有一个polyline图层,我想由这个图层生一个polygon图层,(在arcmap中,可用arctoolbox的Features中的‘要素到多边型’来实现)如果用engine或ao,如何实现,请各位高手指教。</P>
[此贴子已经被作者于2007-5-21 22:37:58编辑过]
喜欢0 评分0
我也许很笨,但是我一直再努力,没有放弃!
pink12345
路人甲
路人甲
  • 注册日期2007-01-31
  • 发帖数6
  • QQ
  • 铜币130枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2007-05-22 09:14
<P>用FeatureToPolygon可以生成的啊</P>
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
2楼#
发布于:2007-05-22 16:38
<P>下面的代码说明了如何把一个polyline转换成polygon,</P><PRE>Sub CreatePolygon()
    Dim pMxDoc As IMxDocument
    Set pMxDoc = ThisDocument
    
    Dim pFeatureSelection As IFeatureSelection
    Set pFeatureSelection = pMxDoc.FocusMap.Layer(1)
    
    Dim pFeatureCursor As IFeatureCursor
    pFeatureSelection.SelectionSet.Search Nothing, True, pFeatureCursor
    
    Dim pFeature As IFeature
    Set pFeature = pFeatureCursor.NextFeature
    
    Dim pPolygon As IPolygon
    Set pPolygon = CreatePolygonFromPolyline(pFeature.ShapeCopy)
    
    CreatePolygonElement pPolygon
End Sub

Private Function CreatePolygonFromPolyline(pPolyline As IPolyline) As IPolygon
    Dim pInCollection As IPointCollection
    Dim pOutCollection As IPointCollection
    Dim pPolygon As IPolygon
    Dim i As Integer
    
    Set pOutCollection = New Polygon
    
    Set pInCollection = pPolyline
    For i = 0 To pInCollection.PointCount - 1
        pOutCollection.AddPoint pInCollection.Point(i)
    Next i
    
    Set pPolygon = pOutCollection
    pPolygon.Close
    
    Set CreatePolygonFromPolyline = pPolygon
End Function

Private Sub CreatePolygonElement(pPolygon As IPolygon)
    Dim pMxDoc As IMxDocument
    Set pMxDoc = ThisDocument
    
    Dim pGC As IGraphicsContainer
    Set pGC = pMxDoc.FocusMap
    
    Dim pElement As IElement
    Set pElement = New PolygonElement
    pElement.Geometry = pPolygon
    
    pGC.AddElement pElement, 0
    pMxDoc.ActiveView.Refresh
End Sub
</PRE>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
fnwgz
伴读书童
伴读书童
  • 注册日期2004-09-16
  • 发帖数120
  • QQ
  • 铜币638枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2007-05-30 10:37
感谢gis,问题已经解决.<img src="images/post/smile/dvbbs/em05.gif" /><img src="images/post/smile/dvbbs/em08.gif" /><img src="images/post/smile/dvbbs/em12.gif" />
我也许很笨,但是我一直再努力,没有放弃!
举报 回复(0) 喜欢(0)     评分
游客

返回顶部