MapObject控件的使用之符号绘制

原创 2003年09月28日 00:35:00

MapObject控件的使用之符号绘制

作者 北京 张松伟

zswzwy@163.com

 

MO当中,可以在图层上自己画一些特定的符号,以标识特殊的点。比如:各地方的地图,上面标识了一些大厦、地铁、学校等,这些标识我们可以用MOTrackingLayer来实现。

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

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

m_tLayer = m_map.GetTrackingLayer();

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

for(int i=0; i<m_Point.GetSize(); 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个。

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

         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的相关类型:

moFillSymbolmoLineSymbolmoPointSymbol 分别为多边形、线、点。

 

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

 

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

C#.net 地图控件开发(七) 地图符号,几何图形样式Symbol

地图符号,几何图形样式         地图符号(cartographic symbol)表示地图要素的空间位置、质量和数量特征的特定图形记号或文字。 构成特点         地图内容是通过符...
  • jackjian
  • jackjian
  • 2013年04月12日 09:18
  • 1890

MapObject控件的使用之加入图层

MapObject控件的使用之加入图层 作者:北京 张松伟zswzwy@163.com MapObject控件是ArcInfo公司开发的一套功能强大的GIS地理信息系统控件,该控件功能非常强大,在软件...
  • zswzwy
  • zswzwy
  • 2003年09月26日 23:19
  • 1526

MapObject控件的使用之图层操作

MapObject控件的使用之图层操作作者: 北京 张松伟zswzwy@163.com 上一次我们已经加好了图层,但是不能对图层进行任何操作,比如移动、放大、缩小、全屏等。接下来我将介绍如何在MapO...
  • zswzwy
  • zswzwy
  • 2003年09月26日 23:02
  • 1985

MapObject 控件的使用之加入图层(作者/张松伟)

MapObject 控件的使用之加入图层 作者/张松伟 MapObject 控件是 ArcInfo 公司开发的一套功能强大的 GIS 地理信息系统控件,该控件功能非常强...
  • famenwuliang
  • famenwuliang
  • 2011年04月02日 18:17
  • 989

MapObject控件的使用之改变图层颜色

MapObject控件的使用之改变图层颜色作者:张松伟zswking@163.com 如果你的地国正在显示一个“中国地图”的图层,而图层中每个省的颜色都是一样的,你是不是想把它做成真实地图一样的效果,...
  • zswzwy
  • zswzwy
  • 2004年05月29日 15:55
  • 1665

Java 中的 static 使用之静态初始化块

Java 中可以通过初始化块进行数据赋值。如: public class HelloWorld { String name; // 声明变量name String sex; ...
  • liushulin183
  • liushulin183
  • 2015年06月27日 11:06
  • 526

C#Winform中运用DevExpress提供的ChartControl控件绘制饼状图

首先添加引用: using DevExpress.XtraCharts;   具体代码如下: DataTable table = new DataTable("Table1"); ...
  • kanhuadeng
  • kanhuadeng
  • 2016年03月02日 22:10
  • 2243

QCustomPlot使用之绘制散点图

一、简单概述:QCustomPlot是基于Qt封装的一个图形绘制库、可以绘制散点图、曲线图、柱状图等各种图形,并可以把各种图形导出为png、jpg等各种格式的图片,使用很方便,只有两个文件qcusto...
  • toby54king
  • toby54king
  • 2017年12月18日 10:36
  • 120

Java中通过反射越过泛型检查

要想Java通过反射越过泛型检查,你就得先明白,泛型是在什么时候起作用的。 泛型是在编译期间起作用的。在编译后的.class文件中是没有泛型的。所有比如T或者E类型啊,本质都是通过Object处理的。...
  • Marvel__Dead
  • Marvel__Dead
  • 2016年11月21日 19:31
  • 893

Devexpress使用之:TreeList控件

http://www.cnblogs.com/habin/archive/2009/04/15/1436418.html Devexpress系列控件功能很强大,使用起来也不太容易,我也是边...
  • plean
  • plean
  • 2011年08月02日 11:15
  • 1218
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MapObject控件的使用之符号绘制
举报原因:
原因补充:

(最多只允许输入30个字)