📄 annotation.frm
字号:
VERSION 5.00
Object = "{9BD6A640-CE75-11D1-AF04-204C4F4F5020}#2.0#0"; "mo20.ocx"
Begin VB.Form Form1
Caption = "LabelPlacer对象实例"
ClientHeight = 5385
ClientLeft = 1830
ClientTop = 1470
ClientWidth = 7080
LinkTopic = "Form1"
PaletteMode = 1 'UseZOrder
ScaleHeight = 5385
ScaleWidth = 7080
Begin VB.CheckBox Check4
Caption = "在文本标注下显示有色方框以突出标注"
Height = 375
Left = 120
TabIndex = 6
Top = 4800
Value = 1 'Checked
Width = 5175
End
Begin VB.CheckBox Check3
Caption = "同时显示标注和底图"
Height = 375
Left = 120
TabIndex = 4
Top = 4440
Value = 1 'Checked
Width = 5175
End
Begin VB.CheckBox Check2
Caption = "使用DefaultSymbol显示标注"
Height = 375
Left = 120
TabIndex = 3
Top = 4080
Value = 1 'Checked
Width = 5295
End
Begin VB.CheckBox Check1
Caption = "允许重复标注"
Height = 375
Left = 120
TabIndex = 2
Top = 3720
Width = 1575
End
Begin VB.CommandButton Command2
Caption = "缩小"
Height = 495
Left = 5760
TabIndex = 1
Top = 4680
Width = 1215
End
Begin VB.CommandButton Command1
Caption = "全图显示"
Height = 495
Left = 5760
TabIndex = 0
Top = 4080
Width = 1215
End
Begin MapObjects2.Map Map1
Height = 3495
Left = 120
TabIndex = 5
Top = 120
Width = 6855
_Version = 131072
_ExtentX = 12091
_ExtentY = 6165
_StockProps = 225
BackColor = 16777215
BorderStyle = 1
Contents = "Annotation.frx":0000
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Sub SetupLayers()
'调入数据
Dim dc As New DataConnection
'MapObjects自带的Redlands地图
'默认路径为C:\Program Files\ESRI\MapObjects2\Samples\Data\Redlands
dc.Database = "C:\Program Files\ESRI\MapObjects2\Samples\Data\Redlands"
'若连接地理数据库失败,则结束程序
If Not dc.Connect Then End
'调入图层Redlands.shp
Dim layer As New MapLayer
Set layer.GeoDataset = dc.FindGeoDataset("Redlands")
Map1.Layers.Add layer
End Sub
Sub SetupRenderers()
'创建LabelPlacer对象
Dim LabelPlacerX As New MapObjects2.LabelPlacer
'设置LabelPlacer对象
With LabelPlacerX
'文本标注来自于NAME字段
.Field = "NAME"
'将标注显示于地理对象上方
.PlaceAbove = True
'显示标注的同时显示地理对象
.DrawBackground = True
'不允许显示重复标注
.AllowDuplicates = False
'将CFCC字段值为"A31"的标注出来
.ValueField = "CFCC"
.ValueCount = 1
.Value(0) = "A31"
'设置字体高度
.Symbol(0).Height = Map1.Extent.Height / 50
'设置缺省TextSymbol
.DefaultSymbol.Height = 2500
.DefaultSymbol.Color = moLightGray
'使用缺省TextSymbol
.UseDefault = True
'在文本标注下显示有色方框以突出显示标注
.MaskLabels = True
.MaskColor = moYellow
End With
'将LabelPlacer对象应用于MapLayer上
Set Map1.Layers(0).Renderer = LabelPlacerX
Map1.Refresh
End Sub
'"允许重复标注"复选框鼠标单击事件响应代码
Private Sub Check1_Click()
'设置是否允许重复标注
Set r = Map1.Layers("Redlands").Renderer
If Check1.Value = 1 Then
r.AllowDuplicates = True
Else
r.AllowDuplicates = True
End If
Map1.Refresh
End Sub
'"使用DefaultSymbol显示标注"复选框鼠标单击事件响应代码
Private Sub Check2_Click()
'设置是否使用DefaultSymbol显示标注
Set r = Map1.Layers("Redlands").Renderer
If Check2.Value = 1 Then
r.UseDefault = True
Else
r.UseDefault = False
End If
Map1.Refresh
End Sub
'"同时显示标注和底图"复选框鼠标单击事件响应代码
Private Sub Check3_Click()
'设置是否同时显示文本标注和底图
Set r = Map1.Layers("Redlands").Renderer
r.DrawBackground = Check3.Value = 1
Map1.Refresh
End Sub
'"在文本标注下显示有色方框以突出标注"复选框鼠标单击事件响应代码
Private Sub Check4_Click()
'设置是否在标注下显示有色方框
Set r = Map1.Layers("Redlands").Renderer
If Check4.Value = 1 Then
r.MaskLabels = True
Else
r.MaskLabels = False
End If
Map1.Refresh
End Sub
'"全图显示"按钮鼠标单击事件响应代码
Private Sub Command1_Click()
'设置地图显示范围为全图
Map1.Extent = Map1.FullExtent
End Sub
'"缩小"按钮鼠标单击事件响应代码
Private Sub Command2_Click()
'将地图显示范围扩大1.5倍
Set r = Map1.Extent
r.ScaleRectangle 1.5
Map1.Extent = r
End Sub
Private Sub Form_Load()
SetupLayers
SetupRenderers
End Sub
'Map Control控件MouseDown事件响应代码
Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, _
x As Single, y As Single)
'放大地图区域
Set r = Map1.TrackRectangle
If Not r Is Nothing Then Map1.Extent = r
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -