📄 annotation.frm
字号:
VERSION 5.00
Object = "{9BD6A640-CE75-11D1-AF04-204C4F4F5020}#2.0#0"; "mo20.ocx"
Begin VB.Form Form1
Caption = "LabelRenderer对象实例"
ClientHeight = 5010
ClientLeft = 1830
ClientTop = 1470
ClientWidth = 7080
LinkTopic = "Form1"
PaletteMode = 1 'UseZOrder
ScaleHeight = 5010
ScaleWidth = 7080
Begin VB.CheckBox Check3
Caption = "同时显示标注和底图"
Height = 375
Left = 120
TabIndex = 4
Top = 4440
Width = 5175
End
Begin VB.CheckBox Check2
Caption = "随着地图显示范围变化改变字体大小"
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
Value = 1 'Checked
Width = 1575
End
Begin VB.CommandButton Command2
Caption = "缩小"
Height = 495
Left = 5760
TabIndex = 1
Top = 4320
Width = 1215
End
Begin VB.CommandButton Command1
Caption = "全图显示"
Height = 495
Left = 5760
TabIndex = 0
Top = 3720
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自带的Trails地图
'默认路径为C:\Program Files\ESRI\MapObjects2\Samples\Data\Trails
dc.Database = "C:\Program Files\ESRI\MapObjects2\Samples\Data\Trails"
'若连接地理数据库失败,则结束程序
If Not dc.Connect Then End
'调入道路图层roads.shp
Dim layer As New MapLayer
Set layer.GeoDataset = dc.FindGeoDataset("roads")
Map1.Layers.Add layer
'调入标注图层anno.shp
Set layer = New MapLayer
Set layer.GeoDataset = dc.FindGeoDataset("anno")
Map1.Layers.Add layer
End Sub
Sub SetupRenderers()
'为道路图层创建ValueMapRenderer
'依据Type字段值将不同类型的道路以不同颜色显示
Set ly = Map1.Layers("roads")
Set ly.Renderer = New ValueMapRenderer
ly.Renderer.SymbolType = moLineSymbol
ly.Renderer.Field = "TYPE"
'设置道路类型
ly.Renderer.ValueCount = 4
ly.Renderer.Value(0) = "Dirt Road"
ly.Renderer.Value(1) = "Highway"
ly.Renderer.Value(2) = "Paved Road"
ly.Renderer.Value(3) = "Single Track"
'为不同道路设置不同颜色
ly.Renderer.Symbol(0).Color = moRed
ly.Renderer.Symbol(1).Color = moDarkGreen
ly.Renderer.Symbol(1).Size = 2
ly.Renderer.Symbol(2).Color = moDarkGreen
ly.Renderer.Symbol(3).Color = moOrange
'创建LabelRenderer对象以显示道路标注
Set ly = Map1.Layers("anno")
ly.Symbol.Color = moCyan
'创建LabelRenderer对象
Set ly.Renderer = New LabelRenderer
'不显示底图
ly.Renderer.DrawBackground = False
'标注内容为Text字段的值
ly.Renderer.Field = "TEXT"
'文字高度由Height字段的值决定
ly.Renderer.HeightField = "HEIGHT"
Set sym = ly.Renderer.Symbol(0)
'设置文字的字体
Dim txtFont As New StdFont
txtFont.Name = "Times"
sym.Font = txtFont
End Sub
'"沿折线显示文字"复选框鼠标单击事件响应代码
Private Sub Check1_Click()
'设置文字是否沿折线显示
Set r = Map1.Layers("anno").Renderer
r.SplinedText = Check1.Value = 1
Map1.Refresh
End Sub
'"随着地图显示范围变化改变字体大小"复选框鼠标单击事件响应代码
Private Sub Check2_Click()
'设置文字是否随着地图显示范围的变化而改变大小
Set r = Map1.Layers("anno").Renderer
If Check2.Value = 1 Then
'文字高度由Height字段的值决定
r.HeightField = "HEIGHT"
Else
'文字高度不变
r.HeightField = ""
End If
Map1.Refresh
End Sub
'"同时显示标注和底图"复选框鼠标单击事件响应代码
Private Sub Check3_Click()
'设置是否同时显示文本标注和底图
Set r = Map1.Layers("anno").Renderer
r.DrawBackground = Check3.Value = 1
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 + -