实现的是类似arcmap里的Label和UnLabel功能
''' <summary>
''' 用Label方式添加标注
''' </summary>
''' <param name="pFeatureLayer">需要Label的FeatureClass</param>
''' <param name="pFieldName">用于Label的字段名</param>
''' <remarks></remarks>
Public Sub LabelFeature(ByVal pFeatureLayer As IFeatureLayer, ByVal pFieldName As String)
Dim pLabels As IGeoFeatureLayer = New FeatureLayer
pLabels = pFeatureLayer
Dim pAnnoProps As IAnnotateLayerProperties = New LabelEngineLayerProperties
Dim pLblEngLyrProps As ILabelEngineLayerProperties = New LabelEngineLayerProperties
pLabels.AnnotationProperties.QueryItem(0, pAnnoProps, Nothing, Nothing)
pLblEngLyrProps = pAnnoProps
pLblEngLyrProps.IsExpressionSimple = True
pLblEngLyrProps.Expression = pFieldName
pLabels.DisplayAnnotation = True
''刷新语句
pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, Nothing, Nothing)
End Sub
''' <summary>
''' 不显示Label
''' </summary>
''' <param name="pFeaturelayer">操作的图层</param>
''' <remarks></remarks>
Public Sub UnLabelFeature(ByVal pFeatureLayer As IFeatureLayer)
Dim pLabels As IGeoFeatureLayer = New FeatureLayer
pLabels = pFeatureLayer
pLabels.DisplayAnnotation = False
''刷新语句
pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, Nothing, Nothing)
End Sub
posted on 2008-07-17 10:31
王者之魂 阅读(177)
评论(0) 编辑 收藏