⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 annotation.frm

📁 vb+mo进行开发的例子
💻 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 + -