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
posted @ 2006-03-05 19:47  观我生,君子无咎  阅读(3242)  评论(0)    收藏  举报