打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

地图符号,几何图形样式

        地图符号(cartographic symbol)表示地图要素的空间位置、质量和数量特征的特定图形记号或文字。

构成特点

        地图内容是通过符号来表达的,地图符号是表示地图内容的基本手段,它由形状不同,大小不一,色彩有别的图形和文字组成。因此符号具有如下特点:

       1.符号应与实际事物的具体特征有联系,以便于根据符号联想实际事物;

       2.符号之间应有明显的差异,以便相互区别;

       3.同类事物的符号应该类似,以便分析各类事物总的分布情况,以及研究各类事物之间的相互联系;

       4.简单、美观、便于记忆、使用方便。

符号的空间分布情况。

       有四种类型:点位分布、线状分布、面积分布、体积分布。

       点位分布可以表现为:存在于一个独立位置的事物、离散的空间现象、一个测量控制点、一座城市等,代表一个地区的国民经济统计图形,也算做点位分布。因此,点状符号在地图上算作是一个定位点。

       线状分布指存在于空间的有序现象,如河流、河堤、道路、运输线,他们可能扩散成一个宽带,以具有相对长度和路线为主要特征。因此线状符号在地图上是一个线段。

       面积分布指事物的占有范围、连续的空间现象。因此面状符号在地图上是一块图斑。

体积分布可以推想为从某一基准面向上下延伸的空间体,例如人口或一座城市,可以表示具有体积量度特征的有形实物或概念产物,这些空间现象可以构成一个光滑曲面。因此体积符号在地图上可以表现为点状、线状、面状三维模型。(体积分布在本教程中不做讲解)

 

地图符号基类

       对于这些地图符号,可以抽象出一个基类,用来存储样式的公共属性,这个基类取名为Symbol(中文解释:符号,里面只包含一个枚举型变量SymbolType(符号类型),用来存储扩展子类的样式类型。

 

符号类型枚举

namespace GIS.HJ.Symbol

{

    ///<summary>

    ///地图符号类型枚举

    ///</summary>

    public enum SymbolType

    {

        None,

        ///<summary>

        ///点符号

        ///</summary>

        PointSymbol,

        ///<summary>

        ///线符号

        ///</summary>

        LineSymbol,

        ///<summary>

        ///面符号

        ///</summary>

        PolygonSymbol

    }

}

 

地图符号基类

namespace GIS.HJ.Symbol

{

    ///<summary>

    ///地图符号基类

    ///</summary>

    public abstract class SymbolClass

    {

        ///<summary>

        ///符号类型

        ///</summary>

        public SymbolType SymbolType { get; set; }

    }

}

 

点符号类

         作用:描述地图上离散的点状空间对象。

         类:   点状符号类型,除了继承基类的符号类型属性外,还新增了点的颜色和半径属性。

namespace GIS.HJ.Symbol

{

    ///<summary>

    ///点符号

    ///</summary>

    public class PointSymbolClass:SymbolClass

    {

        ///<summary>

        ///构造函数

        ///</summary>

        publicPointSymbolClass()

        {

            base.SymbolType= SymbolType.PointSymbol;

        }

        ///<summary>

        ///带参数的构造函数

        ///</summary>

        ///<paramname="pointColor">点颜色</param>

        ///<paramname="radius">点半径</param>

        publicPointSymbolClass(Color pointColor,float radius)

            : this()

        {

            PointColor = pointColor;

            Radius = radius;

        }

        ///<summary>

        ///默认点符号

        ///</summary>

        privatestaticPointSymbolClass_Default;

        ///<summary>

        ///默认点符号

        ///</summary>

        public static PointSymbolClassDefault

        {

            get

            {

                if(_Default == null)

                    _Default = newPointSymbolClass(Color.Black, 1);

                return_Default;

            }

        }

        ///<summary>

        ///点颜色

        ///</summary>

        public Color PointColor { get;set; }

        ///<summary>

        ///点半径

        ///</summary>

        public float Radius { get; set; }       

    }

}

线符号类

         作用:描述地图上连续的线状空间对象。

         类:   线状符号类型,除了继承基类的符号类型属性外,还新增了线的颜色、宽度和线型属性。

 

namespace GIS.HJ.Symbol

{

    ///<summary>

    ///线符号

    ///</summary>

    public class LineSymbolClass:SymbolClass

    {

        ///<summary>

        ///构造函数

        ///</summary>

        publicLineSymbolClass()

        {

            this.SymbolType= SymbolType.LineSymbol;

        }

        ///<summary>

        ///带参数的构造函数

        ///</summary>

        ///<paramname="LineColor">线颜色</param>

        ///<paramname="Width">线宽度</param>

        ///<paramname="LineStyle">线型</param>

        publicLineSymbolClass(Color lineColor,float width,DashStylelineStyle)

        {

            LineColor = lineColor;

            Width = width;

            LineStyle = lineStyle;

        }

        ///<summary>

        ///默认线符号

        ///</summary>

        privatestaticLineSymbolClass_Default;

        ///<summary>

        ///默认线符号

        ///</summary>

        public static LineSymbolClassDefault

        {

            get

            {

                if(_Default == null)

                    _Default = newLineSymbolClass(Color.Black, 1,DashStyle.Solid);

                return_Default;

            }

        }

        ///<summary>

        ///线颜色

        ///</summary>

        public Color LineColor { get;set; }

        ///<summary>

        ///线宽度

        ///</summary>

        public float Width { get; set; }

        ///<summary>

        ///线型

        ///</summary>

        public DashStyle LineStyle { get;set; }

    }

}

面状符号类

         作用:描述地图上片状的空间对象。

         类: 面状符号类型,除了继承基类的符号类型属性外,还新增了边界颜色和填充颜色属性。

namespace GIS.HJ.Symbol

{

    ///<summary>

    ///面符号

    ///</summary>

    public class PolygonSymbolClass:SymbolClass

    {

        ///<summary>

        ///构造函数

        ///</summary>

        publicPolygonSymbolClass()

        {

            base.SymbolType= SymbolType.PolygonSymbol;

        }

        ///<summary>

        ///带参数的构造函数

        ///</summary>

        ///<paramname="borderColor">边界颜色</param>

        ///<paramname="fillColor">填充颜色</param>

        publicPolygonSymbolClass(Color borderColor,Color fillColor)

            :this()

        {

            BorderColor = borderColor;

            FillColor = fillColor;

        }

        ///<summary>

        ///默认面符号

        ///</summary>

        privatestaticPolygonSymbolClass_Default;

        ///<summary>

        ///默认面符号

        ///</summary>

        public static PolygonSymbolClassDefault

        {

            get

            {

                if(_Default == null)

                    _Default = newPolygonSymbolClass(Color.Black,Color.Blue);

                return_Default;

            }

        }

        ///<summary>

        ///边界颜色

        ///</summary>

        public Color BorderColor { get;set; }

        ///<summary>

        ///填充颜色

        ///</summary>

        public ColorFillColor { get; set;}

    }

}

 

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C#.NET操作数据库通用类(MS SQL Server篇)
8大排序算法之:桶排序(Bucket Sort)
c# 调用API访问其他窗体上的文本和执行单击事件等等
IEC 60870-5-4规一化带符号定点数与浮点数的转换
ArcEngine?打开各种格式文件
[转载]WPF中的Chart画图的功能。
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服