地图符号库是多种地图符号的集合。符号库具有相关的管理功能,对不同类型的地图符号、注记类型、色彩方案和坐标系统等进行统一管理。商用GIS软件系统都带有地图符号库,除了库中包含很多基本的地图符号和相关要素外,还提供符号或符号库定制功能。
内容
地图符号库是多种地图符号的集合这个概念是一个统称。在总概念下,不同层次的类别和不同比例尺的点、线、面和注记符号还形成众多具体的符号库。例如,下图1是Arc/nfo中符号库的一个检索状态,从图1中左部的目录可见,此刻正检索到Arc/Info提供的地质专业的符号库,地质符号库下包含很多更具体的地图符号库。
符号库实际上是符号描述信息的集合。按现代GIS多采用的
面向对象方法,无论是点符号、线符号还是面符号,都是各自图元对象类的实例对象聚集而成的复杂对象;组成符号的图元对象标识和图元描述参数或信息,作为一个个数据文件保存在符号库中。当采用间接信息法时,符号描述的参数或信息可以通过交互式符号设计系统获得。
符号库不仅包含描述符号信息的数据文件,而且还必须建立索引机制。符号库信息的应用效率很大程度上取决于索引机制的好坏。
设计一般原则
地图符号库中存储的主要是地图符号的颜色码和图形信息,每个符号组成一个信息块。在国家
基本比例尺地图符号库中,符号信息块表示的图形、颜色、符号含义以及适用的比例尺等,应尽量符合国家规定的地图图示。在专题地图制图或其他需要新设计地图符号的情况下,在设计符号时也应遵循图案化、精确性、逻辑性、对比性、统一性、色彩象征性、制图与印刷可能性等一般原则。符号信息块的构成有以下两种方法。
直接信息法
信息块中存储符号图形的矢量数据(图形特征点坐标)或栅格数据(足够分解力的点阵数据),直接表示符号图形的每个局部。这种信息块占用存储空间大,但有可能使绘图程序统一算法。
间接信息法
信息块中只存储符号图形的几何参数(如图形的长、宽、间隔、半径、夹角等),其余数据都由计算机相应绘图程序的算法解算出来。这种方法程序量大,图形差异大的符号都各自需编制绘图程序,但信息块要求的外存空间都较小。
建立
地图通过地图符号传递信息。在传统地图制图过程中,对于普通地图特别是地形图,各
比例尺地形图均有相应的图式规范,编图人员须按照图式要求进行地图符号的绘制,而对于专题地图的符号,则由于难于事先确定,编制较为灵活。
计算机数字制图技术的发展,使传统地图制图过程发生很大的变化,对地图的符号化则由纯工设计绘制转变为从符号库自动添加或人机交互完成。
在计算机数字制图中,地图符号库是数字地图符号化的基础。地图符号库就是将常用的符号经分类整理后以数据库的形式存储到计算机中,实现其数据库的管理功能,用于符号信息的检索、存储、修改、定义和符号的重组。
在地图符号库的设计与建立中,为了确保在合适的位置上输出地图符号,需要考虑3类信息:第一类是描述空间实体位置和形状的几何信息;第二类是描述符号本身的信息,它包括符号由哪些图元(如点、折线、圆等)组成,各图元的颜色、大小、形状和方向以及图元问的相互关系等信息,即符号结构信息;第三类信息用于确定如何依据几何信息在合适的位置上输出大小、方向、形状和颜色符合要求的符号图形,即配置描述信息。符号结构信息和配置描述信息共同确定了每个符号的特性,这两类信息统称为符号描述信息。除了上述信息以外,还必须有用于理解符号描述信息的解释模块和用于形成符号图形的图形生成模块。如用x和y表示几何信息和符号描述信息,则符号化过程的函数表示为:
式中,G为符号化结果,即符号图形: 包括信息解释和图形生成功能的信息处理过程。
检索机制
索引机制建立的方法有两种:一是索引与数据放在同一文件中,索引存放在数据文件之前,即符号库分索引区和数据区;二是索引与数据分开存放,即索引存放一个文件,数据存放在另一文件。前者的特点是一个符号库仅一个文件,便于管理,但不便添加符号。因此,这种方式一般用于设计系统的输出符号库组织。后者是一个符号库由两个文件组成,为便于管理,可采用文件名相同而后缀不同的方法组织符号库。
尽管点、线,面各种符号由于符号特征不同,索引结构会有所区别,但三种符号索引结构中都应包括:符号名、符号代码、描述数据指针、描述数据大小。
为了管理多比例尺系列、多种形式的符号库,不同的GIS系统有不同的实现方法。通常都将系统所涉及的符号库放在系统的一特定目录下。为方便对符号库的操作,有的系统指定当前操作对应的符号库,如MGE和AutoCAD;有的系统则对存放在特定目录下的符号库建立索引表。例如,GeoStar通过建立一个索引文件来实现符号库管理,该文件的一条记录对应一个符号库,用户每生成一个新符号库就在符号库索引文件中增加一条记录。符号库索引文件内容包括:符号库序号、符号库类型、符号库名称和符号库描述信息等。引入符弓库序号的目的是为了方便记录符号所在的符号库,从而快速获得某个符号的描述信息。
当采用符号代码对符号进行索引时,为获得特定符号代码的符号描述信息必须顺序查找所有的符号库,显然要花较长的时间。如果采用符号所在的符号库和符号在符号库中的顺序号来提取符号描述信息,则要快得多。建立了这样的符号库索引文件之后,用户可以设计不同比例尺、不同类型的符号库,为GIS支持多比例尺制图输出提供了极大的方便。
符号库设计时,任何符号都应有一个符号代码,它是符号的唯一标识码。若GIS系统中地物编码和符号代码的关系要求一一对应,一般符号代码的设计以地物编码为准。相反,如果地物编码和符号代码的关系仅保持着一种松散的关系,即地物对应的符号可以随时改变,这时符号代码的设计可以按国家标准规定为依据,可以顺序编号,也可以按符号的大类、小类、识别码按一定的组合形成。
具体设计符号时,应注意考虑符号的精度、符号定位点、组成线符号的最小符号单元、侧向(不对称)线符号的侧向以及符号的颜色等。
地图符号系统
目前国内外的GIS与CAD软件设计符号库的思路和实现符号定制的途径,可归纳为以下四种:
一是文本编辑器设计方法,如AutoCAD的形文件、线文件和阴影文件,设计速度慢,不能实时观察所设计的符号。
二是采用系统提供的二次开发语言编程实现,如Arc/Info的AML语言等,提供了编程实现符号绘制的接口,开发者可以利用它们实现特殊符号的定制。
三是利用系统本身的图形编辑功能实现。用户先在屏幕上绘制、编辑所要设计的符号,然后圈定符号范围并指定符号定位点,系统即从当前的编辑缓冲区中提取符号描述信息;当用户指定了诸如符号代码(或名称)等参数后,即可存放到符号库中:如:AutoCAD的块文件(block)和MGE的单元(cell)等,都是采用这种设计方式。但是,这种方式由于系统图形编辑功能的局限,只能设计点符号。
四是提供符号设计界面。例如,上述ArcMap中符号库编辑界面能直接利用系统提供的各种符号,或拼装组合系统提供的基层简单图元,来完成针对各种专业需要的不同类型的符号设计,而且使用起来非常方便 。MGE提供的线型编辑功能也可用于交互式编辑线符号。
虽然不同G1S系统提供的二次丌发环境有所区别,但目前绝大多数GIS系统提供了对数据库底层进行读写操作的APl函数或控件,使用通用开发软件,如VB,VC++和Delphi等,开发人员可以很方便地集成这些函数和控件设计出符合特定要求的应用模块,如空间实体符号化模块。
AutoCAD内含AutoLisp语言、ADS(AutoCAD、development system)和ARX外发系统,便于用户进行二次开发。LISP语言作为比较完整的编程语言,为用户提供了强大的二次开发工具,用户可以利用AutoLisp编制各种程序,从而为AutoCAD增加新的命令,也可以为各专业编制图形库;ADS是编写AutoCAD一起工作的C程序的最初方法。ADS程序在完成计算量较大的任务上,比Autolisp程序要快,且提供了对操作系统的底层访问,但编写起来也更复杂一些。ARX是编写与AutoCAD一起工作的C和C++程序的新方法。ARX程序与AutoCAD的联系比ADS程序更加直接,它们对于诸如渲染和实体造型这样的非常密集的任务能够以更快的速度计算。
为实现对系统的二次开发,Arc/Info提供了宏语言AML和开放式开发环境ODE。其中,用ODE开发基于Arc/Info的应用程序,可以使用标准的开发工具。例如,在Windows NT或2000环境下,可用VB,VC++,Delphi和PowerBuilder等进行开发,可以建立标准的功能强大的操作界面,支持所有的Arc/Info命令,执行效率更高。
模块化GIS环境MGE提供了MDL语言进行二次开发。MDL采用标准语言格式,提供了CAD软件开发的集成环境、CAD专用库、面向CAD的内部函数,使MDL成为强大的、丰富的、实用的开发系统。在MEG环境下,为获得一幅符合国家(地形图图式)标准的地形图,除设计相应图式的符号库外,还必须用MDL开发一些特殊功能的应用模块,包括特殊符号绘制子程序、设计DGN文件(MEG的基本图文件,即工作区)实体整体符号化程序、图幅整饰程序和注记压盖处理程序等。
应用
地图符号库常来源于系统供应商和用户自定义。主要有点符号库、线符号库和面符号库,其作用主要是为用户提供原始符号素材。
目前大多数的地图制图软件考虑到软件的应用范围和使用的方便,大多带有符号库,且为了增加使用的灵活性,通过简单的人机交互操作还可实现符号库的建立、更新及增添。目前可生成地图的软件有
地理信息系统软件,代表性的如国外的Arc/Info、MapInfo及国内的MapGIS、SuperMap、GeoStar;专用地图制图软件,如Microstation、Illustrator、MapCAD、方正智绘和通用图形处理软件,如AutoCAD、CorelDraw和Freehand等。前两类软件大都具有符号库系统和符号制作工具,而后一类软件没有专门的地图符号库,但可以利用相应的功能自行生成地图符号库。
在制图过程中,一方面,可直接在各图层上添加地图符号库中已有的符号,并可根据自己的需要对符号进行修改,如大小、颜色等。另一方面,还可以利用各软件提供的符号制作工具生成符合要求的符号和符号库。符号库一旦生成,就可以随意调用。
在Arc/Info中的符号集用4个符号编辑器Markeredit、Lineedit、Shadeedit、Textedit建立,相应地生成4个符号集文件:.mar用于点符号文件,.lin用于线符号文件,.shd用于面符号文件,.txt用于文本符号文件,各类符号分开制作和存放。而国产软件MapGIS也提供了强大的符号制作和编辑功能。它的系统库目录下包括子图库、填充图案库、线型库,对各个库中符号的编辑制作统一在一个系统库编辑工具下进行。每个符号由若干图元组成。图元可以是线段、圆、曲线、圆弧等。图元可以组成结构复杂的各种符号。MicroStation制作符号的功能比较完备,不但可以制作各种点状符号,还提供了功能非常强大的线型编辑器。在CorelDraw制图软件中,也带有符号库,但它并不专门针对地图制图,所以符号不太满足地图制图的要求,但也可以利用其创建符号的功能,生成新的符号和符号库。
二次开发
商用GIS软件系统本身带有基本的地图符号库,这些符号库面向GIS用户的一般需求,包含比较多的很多图例符号和相关要素,能满足用户的常规制图需要。但是,GIS的应用领域很广,用户千差万别,特别是多样化的专题地图制作对符号会有很多特殊的需求,经常超出软件原有符号库的能力,不少符号,如拦江大坝、信号塔台、电力线等,难以实现。这时,用户就要应用GIS软件平台提供的定制地图符号或编辑符号库的功能,形成面向某种或某些专门应用的地图符号库。这就是地图符号的二次开发。
GIS软件平台提供的定制符号功能,通常表现为一个符号编辑器,或符号定制系统,用户能够通过这样的系统方便地制作自己所需的地图符号。符号编辑器的要求界面友好、操作灵活方便,设计时能实时动态观察所设计的符号,符号设计能满足一定的精度,以及有良好的封装性、可维护性和可适应性等。
地图符号库通过符号编辑界面提供一些基本的地图符号或图形单元,它们是可以用来构成新的地图符号或图形符号的基本元素或单元。用户定制时,可用鼠标选择所需的基本符号或图形单元,基于这些图元,用户可以通过下述任一方式来定制新符号:或者在屏幕上基于这些图元来直接绘图,或者在图元参数输入对话框中输入有关参数,如线型、宽度和颜色等。在定制过程中,用户能观察到实时的变化或进展,随时进行修改或完善。用户还可对符号库中的符号进行删除、修改、浏览、选取等。为用户使用方便,还可以对符号库中的符号按符号的索引信息(如符号标识码)进行排序。
目前绝大多数国产和国外GIS软件都提供符号定制系统,有较友好的用户交互界面。新版的Arc/nfo系统的符号设计系统可谓是一个很好的范例,使用非常方便,界面也很友好。下图2是Arc/Info的ArcMap中提供的符号编辑界面(局部),用户可以很方便地调用系统内含的图元设计出自己的符号,甚至符号库。