地图符号(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;}
}
}
联系客服