gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
10楼#
发布于:2005-03-08 14:37
'功能:符号初始化
Private Sub SymbolInit()
    Dim pFcolor As IColor
    Dim pOcolor As IColor
    Dim pTrackcolor As IColor
    Dim pVcolor As IColor
    Set pFcolor = New RgbColor
    Set pOcolor = New RgbColor
    Set pTrackcolor = New RgbColor
    Set pVcolor = New RgbColor
    pFcolor.RGB = RGB(255, 0, 0)
    pOcolor.RGB = RGB(0, 0, 255)
    pTrackcolor.RGB = RGB(0, 255, 255)
    pVcolor.RGB = RGB(0, 255, 0)
    Set m_MarkerSym = New SimpleMarkerSymbol
    m_MarkerSym.Style = esriSMSCircle
    m_MarkerSym.Color = pFcolor
    m_MarkerSym.Outline = True
    m_MarkerSym.OutlineColor = pOcolor
    m_MarkerSym.OutlineSize = 1
    Set m_VertexSym = New SimpleMarkerSymbol
    m_VertexSym.Style = esriSMSSquare
    m_VertexSym.Color = pVcolor
    m_VertexSym.Size = 4
    Set m_EndPointSym = New SimpleMarkerSymbol
    m_EndPointSym.Style = esriSMSSquare
    m_EndPointSym.Color = pFcolor
    m_EndPointSym.Size = 4
    Set m_LineSym = New SimpleLineSymbol
    m_LineSym.Color = pFcolor
    m_LineSym.Width = 1
    Set m_TracklineSym = New SimpleLineSymbol
    m_TracklineSym.Color = pTrackcolor
    m_TracklineSym.Width = 1
    Dim pOsym As ISimpleLineSymbol
    Set pOsym = New SimpleLineSymbol
    pOsym.Color = pOcolor
    pOsym.Width = 1
    Set m_FillSym = New SimpleFillSymbol
    m_FillSym.Color = pFcolor
    m_FillSym.Style = esriSFSVertical
    m_FillSym.Outline = pOsym
End Sub
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
ziliujiang
路人甲
路人甲
  • 注册日期2004-08-11
  • 发帖数15
  • QQ
  • 铜币158枚
  • 威望0点
  • 贡献值0点
  • 银元0个
11楼#
发布于:2005-03-08 14:28
示意代码中关键的显示部分没有贴出来哦 老大 SymbolInit, displayGraphic这两个函数蛮关键呀 主要就是看节点如何显示出来的呀 谢谢了 <img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
ziliujiang
路人甲
路人甲
  • 注册日期2004-08-11
  • 发帖数15
  • QQ
  • 铜币158枚
  • 威望0点
  • 贡献值0点
  • 银元0个
12楼#
发布于:2005-03-08 12:52
谢谢哈 谢谢老大 我试试 <img src="images/post/smile/dvbbs/em05.gif" />
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
13楼#
发布于:2005-03-08 10:41
<P>'功能:显示地物节点
Public Sub ShowAllVertex()
On Error GoTo errHandle:
    Dim ff_t_FeatureCursor As IFeatureCursor
    Dim ff_t_pFeature As IFeature
    If ff_m_CurLayer Is Nothing Then Exit Sub
    
    
    '获取选中的地物
    Set ff_t_FeatureCursor = GetSelectedFeatures
    
    If ff_t_FeatureCursor Is Nothing Then Exit Sub
    '得到要显示节点的地物
    Set ff_t_pFeature = ff_t_FeatureCursor.NextFeature
    If ff_t_pFeature Is Nothing Then Exit Sub
    
    '只选中一个地物进行节点移动
    ff_m_Map.ClearSelection
    ff_m_Map.SelectFeature ff_m_CurLayer, ff_t_pFeature
    Set ff_m_ActiveView = ff_m_Map
    ff_m_ActiveView.Refresh
    
    '如果为点状地物,不显示节点
    If ff_t_pFeature.Shape.GeometryType = esriGeometryPoint Then Exit Sub
    
    Dim pFeatureArray As IArray
    
    Set pFeatureArray = New esriSystem.Array
    pFeatureArray.Add ff_t_pFeature
  
    '符号初始化
    Call SymbolInit
    
    Dim pFeature As IFeature
    Dim pPointCol As IPointCollection
    Dim pPoint As IPoint
    Dim i As Long, j As Long
    Set m_VertexGeoBag = New GeometryBag
    For i = 0 To pFeatureArray.Count - 1
        Set pFeature = pFeatureArray.Element(i)
        Set pPointCol = pFeature.ShapeCopy
        For j = 0 To pPointCol.PointCount - 1
            Set pPoint = pPointCol.Point(j)
            If j = 0 Or j = pPointCol.PointCount - 1 Then
                displayGraphic pPoint, , m_EndPointSym
                pPoint.ID = 10
            Else
                displayGraphic pPoint, , m_VertexSym
                pPoint.ID = 100
            End If
            m_VertexGeoBag.AddGeometry pPoint
        Next j
    Next i
    '显示节点鼠标状态
    m_blnShowVertexStatus = True
    
    Exit Sub
errHandle:
    MsgBox Err.Description, vbOKOnly, "错误"</P><P>End Sub</P>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
上一页 下一页
游客

返回顶部