2.3.1 Symbol对象
Symbol对象是图层中的图元的显示符号,,在跟踪层中,每个几何对象用一个Symbol对象描述,在Map1.Layers的图层中,每个图层一个Symbol属性,全图层的图元共用一个Symbol对象。
1 Symbol.SymbolType属性
Map1.Layers中的矢量图层,一个图层中只能有一种类型的图元,按图元的类型分,图层可以分为三种类型:点、线、面,用图层中的Symbol.SymbolType的值标识,可用如下程序判断矢量图层中图元的类型:
Private Sub Command1_Click()
Dim l As Object
Dim ftype As String
For Each l In Map1.Layers
If l.LayerType = moMapLayer Then
Select Case l.Symbol.SymbolType
Case moFillSymbol ‘2
ftype = “面”
Case moLineSymbol ‘1
ftype = “线”
Case moPointSymbol ‘0
ftype = “点”
End Select
End If
Next l
End Sub
2 Symbol.Style属性
Symbol.Style的值按矢量图层的类型(点、线、面)分成三组,用于点图层,指定点的绘制符号;用于线图层,指定线的类型;用于面图层,指定填充图案。各组的义如下:
Symbol.symbolType = 0 (点) 符号常量 值 符号 moCircleMarker 0 圆 moSquareMarker 1 长方形 moTriangleMarker 2 三角形 moCrossMarker 3 十字线 moTrueTypeMarker 4 文字 |
Symbol.symbolType = 1 (线) 符号常量 值 符号 moSolidLine 0 moDashLine 1 moDotLine 2 moDashDotLine 3 moDashDotDotLine 4
|
Symbol.SymbolType = 2 (面)
符号常量 值 填充方法
moSolidFill 0 Solid
moTransparentFill 1 Transparent
moHorizontalFill 2 Horizontal
moVerticalFill 3 Vertical
moUpwardDiagonalFill 4 Upward Diagonal
moDownwardDiagonalFill 5 Downward Diagonal
moCrossFill 6 Cross
moDiagonalCrossFill 7 Diagonal Cross
moLightGrayFill 8 Light Gray Fill
moGrayFill 9 Gray Fill
moDarkGrayFill 10 DarkGray Fill
请在MapObjects2的帮助中索引 FillStyle Constants LineStyle Constants MarkerStyle Constants查看三组图案
4 Symbol. Color 属性
Color As OLE_COLOR
用Color指定的颜色绘制Symbol.Style指定的符号(线、填充图案)。
例 为点图层、线图层、面图层设置显示风格及颜色.(参见光盘中的Symbol目录中的程序)
Dim sym As MapObjects2.Symbol
Private Sub Form_Load()
Dim strDataPath As String
Dim dc As New MapObjects2.DataConnection
Dim lyr As New MapObjects2.MapLayer ' 创建图层对象
strDataPath = ReturnDataPath("world") ' 数据库目录名
'dc.Database = "d:/mobook/sample/data/world"
dc.Database = strDataPath
If Not dc.Connect Then End
Set lyr.GeoDataset = dc.FindGeoDataset("Country") '面图层
Set sym = lyr.Symbol
sym.Style = moVerticalFill
sym.Color = 255
Map1.Layers.Add lyr '在地图窗口中添加Country图层
Set lyr = New MapLayer
Set lyr.GeoDataset = dc.FindGeoDataset("rivers") '线图层
lyr.Symbol.Style = moSolid
lyr.Symbol.Color = moBlue
Map1.Layers.Add lyr
Set lyr = New MapLayer
Set lyr.GeoDataset = dc.FindGeoDataset("Cities") '点图层
Set sym = lyr.Symbol
sym.Style = moCircleMarker
sym.Color = moYellow
Map1.Layers.Add lyr
Set lyr = New MapLayer