阅读:2430回复:7
如何在面或者线显示出节点
就像ARCVIEW或者ARCMAP中选中图块,或者线,在编辑节点的时候,会显示出每个节点,不知道这个功能怎么实现,有没有班主指点一下
[此贴子已经被作者于2005-8-16 14:55:05编辑过]
|
|
1楼#
发布于:2005-08-17 09:20
iPointCollection=iPolygon
|
|
2楼#
发布于:2005-08-17 09:24
<P>你在开发帮助里搜索Vertex Line Symbol Example</P>
<P>有详细的介绍</P> |
|
|
3楼#
发布于:2005-08-18 16:23
多谢提示,但还不是很明白,我试试看!<img src="images/post/smile/dvbbs/em02.gif" />
|
|
4楼#
发布于:2005-08-26 14:05
有没谁能够给一个简单的代码,用帮助的调试了半天搞不定啊,大侠!<img src="images/post/smile/dvbbs/em12.gif" />
|
|
5楼#
发布于:2005-08-29 15:10
<P>给你一个vba的例子,:)</P>
<P>Option Explicit<BR>Private m_VertexSymbol As IMarkerSymbol<BR><BR>Private Sub UIButtonControl1_Click()<BR> ' draw all vertices in all visible layers<BR> Dim pMxDoc As IMxDocument, l As Long<BR> Set pMxDoc = ThisDocument<BR> For l = 0 To pMxDoc.FocusMap.LayerCount - 1<BR> DrawLayerVertices pMxDoc.FocusMap.Layer(l)<BR> Next l<BR><BR>End Sub<BR><BR>Sub DrawVertices(pFC As IFeatureClass)<BR> Dim pMxDoc As IMxDocument<BR> Set pMxDoc = ThisDocument<BR> <BR> If m_VertexSymbol Is Nothing Then<BR> Set m_VertexSymbol = New SimpleMarkerSymbol<BR> End If<BR> <BR> Dim pAV As IActiveView<BR> Set pAV = pMxDoc.FocusMap<BR> <BR> Dim pSF As ISpatialFilter<BR> Set pSF = New SpatialFilter<BR> Set pSF.Geometry = pAV.Extent<BR> pSF.SpatialRel = esriSpatialRelIntersects<BR> pSF.GeometryField = pFC.ShapeFieldName<BR> <BR> Dim pFCur As IFeatureCursor<BR> Set pFCur = pFC.Search(pSF, False)<BR> Set pSF = Nothing<BR> <BR> Dim pFeat As IFeature, pPointColl As IPointCollection<BR> With pAV.ScreenDisplay<BR> .StartDrawing .hDC, esriNoScreenCache<BR> .SetSymbol m_VertexSymbol<BR> Set pFeat = pFCur.NextFeature<BR> Do Until pFeat Is Nothing<BR> Set pPointColl = pFeat.Shape<BR> Dim l As Long<BR> For l = 0 To pPointColl.PointCount - 1<BR> .DrawPoint pPointColl.Point(l)<BR> Next l<BR> Set pFeat = pFCur.NextFeature<BR> Loop<BR> .FinishDrawing<BR> End With<BR> <BR>End Sub<BR>Function DrawLayerVertices(pLayer As ILayer)<BR> If pLayer.Visible Then<BR> If TypeOf pLayer Is ICompositeLayer Then<BR> Dim pCLayer As ICompositeLayer<BR> Set pCLayer = pLayer<BR> Dim l As Long<BR> For l = 0 To pCLayer.Count - 1<BR> DrawLayerVertices pCLayer.Layer(l)<BR> Next l<BR> Else<BR> If TypeOf pLayer Is IFeatureLayer Then<BR> Dim pFLayer As IFeatureLayer<BR> Set pFLayer = pLayer<BR> If pFLayer.FeatureClass.ShapeType = esriGeometryPolygon Or _<BR> pFLayer.FeatureClass.ShapeType = esriGeometryPolyline Then<BR> DrawVertices pFLayer.FeatureClass<BR> End If<BR> End If<BR> End If<BR> End If<BR></P> |
|
|
6楼#
发布于:2005-08-29 22:06
谢谢,后来我也解决了!
|
|
7楼#
发布于:2005-09-01 17:17
我是用MapControl的drawshap函数画的:<br>
mpcMap.DrawShape pPoint, pSymbol<br> |
|