MapObject控制元件的使用之符號繪製 (轉)

worldblog發表於2008-01-22
MapObject控制元件的使用之符號繪製 (轉)[@more@]

Map的使用之符號繪製

作者 北京 張松偉

to:zswzwy@163.com">zswzwy@163.com

 

在MO當中,可以在圖層上自己畫一些特定的符號,以標識特殊的點。比如:各地方的地圖,上面標識了一些大廈、地鐵、學校等,這些標識我們可以用MO的TrackingLayer來實現。:namespace prefix = o ns = "urn:schemas--com::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 

moCrosill 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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章