Private Sub Command1_Click()
Map1.Layers.Clear
Form_Load
End Sub
Private Sub Command2_Click()
Screen.MousePointer = vbHourglass
Map1.Layers("necenter").Visible = False
Set layer = Map1.Layers("counties")
'下面以hbeds_1000字段加入收藏 计算点数
'获取hbeds_1000字段统计数据
Set layer.renderer = New MapObjects2.DotDensityRenderer
layer.renderer.Field = "hbeds_1000"
Set stats = layer.Records.CalculateStatistics("hbeds_1000")
With layer.renderer
.DotColor = moRed
.DotSize = 5
'计算点数
.DotValue = (stats.Min + (stats.Max - stats.Min) / 2) / 20
End With
Map1.Refresh
Screen.MousePointer = vbDefault
End Sub
Private Sub Command3_Click()
Screen.MousePointer = vbHourglass
Map1.Layers("NeCenter").Visible = False
'由记录中的STATE_NAME字段生成唯一序列值,Strings对象会自动识别重复的字符串
Dim strings As New MapObjects2.strings
Set layer = Map1.Layers("Counties")
Set recs = layer.Records
Do While Not recs.EOF
strings.Add recs("STATE_NAME").Value
recs.MoveNext
Loop
'建立新的ValueMapRenderer对象
Set layer.renderer = New ValueMapRenderer
'设置着色所依据的字段
layer.renderer.Field = "STATE_NAME"
'添加唯一值序列到ValueMapRenderer对象
layer.renderer.ValueCount = strings.Count
For i = 0 To strings.Count - 1
layer.renderer.Value(i) = strings(i)
Next i
'刷新地图
Map1.Refresh
Screen.MousePointer = vbDefault
End Sub
Private Sub Command4_Click()
Screen.MousePointer = vbHourglass
Map1.Layers("necenter").Visible = False
Set layer = Map1.Layers("counties")
'建立新的ClassBreaksRenderer对象
Set layer.renderer = New ClassBreaksRenderer
Set r = layer.renderer
'设置着色字段
r.Field = "P_OTHER"
'设置统计对象
Set stats = layer.Records.CalculateStatistics("P_OTHER")
'以字段P_OTHER的标准差为区间长度,在P_OTHER字段的平均值附近生成7个区间
Dim breadVal As Double
breakval = stats.Mean - (stats.StdDev * 3)
For i = 0 To 6
If breakval >= stats.Min And breadVal <= stats.Max Then
r.BreakCount = r.BreakCount + 1
'设置区间分界点
r.Break(r.BreakCount - 1) = breakval
End If
breakval = breakval + stats.StdDev
Next i
'使用RampColors方法对区间序列渐变填色
r.RampColors moLightYellow, moBlue
Map1.Refresh
Screen.MousePointer = vbDefault
End Sub
Private Sub Command5_Click()
Screen.MousePointer = vbHourglass
Map1.Layers("necenter").Visible = False
Set layer = Map1.Layers("counties")
Set layer.renderer = New MapObjects2.ClassBreaksRenderer
Set r = layer.renderer
r.Field = "P_OTHER"
'设置区间数量为5
nclasses = 5
'获取记录数
nrecs = layer.Records.Count
r.BreakCount = nclasses - 1
'获取所有地理对象的记录
Set recs = layer.SearchExpression("FeatureID>-1 order by P_OTHER")
'浏览记录并获取区间分界点
For i = 1 To r.BreakCount - 1
For j = 1 To nrecs / nclasses
recs.MoveNext
Next j
r.Break(i) = recs("P_OTHER").Value
Next i
r.RampColors moLightYellow, moBlue
Map1.Refresh
Screen.MousePointer = vbDefault
End Sub