wx_hyx
路人甲
路人甲
  • 注册日期2007-01-14
  • 发帖数1
  • QQ
  • 铜币110枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:965回复:1

各顶点坐标

楼主#
更多 发布于:2007-11-12 22:10
<P>vba中我已经获得一个feature,并且确定为面,我如何获得各顶点坐标啊?</P>
<P>有人能帮我吗?急!</P>
喜欢0 评分0
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2007-11-13 16:21
<P>可以利用IPointCollection来获取节点;下面的代码说明了他的用法</P>

<P>Dim pFeatCursor As IFeatureCursor<BR>    Set pFeatCursor = pFeatClass.Update(pSpatialFilter, False)<BR>    <BR>    Set pFeature = pFeatCursor.NextFeature<BR>    Dim pPolyBndry As IPolyline<BR>    Dim pTopOp As ITopologicalOperator<BR>    Dim pPolyCurve As IPolycurve<BR>    Dim pPtColl As IPointCollection<BR>    Dim pPoint As IPoint<BR>    Set pPoint = New Point<BR>    Dim pPline As IPolyline<BR>    Set pPline = pCutGeom<BR>    <BR>    Do While Not pFeature Is Nothing<BR>    <BR>      Set pTopOp = pFeature.Shape<BR>      Set pPolyBndry = pTopOp.Boundary<BR>      Set pPolyCurve = pFeature.ShapeCopy<BR>      Set pTopOp = pPolyBndry<BR>      Set pPtColl = pTopOp.Intersect(pPline, esriGeometry0Dimension)<BR><BR>      If pPtColl.PointCount > 0 Then<BR>        MsgBox "Found an intersection"<BR>'        pPtColl.QueryPoint (0), pPoint<BR>        <BR>        Dim lNewPartIdx As Long<BR>        Dim lNewSegIdx As Long<BR>        pPolyCurve.SplitAtPoint pPtColl.Point(0), True, False, False, lNewPartIdx, lNewSegIdx<BR>        Set pFeature.Shape = pPolyCurve<BR> <BR>        pFeature.Store<BR>        pFeatCursor.UpdateFeature pFeature<BR>        <BR>      End If<BR>      Set pFeature = pFeatCursor.NextFeature<BR>    Loop<BR></P>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
游客

返回顶部