VB + MO 实现地图着色
看了云南大学杨老师的教程.确实有很大的帮助.但是那个可能对教学比较实用,工程实际就少了点.
这个是地图分类着色的一段VB 代码.
Dim layer As MapObjects2.MapLayer
Dim f As New StdFont
Dim dc As New DataConnection
Dim LabelRenderer As MapObjects2.LabelRenderer
Dim OLPR As MapObjects2.LabelPlacer
f.Name = "Times"
f.Bold = False
f.Size = 10
dc.Database = App.Path & "\data"
If Not dc.Connect Then End
'============================================================================
Set layer = New MapObjects2.MapLayer
Set layer.GeoDataset = dc.FindGeoDataset("region_x")
Dim ocbr As MapObjects2.ClassBreaksRenderer
Set ocbr = New MapObjects2.ClassBreaksRenderer
With ocbr
.SymbolType = moFillSymbol
.Field = "render"
Set ostats = layer.Records.CalculateStatistics("render")
fbreak = ostats.Mean - (ostats.StdDev * 3)
' Print ostats.StdDev
' Print ostats.Sum
For i = 0 To 6 Step 1
If fbreak >= ostats.Min And fbreak <= ostats.Max Then
.BreakCount = .BreakCount + 1
.Break(.BreakCount - 1) = fbreak
End If
fbreak = fbreak + ostats.StdDev
Next
.RampColors moPaleYellow, moLimeGreen
ocbr.DrawBackground = True
Set layer.Renderer = ocbr
End With
Map1.Layers.Add layer
Map1.Refresh
这个是地图分类着色的一段VB 代码.
Dim layer As MapObjects2.MapLayer
Dim f As New StdFont
Dim dc As New DataConnection
Dim LabelRenderer As MapObjects2.LabelRenderer
Dim OLPR As MapObjects2.LabelPlacer
f.Name = "Times"
f.Bold = False
f.Size = 10
dc.Database = App.Path & "\data"
If Not dc.Connect Then End
'============================================================================
Set layer = New MapObjects2.MapLayer
Set layer.GeoDataset = dc.FindGeoDataset("region_x")
Dim ocbr As MapObjects2.ClassBreaksRenderer
Set ocbr = New MapObjects2.ClassBreaksRenderer
With ocbr
.SymbolType = moFillSymbol
.Field = "render"
Set ostats = layer.Records.CalculateStatistics("render")
fbreak = ostats.Mean - (ostats.StdDev * 3)
' Print ostats.StdDev
' Print ostats.Sum
For i = 0 To 6 Step 1
If fbreak >= ostats.Min And fbreak <= ostats.Max Then
.BreakCount = .BreakCount + 1
.Break(.BreakCount - 1) = fbreak
End If
fbreak = fbreak + ostats.StdDev
Next
.RampColors moPaleYellow, moLimeGreen
ocbr.DrawBackground = True
Set layer.Renderer = ocbr
End With
Map1.Layers.Add layer
Map1.Refresh

浙公网安备 33010602011771号