




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、地图符号化实现方法 地理信息符号化是地理信息生产和应用时必须要实现的技术,对地理信息处理和应用有较大的帮助作用。地理信息的符号化通常是指它的二维屏幕表达。利用丰富的地图符号和视觉变量,在计算机屏幕上对各种地理信息进行直观和清晰的显示一直是数字制图和GIS的核心技术之一。本文就这方面的主要方法和实现技术进行深入讨论。 2 地理信息符号化方法 地理信息符号化的主要方法采用地图图形和符号对地理信息进行表示。众所周知,地图图形是地图的语言,它既表示了地理实体的形状、位置、结构和大小信息,也表示了实体的类型、等级以及其他数量和质量特征。地图图形符号的设计和建立主要有三种方法,即编程法、信息块法和交互设计
2、法。 2.1 编程法 编程法是将地图符号分解为图元(特定的几何要素,如直线、三角形、矩形、圆、弧等,称为图元),然后通过程序的方法相继调用绘制这些图元的函数,由图元的组合来实现地图符号的绘制。如图1所示。在调用绘制图元的函数时,根据符号的特点和定位关系输入适当的参数。 对于大多数点状符号,它们的定位点是固定的,符号中各组成部分相对于定位点的关系也是固定的,因此对于这些符号,以后在使用时只要给出定位点坐标和符号的绘制比例即可。有些点状符号的定位点可能不止一个,如半依比例尺桥梁符号,它的定位点有二个,一个是桥梁的中心点,另一个是桥梁的方向点,桥梁符号的其他点位坐标是靠这二个点计算出来的。 对于线状
3、符号,只要给定线状符号中心线上的点位坐标就能生成线状符号。在采用编程方法时,符号一般都是固定的,所给的定位点也是少量的,利用这些少量的信息根据符号内在的相互关系就可以形成相应的符号。 采用编程法来实现地图符号的绘制其最大的缺点是不便于修改,每一个符号的修改和调整都要改动相应的程序,较为费事。它的优点在于能将大量的地理信息自动地进行符号化,不需要太多的人工干预。只要按照地理信息的属性编码,检索出相应的符号名称,然后调用绘制这些符号的程序,即可得到各种不同地图符号的输出。符号信息及各种处理和底层接口调用都由计算机独立完成。目前,这种符号的实现方法较为成熟,在实际应用中仍有广泛的应用。 2.2 信息
4、块法 信息块法是用人工的方法将要绘制的符号离散成数字信息,用统一的结构和方法进行描述,这些描述信息存放在数据文件中,一个符号构成一个信息块。绘图时只要通过程序处理数据文件中的信息块,即可完成符号的绘制。如图2所示。要修改的话也只是修改数据文件,而绘制地图符号的软件保持不变。 交互设计法2.3 交互设计法是在一定的图形设计软件中,有一系列的图形元素绘制工具供用户选择和使用,用户采用精确输入的方法把构成符号的各个图元按照相互之间确定的关系有机地把它们组合在一起,并选择一个定位点。绘制好的符号起个名字存放在相应的符号库中,这些符号可以是点状符号,也可以是线状符号和面状符号。 当是点状符号时,调用时只
5、要给出定位点,所要的点状符号就会自动配置上去。如果是线状符号,光标只要给出定位中心线的位置,就形成相应的线状符号。如果是面状符号,只要给定边界,面状符号就会填绘上去。 这种符号绘制方法十分方便而且便于修改。不需要编写程序,全靠数据结构和数据之间的关系起作用。采用人机交互的方法来设计和绘制地图符号大大地方便了用户,提高了工作效率,减轻了工作量,代表着符号设计和绘制的发展方向。 上述三种产生地图符号的方法在有些情况下要结合起来使用,各自有着不同的使用场合,很难说只用一种方法就能解决所有的问题。 3 地理信息符号化控制技术 地理信息符号化控制技术是指地理信息符号化过程如何控制和实现的,随着数字地图制
6、图技术的不断发展,地理信息符号化控制技术也在不断的发展和完善。目前可以通过三种方式来实现地理信息符号化过程的控制,即程序控制方式,基于控制文件的方式和基于关系数据库的控制方式。 3.1 程序控制方式 程序控制方式建立在图形符号编程法基础之上,是一种内部控制方式,它完全依赖于计算机程序,在数字制图技术出现的初期被广泛使用。但是以这种方式实现的符号化控制可维护性差。一旦程序编写完毕,所有的符号化控制都固定了,当生产其他类型的地图时,必须对控制符号化的源程序做出相应的调整或者重新编写,这显然降低了系统的通用性,不利于整个系统推广和应用。针对这样的问题,地图工作者希望利用外部控制的方式来实现符号化的控
7、制,以降低对程序的依赖性,因此基于控制文件的方式便产生了。 3.2 基于控制文件方式 基于控制文件方式是通过计算机程序对控制文件中的内容进行解释来完成对地图符号化的控制,它是一种外部控制的方式。符号化控制文件的设计是依据地图要素编码的特点,按照点、线、面要素归类并设置控制项,主要包括要素编码对应的地图符号控制和相应的说明注记控制。这种方式与完全依靠程序来实现地图符号化控制相比,便于维护,通用性得到提高。如果需要增加或修改一种要素的符号化效果,只需要增加或修改该要素的符号化控制项,而不用修改源程序。针对不同类型的地图,只需设计相应的控制文件,就可以完成对地图符号化效果的控制。但这种方式也存在一些
8、不足,其控制项较多,程序解释起来比较困难,文件结构复杂,在编辑符号化文件是容易出错等。 基于关系数据库的控制方式3.3 运用数据库技术最直接的想法就是用数据库中的表来取代控制文件,在数据入库时通过对符号化控制表中的符号化控制信息进行解释来完成对地图符号化的控制。在关系数据库中,各种关系都是以数据库表的形式存在,因此用数据库表来实现符号化控制是非常适合的。此外,还可利用数据库在数据管理上的优势,以及数据库自身的特点来保证符号化控制过程的正确性。从控制表自身来看,在这种方式下,符号化控制表较少,表中的控制项相对简单,共用的控制项均以字典表的形式出现,控制表与字典之间利用关系数据库的主键与外键间的约
9、束建立关联,控制表结构简单明了,表与表之间的逻辑关系清楚,维护起来简单方便。 4 地理信息符号化实现 点状符号、线状符号和面状符号各有其特点,又不失共性,它们的差异是构成各自的基本图素不同,而相同之处是绘制参数(符号代码、绘图句柄、笔的颜色、刷子的颜色等)、操作方法(绘制、删除等)基本一致。根据面向对象的观点,为使各类符号对象具有相对独立性,可以将点状符号(CPointSymbol)、线状符号(CLineSymbol)、面状符号(CAreaSymbol)定义成三种符号对象类,并将各类符号的数据成员(属性数据)及其函数成员(操作方法)封装在各自的对象类中。同时又在这三个类的基础上概括出更高层次的
10、类,即符号类(CSymbolBase)。 符号类(CSymbolBase)的定义如下: class CSymbolBase : public CObject /成员变量 public: CString m_strCurrentPath; /符号路径 CString m_SymbolCode; /符号代码 COLORREF m_SymbolColor; /符号颜色 /成员函数 public: void DrawParral(CDC *dc, ); /绘制平行线 void DrawThickLine(CDC *pDC,); /绘制加粗线 4.1 点状要素的符号化 点状符号类的定义如下: class
11、 CSymbolPoint : public CSymbolBase /成员变量 public: CObList *m_polylineList; /折线图元列表 CObList *m_ellipseList; /椭圆图元列表 CObList *m_chordList; /圆弦图元列表 CObList *m_rectList; /矩形图元列表 CRect m_Boundrect; /符号的外接矩形,相对于符号的定位点 /成员函数 public: void ReadPointFile(CString m_SymbolFileName,); /读取符号库 CRect GetBoundrect(do
12、uble angle,double scale); /获得符号外接矩形 void DrawPointinMap(CDC *pDC,); /绘制符号 在程序收到用户传给的几何信息和属性信息(包括定位点信息、颜色、角度等)后,读取符号库中该符号的描述信息,进行解释并完成图形绘制。 点状符号绘制程序的接口函数: void CPointSymbol: DrawPointinMap(CString m_SymbolFileName, /符号路径 CString m_SymbolCode, /符号名 CPoint PositionPoint, /点状地物定位点 double SymbolScale, /符
13、号比例 旋转角度/Angle, double COLORREF SymbolColor, /符号颜色 CDC* pDC) 点状符号制作及选择如图3所示。 4.2 线状要素的符号化 线状符号类的定义如下: class CSymbolLine : public CSymbolBase 在程序收到数据库中或用户传给的几何信息和属性信息(包括定位轴线信息、颜色、结束方式等)后,读取符号库中该符号的描述信息,进行解释并完成图形绘制。 线状符号绘制程序的接口函数: void CLineSymbol: DrawLinesinMap (CString m_SymbolFileName, /符号路径 CStri
14、ng m_SymbolCode, /符号名 double x , double y , int n, /轴线坐标串及坐标点个数 COLORREF color, /符号颜色 double m_LineScale, /绘制比例 CDC* pDC) 4.3 面状要素的符号化 面状符号类的定义如下: class CSymbolArea : public CSymbolBase 面状符号的绘制最关键的技术是填充算法。一般分为两种填充方法:点填充和线填充。线填充方法通常是按扫描线填充,点填充方法通常是按定位点填充,包括品字形填充、井字形填充以及随机填充。填充时要用到多边形裁剪算法,可以直接调用VC+提供的有关系统函数。 面状符号绘制程序的接口函数: void CAreaSymbol:DrawAreainMap(CString m_SymbolFileName, /符号路径 符号名称/m_AreaSymbolCode, CString double x, double y, int n, /多边形区域点串及个数 COLORREF m_FrontColor, /前景色 COLORREF m_BackColor, /背景色 BOOL m_IsSheer, /底色是否透明 CString m_SideLineName,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 虚拟环境下的地理探秘
- 习惯养成之道
- 中医治疗高血压
- 2025合同范本 某汽车制造公司甲供零部件采购合同示例
- 中医药应用情况分析
- 2025年湿式氧化装置项目规划申请报告
- 2025年抖音直播项目申请报告
- 2025乙级防火门安装合同
- 2025专业版网站建设合同
- 2025至2030年中国干红椒行业投资前景及策略咨询报告
- 本草纲目歌词及曲谱
- Axsym(雅培化学发光仪)简易维修手册第10单元 故障操作
- 全国殡葬管理信息系统简介
- 2014国家电缆桥架标准
- 标准物质管理与应用
- 【图文】做个受欢迎的人
- 面试成绩通知单(上下联式)
- 2009吉林省职称评审表(共4页)
- LNG饱和曲线图
- 地质灾害治理工程施工记录用表(最新整理
- 水池满水试验记录表(自动计算)
评论
0/150
提交评论