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;}
}
}
C#.net 地图控件开发(七) 地图符号,几何图形样式Symbol相关推荐
- C#.net 地图控件开发 (一) 控件坐标与地图坐标
1. 控件坐标与地图坐标的转换 控件坐标是以左上角为基准点(原点0,0),往右为X轴正方向,往下为Y轴正方向的.而地图坐标则是以左下角为基准点,往右为X轴正方向,往上为Y轴正方向,并且可以 ...
- SAP UI5 应用开发教程之六十 - SAP UI5 地图控件的一些高级用法试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
- c# AE GIS二次开发学习专题(二) 基本地图控件使用
GIS二次开发学习专题(二) 基本地图控件使用 学习资料来自<牟乃夏 AE开发教程-基于C#.NET> 发的代码是我整理+老师布置的作业 这一部分是地图基本控件的使用与编写,包括: 一.二 ...
- 超图js版 iclient 基本开发 - 加载基本图层(以天地图示例)和基本地图控件
以超图的在线示例来学习:运行之后如下: 原网址代码比较长一些:先把多的去掉:看一下基本的加载图层和地图控件的概念: <script type="text/javascript" ...
- 使用高德JS-API进行基于LBS的开发-地图初始化地图控件
框架代码: <!DOCTYPE html> <html style="width:100%;height:100%;"> <head><m ...
- 高德地图开发手册 php,地图控件-参考手册-地图 JS API | 高德地图API
在线插件是在基础地图服务上增加的额外功能,您可以根据自己的需要选择添加.插件分为两类:一类是地图控件,它们是用户与地图交互的UI元素,例如缩放控制条(ToolBar)等:一类是功能型插件,用来完成某些 ...
- 利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用
Dixon 原文 用ArcGIS Engine.VS .NET和Windows控件开发GIS应用 此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署应用的方 ...
- 【转】Asp.net控件开发学习笔记整理篇 - Asp.net客户端状态管理
最近一直在做MVC项目,对于WEBFORM 好像快忘记了.周末无聊,顺带看看他人的笔记.再次温习下. 复习大纲: 导航.页面生命周期及其它导论 一.服务器控件生命周期 二.控件开发基础 三.Asp.n ...
- Gridview数据控件的七种字段类型
9.8 数据控件的七种字段类型(Fields Type)的应用 GridView共支持七种字段类型,字段原本应该叫"Column"比较恰当,但ASP.NET 2.0却采用另一个名 ...
最新文章
- python神经网络训练效果差_Python与人工神经网络(11)——为什么深度神经网络很难训练...
- 中国AI创业公司霸榜NeurIPS-AutoDL竞赛,代码已开源
- oracle数据库imp导入失败提示:“不是有效的导出文件, 标头验证失败”解决方法,修改dmp文件里oracle数据库版本号方法
- Spring Cloud Netflix Eureka client源码分析
- simulink仿真设置
- 高考与机器学习训练测试
- 【QM-04】Inspection Characteristic(检验特征)
- 笔记本移交_创建完美的设计移交
- 【PIC18单片机学习笔记】一、程序的烧录
- linux更改cxxflags环境变量,在64位的ubuntu 14.04 上开展32位Qt 程序开发环境配置(pro文件中增加 QMAKE_CXXFLAGS += -m32 命令)...
- C++编程语言中类的静态成员介绍
- 一年级有计算机教学吗,一年级信息技术教学计划范文
- 淘宝/天猫API:item_recommend-获取推荐商品列表
- 蓄力一纪,可以远矣!十二年的百度地图和他的AI新征程
- 谈yolov5车辆识别
- Chrome 跨域 请求不携带cookie
- Gulp项目报错:AssertionError [ERR_ASSERTION]: Task function must be specified
- 共享出行化解城市交通难题(中)
- 场效应晶体管与晶体三极管对比,谁能更胜一筹?
- 广联达2020秋招测开面试(一面)
热门文章
- Win 8中创建系统镜像的方法
- PRX 通过LSP实现浏览器Socks5/Tcp代理(从发送数据上着手)
- 公历转农历matlab,公历转农历
- 使用halo和hexo+github两种方式免费搭建个人博客网站
- 基于opencv的车辆检测python_使用OpenCV和Python构建自己的车辆检测模型
- 为什么程序员都特别想要一把机械键盘?
- 基于ssm的考勤设备和考勤记录管理系统------(二)
- AutoHotkey中的变量名 全局与局部冲突问题 - double-ref 双重引用
- WPS Office 2019 For Linux 英文版改为中文版
- Java中人工智能的框架