陈济民=基于ArcEngine机助制图系统的设计与实现

2019-08-31 20:11

基于ArcEngine的机助制图系统的设计与实现

陈济民1 ,高庆方2,李长松 1,刘学工1

(1.黄河水利委员会 信息中心,河南 郑州,450004;2.黄河勘测规划设计有限公司 黄河基础地理信息中心,

河南 郑州 450045)

摘要:本文着重介绍了基于ArcEngine自动化制图系统的设计思路、具体实现过程和相关技术。作者利用VC++6.0和组件式GIS平台ArcEngine开发出了渭河制图GIS系统,在实际应用中取得了很好的效果,大大提高了制图的自动化程度和生产效率。 关键词:ArcEngine;地图制图;组件式GIS

Design and Realization of Computer-aided Drawing System

Based on ArcEngine

CHEN Jimin1,Gao Qingfang2,Li Changsong1,Liu Xuegong1

(1. Information Center of YRCC, Zhengzhou, China, 450004;

2. Yellow River Engineering Consulting Co., Ltd, Zhengzhou, China, 450045;)

Abstract: The design idea, realization process and related key technologies of automated drawing system are specially introduced in this article. Based on VC++6.0 and ArcEngine, the author has developed Weihe River Drawing GIS. After applied, it shows high automated efficiency in producing maps. Keywords: ArcEngine, Cartography, ComGIS

0 引言

传统的地图绘制过程全部是手工清绘、刻绘,生产周期长,无法适应社会主义建设对地图迫切需要的局面。随着地理信息系统(GIS)技术的快速发展,GIS的功能也越来越丰富,它不仅可以存储不同来源的空间及其相关属性信息,而且可以对各种信息进行快速检索与分析,同时正在改变着地图设计、生产和应用的方法。GIS技术的发展促进了数字制图技术的变革,它完全替代了完全依赖于手工制作的传统地图制图过程,使得人们能够摆脱繁杂的人工劳动,提高了制图的自动化程度、修改的灵活性,进而提高了制图的生产效率,使得地图生产和更新能够及时紧跟社会需求的变化而变化。本文将着重介绍基于ArcEngine制图系统的设计思路、实现过程和有关技术问题。

1 ArcGIS Engine 的特点

ESRI的ArcGIS Engine是一组完备的并且打包的嵌入式GIS 组件库和工具库,开发人员可用来创建新的或扩展已有的桌面应用程序。ArcGIS Engine 具有以下几个关键特征: 标准的GIS 框架; 有效的License 配置方案; 跨平台Windows、Unix 等; 跨语言Com、.Net 、C + + 、Java 等。

ArcGIS Engine是一个用于建立自定义独立地理信息系统(GIS)应用程序的平台,支持多种应用程序接口(Application Program Interfaces, APIs) ,拥有许多高级GIS功能,而且构建在工业标准基础之上。ArcGIS Engine是开发人员用于建立自定义应用程序的嵌入式GIS组件的一个完整类库。使用ArcGIS Engine,开发人员可以将GIS 功能嵌入到已有的应用软件中,如自定义行业专用产品;或嵌入到商业生产应用软件中,如Mirosoft Word 和Excel;还可以创建集中式自定义应用软件,并将其发送给机构内的多个用户。ArcGIS Engine包括两个产品: Engine开发包是组件、APIs和工具的集合,是创建自定义的GIS和制图应用的工具包;Engine运行时是为了运行自定义的Engine应用的可分发的Arcobjects。

2 基于ArcEngine的机助制图系统的体系结构

基于ArcEngine的机助制图系统采用C/S体系结构,逻辑结构分为数据层、业务逻辑层和表现层(如图1)。数据层包括地理数据库和元信息数据库,实现现并封装数据库的访问,利用Oracle对数据进行统一访问和管理;业务逻辑层主要实现地图的符号化、地图制图整饰要素的计算等功能,主要负责表现层的请求,对数据层进行访问,然后数据结果返回给表现层;表现层主要实现用户的系统界面。

表现层 制图应用系统 TCP/IP ArcEngineArcEngine组件库组件 业务逻辑层 ArcSde空间数据引擎 数据层 地理数据库 元数据库 Oracle数据库 图1 机助制图系统的总体架构

3 基于ArcEngine的机助制图系统的设计

3.1 系统界面和功能设计

地图制图是一项琐碎、精细的工作,它是指根据需要对符号化后的地图添加图名、方里格网、图幅外注记、比例尺、接合表、境界线标注、行政所属注记等内容,然后将地图输出到文件或者打印机。地图制图必须符合有关规范和图式要求。

根据软件工程的设计思想, 基于ArcEngine的机助制图系统应满足实用性、可靠性、完备性、科学性、规范性等设计原则, 具备数据加载、地图符号化、地图操作、布局操作、打印模板加载、设置和选择、打印区域、图层和图例的选择、整饰要素添加和修改等功能。因此,我们利用VC++6.0和组件式GIS平台ArcEngine开发出了渭河制图GIS系统,系统设计的界面如图2,系统实现的功能如图3。

图2 渭河制图GIS系统总界面

渭河制图GIS系统 数据加载 地图符号化 地图操作 布局操作 布局模板定制 布局模板加载 打印区域选择 打印图层选择 打印图例定制 整饰要素添加 整饰要素编辑 页面设置 打印机设置 地图输出打印

图3 渭河制图GIS的功能框架

3.2 机助制图的具体实现过程

根据制图的需求,机助制图的实现流程如下:

⑴连接数据库服务器,加载数据,并对数据进行符号化显示; ⑵设置打印页面和打印机;

⑶选择打印的图幅(或者自定义打印区域)、打印的图层和打印图例; ⑷根据选择的图幅或区域,选择地图投影方式;

⑸依打印比例尺的不同,选择布局模板或者自定义布局模板; ⑹计算地图的内外图廓;

⑺如果选择⑵中选择的是标准图幅,计算相邻图幅的名称,保存在存储结合表内容的变量中,并从元数据库中读取地图的制图日期、制图方式、数据源参数、测绘单位、密级等;

⑻根据⑷中选择的模板和内外图廓,计算公路网格及其标注、境界线标注和其他整饰要素的输出位置,添加到地图中;

⑼检查无误后,对地图输出成栅格文件或打印。

4 系统实现的几项关键技术

尽管ArcEngine提供了丰富的类库,但由于地图制图规范要求严格和一些符号的特殊性,ArcEngine不能直接满足制图的需要,因此,为了解决这些制图问题,下面给出了一些技术思路。

4.1居民地及街区按走向填充晕线技术

用ARCGIS定制的线型填充符号中,线型的角度是一定的,不能按需自动旋转,地图中总会有一些房屋或者街区的边界与填充线平行,不符合国家制图的要求,所以开发此功能解决这个问题,使填充的晕线与建筑物的走向成45°角,保证制图的美观性。

本算法的技术原理:选取房屋或街区多边形最长的边作为房屋或街区的走向线,计算与房屋走向线成45°角的直线的角度β(β<90°),然后以β角度为晕线的角度创建LineFillSymbol填充对应的房屋或街区多边形。

用Arcgis定制的固定角度线型符号填充效果图如图4,利用本技术按建筑物走向填充效果图如图5。


陈济民=基于ArcEngine机助制图系统的设计与实现.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:二恶英生成机理

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: