基于.NET的GIS地图符号库的设计与实现
2016-12-07徐拥国钱佳智陈荣
徐拥国,钱佳智,陈荣
(浙江有色测绘院,浙江绍兴 312000)
基于.NET的GIS地图符号库的设计与实现
徐拥国∗,钱佳智,陈荣
(浙江有色测绘院,浙江绍兴 312000)
地图符号是数字制图的基础,尤其在地理信息的系统中,表达地图内容离不开地图符号,本文对地图符号的概念、特点作了简要概述,在符号制作的原则和原理的基础上,采用面向对象的方法,在.NET平台下,结合ArcGIS Engine技术设计了GIS地图符号库系统。本系统设计分别包括了点状符号库、线状符号库和面状符号库,用户可根据自己的需要设计符号,可通过多种方式浏览各种符号,该系统具有通用性和开放性。
地理信息系统;地图符号库;.NET
1 引 言
随着地理信息系统的深入发展,地图的种类和内容也随之不断地增加,同时新地图的表示法和彩色印刷提供的有利条件,使地图符号的数量快速上升。原先的GIS软件中自带的符号库已经不能满足用户的需求,因此各GIS软件生产商又在软件中嵌入了能够根据用户自己的要求进行二次开发的符号编辑模块,用户可以根据地图表达的实际需要来制作形式各样、大小不一、颜色多变的符号。
ArcGIS拥有丰富的符号库管理机制。在符号库管理器(Style Manager)中,符号库之间相互独立,可任意进行符号的添加、删除、新建等工作,具有可视性能好,简便易用等优点。本文主要用ArcEngine+C#开发ServerStyle符号库管理系统,该系统根据点、线、面符号的特征,分别对点、线、面符号进行了设计,本系统的设计与建立主要运用了图元法。
2 系统设计
2.1主程序设计
本符号库管理系统主要利用ArcGIS提供的符号转换工具Make Serverstyle Sets.exe,将新建地图符号库文件(∗.Style)转换为可供AE开发使用的地图符号库文件(∗.Serverstyle);本符号库管理系统主要包括了PointStyle、LineStyle、FillStyle,其实现流程如图1所示。
本系统主要包含了主程序界面设计、点状符号设计界面、线状符号设计界面、面状符号设计界面。
图1 符号库管理系统框架
主程序界面如图2所示,主要是以不同的浏览方式来浏览各个符号库的符号,通过浏览键打开一个ServerStyle格式文件,初始化符号库列表,在相应的窗体中可显示当前选择的符号类中所有的符号,用户还可根据个人的喜好改变窗体中符号的排列方式,同时点击窗体中的符号可在预览窗口中进行预览。
点击新建样式符号可以分别创建自己的点、线、面符号。
图2 主程序界面
2.2点状符号库的设计
点状符号常用来表示在当前的比例尺和表示方式下,呈点状分布的地理实体和现象,不论符号大小,实际上以点的概念定位,而符号的面积不具有实地的面积意义,且具有以下几个特点:①图形的形体相对而言比较小;②都有准确的定位点和方向性;③图形固定,在图幅中不会随着位置的变化而变化;④图形大小不依比例尺变化;⑤大都由几何图形组合而成,图形规则。因此本点状符号库的设计主要是设计图元样式。
本系统的点状符号设计界面如图3所示,在界面上提供了样式大小、样式角度、样式颜色、偏移量等参数来新建点符号,用户可调整这些参数来创建自己喜欢的点符号。同时可在预览窗口中看到自己创建的符号,调整分辨率还可将符号放大,以便更清楚地观察新建的符号样式,在图层窗口中可自由添加、删除、移动图层。
图3 点状符号设计界面
图元绘制程序实现如下:
2.3线状符号库的设计
线状符号用来表示呈线状或带状分布的地物,其具有如下特点:①都有一条无形的或有形的定位线;②复杂的线符号可以被看做是若干种的线型(如虚线、直线、点划线等)的叠加;③线符号的图形也可以被看做是线符号的单元沿着线的前进方向做周期性的重复。
本系统提供了简单线、制图线和哈希线这三种线符号的绘制。用户可自由改变线符号的颜色和粗细,上下移动图层改变图层的叠加顺序以改变符号的表现形式,并可自由添加和删除。同时可在预览窗口实时观察新建的符号。
简单线符号继承了IlineSymbol接口,实现了ISimpleLineSymbol接口,提供了Style属性用于设置线才样式。
制图线符号主要实现了两个接口:ICartographicLineSymbol和ILineProperties。ICartographicLineSymbol接口主要用于设置线符号的节点属性,如Cap属性用于设置线的首尾点的形状,Join属性用于设置线要素转折处的样式。ILineProperties接口主要用于设置dash-dot类型的线要素符号属性。哈希线就是离散线符号。线符号库的运行界面如图4所示。
图4 线状符号运行界面
简单线等的添加实现如下:
2.4面状符号库的设计
面状符号具有实际的二维特征,它们以面定位,其形状与其所代表对象的实际形状一致。该符号主要以下特点:①一般都有一条有形或无形的封闭轮廓线;②为了区别轮廓线虽围城的区域对象,大部分面状符号在区域内配置不同的点符号、线符号或颜色。
绘制面状符号的主要填充方法有三种:颜色填充、图案填充和标准模式填充。其中颜色填充和标准模式只要需改变填充区域的颜色和模式设置成对应的颜色和模式就可进行填充。本符号库的设计主要是对填充区域内的图案及颜色的设计。
面状符号是用来修饰多边形等具有面积的几何形体的符号对象。本系统实现了IFillSymbol接口,该接口只定义了两个属性Color和OutLine,Color用来设置填充符号的基本颜色,OutLine用来设置符号的外边框。
本系统的面状符号设计在界面上提供了简答填充,该类实现了ISimpleFillSymbol接口,使用它定义的属性和方法,用户可更改填充颜色及边框线的颜色和粗细,同样可自由添加、删除、移动图层。面状符号库的运行界面如图5所示。
图5 面状符号运行界面
填充颜色和边框宽度的代码实现如下:
3 结 论
本文对地图符号的概念、特点作了简要的概述,在符号制作的原则和原理的基础上,设计并实现了基于.NET的C#和ArcEngine技术的GIS地图符号库系统,并成功将新建的地图符号加入相应符号库,实现了用户根据自身需求制作属于自己的地图符号,满足了用户在静态地图符号方面的需求,实现了系统的通用性和开放性。
[1] 孙庆辉,赵军喜,周海燕.GIS中地图输出对符号库建立的影响[J].测绘通报,2000(10):24~25.
[2] 沈陈华.线状符号库的面向对象设计[J].重庆师范学院学报·自然科学版,2000,17(4):41~43.
[3] 胡鹏.点阵符号库的设计及制作[J].地图,1993(2):22~23.
[4] 祝国瑞.地图学[M].武汉:武汉大学出版社,2003.
[5] 闫浩文.运用OO方法设计统计符号库的理论探讨[J].武汉测绘科技大学学报,1997,22(1):69~70.
[6] 程朋根,龚健雅.面向对象GIS中地图符号组织的研究[J].测绘信息与工程,1998(1):21~23.
This paper made the point symbol,line library,planar library symbol library.User can make their favorite symbol and can browse through their visual preferences symbols.The system has generality and openness.
Design and Implementation of GIS Map Symbol Library Based on.NET
Xu Yongguo,Qian Jiazhi,Chen Ron
(Zhejiang Nonfernous Metals Mapping Institute,Shaoxing 312000,China)
Map symbols are the base of digital map.Especially in GIS,map meanings are essentially expressed by map symbols.In this paper a brief overviewof the concept and characteristics of map symbol,this paper designs a solution for GIS map symbol library with the ArcGIS Engine technology based on.NET.The solution is combined with production principle and principle of map symbols,object-oriented method.
GIS;map symbol library;.NET
1672-8262(2016)01-135-03
P208.1
B
∗2015—12—01
徐拥国(1974—),男,工程师,从事测绘及生产技术管理工作。