Visual Graph提供了完整的显示电子地图的功能,但是由于都是隐含功能,所以不易了解,本文做一下详细的介绍。
电子地图上的基本元素是“点、线、面”,而Visual Graph的基本元素是“字、形、线”,电子地图的“面”在Visual Graph中用填充封闭的“线”来表示,那么,电子地图的“点”,如何表示呢?我们将用Visual Graph提供的“元件”来实现,在lib目录下有一个“GIS点符号.tbl”文件,这里面列举了一些常用的“点”,我们来看其中之一“SymbolAA”,源文件如下:
<SymbolAA name="SymbolAA1" origin="256,238" bounds="256,238,256,238" selectmode="1" protect="512" Caption="" Symbol="33" SymbolColor="0">
<text name="text1" origin="268.530798,240" bounds="264.530798,230,268.530798,246" locked="true" autosize="true" border="0" fontname="宋体" fontsize="12" textalign="1"/>
<line name="line1" origin="256.005389,238" points="256,238,6"/>
<text name="text2" origin="270.005389,241.5" bounds="248.005389,229,264.005389,247" locked="true" autosize="true" border="0" fontname="Wingdings" fontsize="12" text="!"/>
<programe>
<!--
property Caption read GetCaption write SetCaption
private function GetCaption()
return Text1.Text
end function
private function GetSymbolColor()
return Text2.FontColor
end function
private function Initialize(Sender)
FSymbol = 33
end function
private function SetCaption(AValue)
Text1.Text = AValue;Refresh()
end function
private function SetSymbol(AValue)
FSymbol = AValue
Text2.Text = Chr( FSymbol )
end function
private function SetSymbolColor(AValue)
Text2.FontColor = AValue
end function
property Symbol read FSymbol write SetSymbol
property SymbolColor read GetSymbolColor write SetSymbolColor editor Color
-->
</programe>
</SymbolAA>
在SymbolAA节点中,origin="256,238"表示这个点目前所在的坐标位置,bounds="256,238,256,238"表示这个点的宽度和高度都是0,SelectMode="1"表示在编辑图形的时候,这个元件没有四边的选择框(既然是点元素,当然不能有选择框了),Protect="512"表示图形“禁止缩放”,也就是当画面缩小或放大后,该点元素中的所有内容都不缩放,字体也保持大小不变。该元件有三个自定义属性,分别是“Caption”表示点元素的文字标签内容、“Symbol”表示点元素的图形符号样式,用特殊字体表示、“SymbolColor”表示图形符号的颜色。
在这个元件中,有三个图形,分别是Text1表示的文字标签、Line1表示的点元素的位置、Text2表示的图形符号。这里,Line1是只有一个顶点的线条,Text1和Text2的"Locked"属性被设置成true,这表示,SymbolAA元件的大小尺寸在计算时不包括它们,也就是说,元件的宽度和高度永远是0。