MapObject控件的使用之符号绘制 (转)

MapObject控件的使用之符号绘制 (转)[@more@]

Mapobject控件的使用之符号绘制

作者 北京 张松伟

Mailto:zswzwy@163.com" rel="nofollow">zswzwy@163.com

 

在MO当中,可以在图层上自己画一些特定的符号,以标识特殊的点。比如:各地方的地图,上面标识了一些大厦、地铁、学校等,这些标识我们可以用MO的TrackingLayer来实现。XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

首先在你的视图类的中加入成员变量:CMoTrackingLayer  m_tLayer;

然后,每个地图图层都包函TrackingLayer,你要得到它们,就像这样:

m_tLayer = m_map.GetTrackingLayer();

好了,下面就要开始往地图上加标识点了。MO的点表示方法,我在前面已经提过了,下面你要创建一些点,并转换成地图坐标,并用CmoTrackingLayer类的AddEvent()方法把它们画到MO的地图中。

for(int i=0; i

  {

    CMoPoint mapPt(m_map.ToMapPoint(m_Point.GetAt(i), m_Point.GetAt(i)));

 

    m_tLayer = m_map.GetTrackingLayer();

    m_tLayer.AddEvent(mapPt, 0); 

  }

  好了运行,已经在你的图上显视了很多矩形的点。

有的人可能要问,AddEvent()方法的第二个参数是做什么的呢?好,我正要说这个问题。

在MO中,每个点都有它的样式,我们称为Symbo Style。你可以自己设置它的个数,样式,大小,颜色等。

m_tLayer.SetSymbolCount(3);    //设置Symbo的个数为3个。

下面就可以对这3个Symbo进行设置了。

  m_tLayer.GetSymbol(0).SetSymbolType(moPointSymbol);

  m_tLayer.GetSymbol(0).SetStyle(moCircleMarker);

  m_tLayer.GetSymbol(0).SetColor(RGB(255,240,255));

  m_tLayer.GetSymbol(0).SetSize(6);

 

  m_tLayer.GetSymbol(1).SetSymbolType(moPointSymbol);

  m_tLayer.GetSymbol(1).SetStyle(moSquareMarker);

  m_tLayer.GetSymbol(1).SetColor(RGB(255,240,255));

  m_tLayer.GetSymbol(1).SetSize(6);

 

  m_tLayer.GetSymbol(2).SetSymbolType(moPointSymbol);

  m_tLayer.GetSymbol(2).SetStyle(moTriangleMarker);

  m_tLayer.GetSymbol(2).SetColor(RGB(255,240,255));

  m_tLayer.GetSymbol(2).SetSize(6);

 

相关样式我会在后面给出,或查看MO的帮助。刚才我们只是加了很多点,TrackingLayer的功能可不只这些。它可以加一些圆、矩形、多边形等等。这些可以通过设置Symbo的样式表示出来。


 

Symbo的相关类型:

moFillSymbol、moLineSymbol、moPointSymbol 分别为多边形、线、点。

 

Symbo的各种样式:

点:

moCircleMarker    0  Circle 

moSquareMarker 1  Square 

moTriangleMarker  2  Triangle 

moCrossMarker    3  Cross 

moTrueTypeMarker  4  TrueType

 

线:

moSolidLine    0  Solid line 

moDashLine    1  Dash line 

moDotLine 2  Dot line 

moDashDotLine   3  Dash Dot line 

moDashDotDotLine  4  Dash Dot Dot line

 

多边形:

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

 

此外你还可以自定义Symbo类型。

 

TrakcingLayer的颜色列表:

 

moBlack    0x0 Black

moRed    0xFF Red

moGreen    0xFF00 Green

moBlue    0xFF0000 Blue

moMagenta  0xFF00FF Magenta

moCyan    0xFFFF00 Cyan

moWhite    0xFFFFFF White

moLightGray  12632256 LightGray

moDarkGray  4210752 DarkGray

moGray  8421504 Gray

moPaleYellow 13697023 Pale Yellow

moLightYellow 8454143 Light Yellow

moYellow    65535 Yellow

moLimeGreen  12639424 Lime Green

moTeal 8421440 Teal

moDarkGreen  16384 Dark Green

moMaroon   128    Maroon

moPurple    8388736 Purple

moOrange    33023 Orange

moKhaki    7051175 Khaki

moOlive    32896 Olive

moBrown    4210816 Brown

moNavy    8404992 Navy

 

好了,检验一下你的成果吧。在下一次我将介绍如何用 程序新建图层,下次见吧。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-998118/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-998118/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值