您的位置:首页 > Web前端 > CSS

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

2013-04-12 09:18 417 查看

地图符号,几何图形样式

地图符号(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;}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐