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;}
}
}
相关文章推荐
- C#.net 地图控件开发(三) GDI+图形图像编程基础1.
- C#.net 地图控件开发(五) GDI+图形图像编程基础3.
- C#.net 地图控件开发(四) GDI+图形图像编程基础2.
- C#.net 地图控件开发(十一) 地图控件MapControl
- C#.net 地图控件开发(八) 地图要素Feature
- C#.net 地图控件开发 (一) 控件坐标与地图坐标
- C#.net 地图控件开发(二) 地图图层Layer
- C#在Winform中使用GMap.Net地图开发控件在离线模式下绘制两点路线
- C#.net 地图控件开发(十) 地图对象Map
- C#.net 地图控件开发(十二) 第一阶段总结,附代码示例
- C#.net 地图控件开发(九) 矢量图层与绘制FeatureLayer
- VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——GifView控件的使用方式
- 基于地图开发控件GMap.Net 使用 (二) 原创
- C#发现之旅 --- WinForm.NET中开发具有固定背景图片的可滚动控件
- VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——SliderView控件的使用方式
- 4000 移动开发(C#、VB.NET)Smobiler开发平台——GifView控件的使用方式
- Winform下的地图开发控件(GMap.NET)使用心得之三---批量解析地址经纬度坐标
- C#发现之旅 --- WinForm.NET中开发具有固定背景图片的可滚动控件
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- 基于地图开发控件GMap.Net 使用 (二)