胡志超,张鸿儒
(长沙市规划勘测设计研究院,湖南长沙 410007)
基于EPS2008测绘建库一体化的地图符号库设计
胡志超∗,张鸿儒
结合本单位测绘生产平台更新的实际工作,介绍了在EPS2008中采用测绘建库一体化的思想设计地图符号库的方法。详细叙述了地图符号的分类、各类符号的设计方法和示例,其中还对符号库设计中一些关键技术进行了讨论。最后介绍了这种地图符号库设计方法在本市大比例尺基础地理信息矢量数据库的更新改造工作的实际应用。
ESP2008;符号库;建库一体化
信息化测绘是我国测绘在新时期的发展方向,城市测绘将从以地图生产为主转向以地理信息综合服务为主[3]。测绘建库一体化是外业数据采集、内业成图处理和数据库更新的一体化,它主要采用全站仪结合计算机技术的模式,有效地改变了传统作业的测图方式,避免了测绘生产过程中人工作业工序繁多、劳动强度大、容易出错、数据更新周期长等弊端,使作业效率显著提高,减轻了测绘人员的劳动强度。
要实现测绘建库一体化,首要任务是设计地图符号库。该符号库既要符合国家标准图式和地图出图要求,还要满足GIS建库和应用的需求。本文结合本单位测绘生产平台升级的实际工作,介绍了在EPS2008环境下符合测绘建库一体化标准的符号库设计。
EPS2008地理信息工作站是北京清华山维新技术开发有限公司研发的面向测绘、基础地理信息生产的软件系统。该平台不仅提供了丰富的地图符号制作的工具,还提供了更为开放的二次开发接口[5]。该平台中所有地理要素都采用骨架线+基本属性+动态符号化表示的方法,能够满足GIS和应用的需求。外业测量人员只需采集地物骨架线,同时通过符号化插件技术,使不同系统中(如ArcGIS、SuperMap等)符号表现完全一致。在显示和打印环节进行动态符号化,满足图式规范和制图要求。真正做到了一套数据既建库又出图,图形和数据完全一体化,做到GIS应用与出图的便捷统一。
3.1 地图符号的分类
地图符号是表达地图内容的基本手段,它由形状不同、大小不一、色彩有别的图形和文字组成。与传统的将地图符号分类为点状、线状、面状符号不同,本文按照符号的生成规律,将符号分为点类、基本线类、线性均分类、两点型类、四点型类、填充类、特殊类七类。
(1)点类(G类符号):具有一定大小、颜色、真北方向的点状符号。作图中,仅需一个定位点。如:GPS点、天文点;
(2)基本线类(L类符号):各种不同宽度和颜色的实线。作图中,第一点为定位点,第二点为定长点。如:架空管道、首曲线;
(3)线性均分类(LC类符号):按一定规律连续均匀地插入图元,画线,画文字。作图中,第一点为定位点,第二点为定长点。如:行树、境界;
(4)两点型类(P类符号):具有大小、颜色、任意方向的点状符号或复杂的(结点优先)线状符号。作图中,第一点为定位点,第二点为定向点或为定长点。如:隧道、粮仓;
(5)四点型类(Y类符号):由两排对称的定位点所确定的面状符号。作图中,共需4个定位点。如:人行桥、龙门吊;
(6)填充类(H类符号):范围内地物属性一致的面状符号。作图中,采集边界点,起点和终点需闭合。如:沼泽地、迹地;
(7)特殊类(E类符号):指无法定制的解析规则,需要特定编程实现的符号。如:台阶、防洪墙。
3.2 地图符号的设计
本文地图符号设计主要分以下4种:一是用文本编辑器设计的方法,建立符号的文本描述;二是利用平台本身的符号编辑功能,将符号当作图形块设计制作,再追加平台所需的对符号的定义描述储存于符号库中;三是采用VBS脚本语言编程配合符号描述来实现,主要用于定制复杂的符号;四是利用软件提供的符号设计界面,用户通过对系统提供的基本符号,通过组合、位移、缩放自行定义制图输出需要的符号。结合七类符号自身的特点,采用不同的方法实现符号的制作。
(1)符号定制规则
符号由FeatureCodeTB表,SymbolScriptTB表两个表定制。其中FeatureCodeTB表描述符号的基本属性定义,如编码、层名、几何类型、线型、颜色、线宽等组成。SymbolScriptTB表(如图1)定制符号的具体描述语句。一个符号由一条以上条语句(Sentence)组成,每条语句由一个以上语段(Section)组成,每语段由一个以上项目(Item)组成。一个符号的不同语句之间用SeqID序号区分第一条语句为0、依次为1、2……N;语段之间用空格区分;项目之间用逗号区分,各项目可以从后省略。
图1 SymbolScriptTB表结构
(2)点类符号制作
点类符号其他符号制作的基础之一,它主要利用建立符号文本描述的方法制作,具体又分为基本类和嵌套类两种:基本类是指一定大小和颜色的圆点(它主要用于搭建其他复杂符号),它的语法规则:0一个坐标对。嵌套类是指可以嵌套其他点类,线类,面类和标注的符号。它的语法规则分为3种:①嵌套折线、曲线、圆弧、圆:[&]X[,编码[,层名[,颜色[,线宽]]]多个坐标对;②嵌套标注:[&]T[,分类号[,内容[,层名[,颜色[,字高[,字宽[,串角度[,字体名[,下画线[,字隔[,字角度[,字重]]]]]]]]]][东坐标,北坐标[,北坐标[,定位方式]]];③嵌套其他点类:[&] G[,编码(仅限点类)[,层名[,颜色[,线宽[,角度(绝对角度或相对角度)[,X比例[,Y比例]]]]]]] [东坐标,北坐标[,北坐标]]。
除此之外,点类符号语法规则还有以下补充说明:①嵌套注记的拖动。为了解决注记压盖移位问题,在嵌套注记之前加“&::=”描述,就可以对符号中嵌套的注记位置进行修改。②数值型属性标注格式。通过在嵌套的数值注记前加“〈&&&&.&&&&[:0[:1[: 2]]][∗/1000]〉”描述,通过&&&&.&&&&控制标注数值的小数位数,通过∗/1000控制标注数值的缩放倍数。
下面以编码“1110”三角点为例,如图2为三角点的FeatureCodeTB表和SymbolScriptTB表定义以及符号化后图形。从SymbolScriptTB表的描述中看出三角点编码1110由4条语句组成:第一句嵌套了图元编码111001;第二句、第三句分别嵌套了标注且分类号分别为%1、%3;第四句表示用了嵌套编码1010画线。
图2 三角点符号结构
因此采用该种方法,不论符号化多么复杂的要素,都可以保持着它地理意义上实体的完整性,这符合GIS的精神,能够满足并保证地理实体查询统计分析结果的正确性,也非常符合人们对于一个完整事物的认知习惯。
(3)基本线类符号制作
该类符号都是基本类符号,具体表示不同宽度和颜色的实线。如房屋、道路边线、等高线等。
(4)线性均分类符号制作
该类符号由按一定规律连续均匀地插入图元,画线,画文字构成。成图时第一点为定位点,第二点为定长点。该类符号没有基本类符号,只有嵌套类符号。例如不加固坎、栏杆、铁丝网、行树等(如图3)。
它的语法规则分为3种:(1)嵌套线:+n[,编码[,层名[,颜色[,线宽]]]],“+n”表示画长度为n个绘图单位的线;(2)嵌套标注:T[,分类号[,内容[,层名[,颜色[,字高[,字宽[,串角度[,字体名[,下画线[,字隔[,字角度[,字重]]]]]]]]]]];(3)嵌套不等宽线:A[,编码[,层名[,颜色[,线宽]]]]L/R/M [,左右偏移[,结点优先]]起始线宽[,终止线宽]。
图3 不加固坎符号 图4 电力线符号
(5)两点型符号制作
两点型类符号指以相邻两点为定位依据,插入图元、线、文字而构造的复杂线状符号。作图中,第一点为定位点,第二点为定向点或定长点。如:电力线、有水流向、污水箅子等(如图4)。
该类符号的语法规则除包含线性均分类符号的语法规则外,还有以下两种:(1)绘制平行线:5[,编码[,层名[,颜色[,线宽]]]]左右偏[,起点百分比,起前后偏,终点百分比,终前后偏]左右偏[,起点百分比,起前后偏,终点百分比,终前后偏];(2)绘制垂直线:6 [,编码[,层名[,颜色[,线宽]]]]位置类型,位置参数,线长度[,端点取舍[,左右偏]]。其中“位置类型”为1时,表示0,1点之间的比例;“位置类型”为2表示循环步距;“位置类型”为3表示内插分数。
(6)四点型符号制作
四点型符号以4个定位点为定位依据,通过插入图元、线、文字而构造生成的复杂符号。作图中,共需四个定位点。如:人行桥、龙门吊等,如图5所示。
该类符号的语法规则除包含前述符号的嵌套语法规则外,还包括,定义新点:+,新点号起点号,方向起点号,方向终点号(定方位),向量起点号,向量终点号,向量系数(定距离)(等向量点)。
图5 龙门吊符号
(7)填充类符号制作
填充类符号是按一定的填充规则,在范围线内均匀地填充图元、文字、斜线而生成面状符号。作图中,采集边界点,起点和终点需闭合。如:水田、沼泽地。它具体又分为基本类和嵌套类两种:基本类是指填充各种不同颜色的面对象;嵌套类是指可以嵌套其他点类,线类和标注的面对象。
该类符号的语法主要有:(1)填充点类:G[,编码(仅限点类)[,层名[,颜色[,线宽[,角度(绝对角度或相对角度)[,X比例[,Y比例]]]]]]]倾角1倾角2线间距1线间距2[平行偏移1][平行偏移2];(2)填充连线:H[,线类编码[,层名[,颜色[,线宽]]]倾角线间距[平行偏移];(3)边界编码:+[,编码(只能是L,LC,Y,P类)[,层名[,颜色[,线宽]]]。
(8)特殊类符号制作
特殊类符号是以两排基本对称的点列(点数不限)为定位依据,按指定规则(如:循环指令),插入图元、线、文字所构成。如:陡石崖、坡、台阶、防洪墙、图廓等复杂符号,如图6所示。
图6 陡石崖符号
该类符号的语法主要有:(1)定义边缘线:[%]1 [,编码[,层名[,颜色[,线宽]]]][L/R/M弧长系数[,左右偏[,前后偏]]……];(2)循环主线新点: FOR〈I〉/〈J〉=〈起始位置描述〉TO=〈终止位置描述〉STEP=〈步长1〉[,〈步长2〉]PARAMETER=[旋转角度[,结点优先]];(3)循环副线新点:NEXT〈I〉=〈起始位置描述〉TO=〈终止位置描述〉STEP=〈步长1〉[,〈步长2〉]PARAMETER=[L/R/M旋转角度[,结点优先]]。
4.1 嵌套符号的修改技术
在实际制图工作中,经常会遇到嵌套符号压盖、面类符号填充出现较大空白等问题。尽管目前有很多优化绘制算法来解决以上问题,保证图形绘制的美观,但是这种绘制算法并不是万能的。因此本文对该类符号设计采用骨架线+基本属性+动态符号化的方式,在作图中不仅可以对嵌套符号中的任意嵌套内容位置进行拖动,还可以对符号中填充的点、线符号进行增减和位置拖动修改,如图7所示。
图7 嵌套符号的修改
4.2 符号压盖的隐藏技术
符号压盖隐藏处理主要是在符号定义时增加该符号的最小外接面,这个面与背景色相同。如图8所示,在实际工作中,经常会遇到符号间的压盖问题。图中为电力线和输电塔的压盖问题,按照《国家基本比例尺地图图式1∶500 1∶1 000 1∶2 000地形图图式》规范,在图面整饰时,输电线位于输电塔范围内的那一段需要删除。长沙市规划勘测设计研究院以往做法是通过将这段输电线打断删除,这种方式虽然满足了出图要求,但是这与GIS理念相违背。这样处理的数据既不能用于GIS系统的分析处理(连通分析等),而且计算出来的输电线长度也是不准确的。因此,采用符号隐藏技术处理该类压盖问题,既可以满足出图要求,又保证了输电线数据的完整性和连续性。
图8 符号压盖的隐藏 图9 线段延长线符号
4.3 脚本符号的实现技术
实际工作中会遇到某些特殊符号不能用符号描述或符号嵌套的方式来表示,这时我们需要用到符号脚本编程的技术。脚本符号技术是结合符号描述和脚本编程来完成对符号的定义,这样使用户在符号定义上更灵活,工具更为丰富。如图9所示,是采用符号脚本编程技术定义的线段延长线符号,该符号可以实现通过三个点定义线段延长线以及延长点的坐标,其中线段延长符号与中线压盖地方采用消隐处理,延长坐标值通过程序算法取相关中线端点坐标。它的脚本实现如下:
Sub OnClick()
pcnt=SSProcess.GetSelGeoPointCount(0)
if pcnt〈2 then exit sub
if pcnt〉=2 then
SSProcess.GetSelGeoPoint 0,0,x0,y0,z0,ptype,name'第1点
SSProcess.GetSelGeoPoint 0,1,x1,y1,z0,ptype,name'第2点
SSProcess.CreateNewObjByCode 9111571
SSProcess.AddNewObjPoint x0,y0,z0,ptype,name
SSProcess.AddNewObjPoint x1,y1,z0,ptype,name
SSProcess.AddNewObjToSelObjList
ids=SSProcess.SearchNearObjIDs(x1,y1,5.0,1," 911152",0)
if ids=""then exit sub
SSProcess.GetNearDist ids,x1,y1,index
TempX1="SSObj_X("&index&")"
TempY1="SSObj_Y("&index&")"
FirstPX=SSProcess.GetObjectAttr(ids,TempX1)
FirstPY=SSProcess.GetObjectAttr(ids,TempY1)
if Startx=0.0 then
if sqr((FirstPX-x0)∗(FirstPX-x0)+(FirstPY-y0)∗(FirstPY-y0))〉=sqr((FirstPX-x1)∗(FirstPX-x1)+(First-PY-y1)∗(FirstPY-y1))then
XXX1=FirstPX
YYY1=FirstPY
else
XXX1=LastPX
YYY1=LastPY
end if
end if
End Sub
4.4 线状符号的修饰技术
地图制图学中的所有线状符号都是定义在直线段上的,但实际地图上多是以各种曲线状的形式绘出的,在符号转弯部位,会出现凹向压缩现象,产生一定的变形。因而线状符号单元体的这种循环配置,其变换不是简单的位移变换或旋转变换,而是通过伦移变换(Hopotomic transformation)来实现的,由线状实体中心轴线上的定位点串坐标及长度所决定的。如图10所示,可以清晰的看到通过增加特征点进行修饰前后的相同变坡的效果对比。
图10 线状符号的修饰
基于上述符号库设计,结合国家发布的最新标准,长沙市规划勘测设计研究院制作了长沙市1∶500、1∶1 000、1∶2 000三个大比例基础地理矢量数据库符号库,并完成了这三大比例尺基础地理信息矢量数据库的更新改造工作。图11为测绘建库一体化处理流程图。
图11 测绘建库一体化处理流程图
结合本单位的测绘生产平台更新、基础地理数据转换及数据建库的实际工作,可以肯定在EPS2008环境下使用上述方法制作的符号库操作简便,设计出的符号效果美观、结构整体性强,可同时满足出图与GIS建库的需要。极大地方便了作业,规范了数字地图产品的质量。随着一体化测绘的发展,相信这种符号库的设计方法将得到进一步推广和应用。
[1] 张默.基于ACCESS数据库的EPSW模板技术[J].地理空间信息,2008,10,6(5).
[2] 王清泉,王磊.基于EPS地下管线测量内外业一体化技术的研究[J].测绘通报,2007,5,30.
[3] 徐中华,刘万华,余成江.清华山维一体化软件EPS脚本语言的应用[J].城市勘测,2007(6).
[4] 陈璐.基于ArcGIS的地图符号库建立及符号化实现[J].城市勘测,2008(2).
[5] 王明权,余成江,张平.内外业一体化技术在地下管线探测中的应用[J].城市勘测,2008(2).
[6] 清华山维有限公司.清华三维模板控制技术培训文档[R].
M ap Symbol Design M eet the Surveying and M apping and Building Database Integration Based on EPS2008
Hu Zhichao,Zhang Hongru
(Changsha Planning Survey&Investigation&Design Institute,Changsha 410007,China)
This paper combines the practical work of Surveying and mapping production platform update,introduces themethod of designingmap symbols bank using the mind of integration in EPS2008.It describes in detail the design method and the sample classification,map symbols of various signs.It also discusses some key techniques of symbol library design.Finally,the paper introduces the application of this kind ofmap symbol database designmethod in the renovation of the city scale and basic geographic information database.
ESP2008;symbol database;surveying and mapping and building database integration
1672-8262(2013)06-54-05
P208.1
A
(长沙市规划勘测设计研究院,湖南长沙 410007)
2013—05—28
胡志超(1985—),男,工程师,主要从事地理信息数据管理维护和地理信息系统开发工作。