ArcEngine论文

2024-05-28

ArcEngine论文(精选7篇)

ArcEngine论文 篇1

1 引言

空间数据库在地理信息系统应用与开发过程中起关键性作用,实现空间数据的入库工作则是地理信息系统项目开发的基础。在GIS软件的二次开发过程中有时要将ArcGIS软件支持的常用文件Shapefile导入到ArcSDE Geodatabase中。

Geodatabase是美国ESRI公司提出的一种全新的面向对象的数据模型,它非常适合高效存储和管理空间数据和属性数据,应用空间数据引擎ArcSDE能够将空间数据(如Shapfile数据、CAD数据、Coverage数据等)导入多种关系数据库中,如Oracle、Microsoft SQL Server或者IBM DB2。

2 AE的主要特点

(1)标准的GIS框架:ArcEngine为开发GIS应用软件提供了标准框架。ArcGIS Desktop就是由这套相同的软件对象(ArcObjects)构建的。ArcEngine既耐用,又具有可扩展性,而且其强大的功能使得开发人员集中于解决特定的问题,而不是从头开始构建GIS功能。

(2)成本适宜的配置:ArcEngine Runtime在每台计算机上都可得到授权。这允许多个ArcGIS应用软件在同一台计算机上运行,因此只需要一个单用户运行时(Runtime)的授权成本。

(3)开发控制器:ArcEngine提供了一套公用的开发控制器,它允许开发人员轻松配置高性能的具有共同外形和感觉的应用软件。这可以使用户在学习使用Engine开发少走弯路,进而可以迅速在开发应用软件时得到回报。

(4)跨平台功能:ArcEngine及其所有相关对象与控制器可用于多种平台,包括Windows、Linux和UNIX。自定义GIS应用软件将适用于标准计算环境,而不需要在目前的计算基础结构中改变或添加运行环境。

(5)跨开发语言:ArcEngine支持多种开发语言,包括COM、.NET、Java以及C++等。这就允许使用大量的工具对对象进行编程,而且编程人员不需要学习一门新的或专用的语言。

(6) ArcGIS的扩展功能:ArcEngine开发工具包包括多种扩展功能,如更新和创建多用户地理信息库,还有ArcGIS 3D分析、ArcGIS空间分析以及ArcGIS StreetMap产品等。

(7)开发资源:连同对象模型图和范例编码,ArcEngine开发工具包提供了一个帮助系统来帮助开发人员进行学习。此外,它还包含了多个开发工具和应用工具来帮助开发。

3 Geodatabase数据模型

3.1 概述

ArcGIS使用Geodatabase或以多种格式文件的方式来管理地理信息。Geodatabase是伴随ArcGIS产品的数据结构,它是数据编辑和数据管理的主要数据格式。Geodatabases的工作范围很广泛,它能跨越一系列DBMS体系和文件系统,能存储大量的数据并允许大量用户访问。

3.2 类型

Geodatabase是存储要素数据集的容器,共有三种类型,即File Geodatabase、Personal Geodatabase和ArcSDE Geodatabase三种。前两种能很容易被用户(如ArcView、ArcEditor和ArcInfo的用户)使用,它们是为支持geodatabase的全部信息模型而设计的。主要包括拓扑、栅格目录、网络数据集、地形数据集、地址定位器等。

3.2.1 File Geodatabase的特点

File Geodatabase是从ArcGIS 9.2版本出现的新geodatabase类型,它向所有用户提供了广泛可用、简单且可升级的geodatabase解决方案。提供了一个能跨操作系统工作的便携式的geodatabase,能处理大型的数据集。提供了卓越的性能和可伸缩性,例如能支持处理含有超过3亿个要素的单个数据集和文件大小超过500GB的数据集并有非常快的性能。它还使用了适宜表现和存储数据的高效的数据结构。File Geodatabase存储要素几何数据仅相当于Shapefiles和Personal Geodatabase存储该数据的三分之一的存储空间。File Geodatabase也允许用户将矢量数据压缩存储为只读格式可进一步降低存储空间。

3.2.2 Personal Geodatabase

Personal Geodatabase从ArcGIS8.0就开始使用,它使用Microsoft Access数据文件结构(.mdb文件)。这种geodatabase文件大小不超过2GB,然而在数据库的性能开始下降前,有效的数据库大小会更小,大约在(250~500) MB之间。Personal Geodatabase仅在微软的Windows操作系统上得到支持。喜欢表操作的用户可以使用Microsoft Access在Personal Geodatabase上得到很好的体验,很多用户在操作属性值时喜欢Access中的文字处理能力。

ArcGIS有多种目的会继续使用Personal Geodatabase。但是,它也在强力推荐用户使用File Geodatabase。对于GIS工程、个人或小型的工作组来说,使用基于文件的数据集工作会更加理想。它有非常好的性能和伸缩性来存储超大型的数据而不需要使用DBMS。此外,它还便干在操作系统间移植。一般地,用户将会使用多个文件或个人版geodatabase来存储数据并在他们的GIS工作中并发访问它们。

3.2.3 ArcSDE Geodatabase

当需要一个能同时被许多用户编辑和使用的大型多用户geodatabase时,ArcSDE Geodatabase提供了一个很好的解决方案。它增加了管理共享的,多用户的geodatabase以及大量关键的基于版本GIS工作流的能力。

ArcSDE Geodatabase与多种DBMS存储模型(IBM DB2,Informix、Oracle、SQL Server)协同工作。ArcSDE Geodatabase主要应用于大范围的工作组、部门、企业环境中,他们会充分利用ArcSDE Geodatabase底层的DBMS体系结构来支持超大、连续的GIS数据库,支持大量并发用户,支持长事务和版本工作流。为GIS数据管理提供关系数据库支持(关系数据库具有可伸缩性、可靠性、安全性、可备份、完整性等优点)。它还支持空间数据的SQL类型(Oracle,Informix,DB2)。通过很多大型空间数据库的实现,发现DBMS在导入和导出GIS数据所需的大型二进制数据表方面是非常有效的。此外,GIS数据库的规模和支持的用户数也比只使用GIS文件大得多。

ArsSDE Geodatabase的数据模型图见图1。

4 Shapefile的特点

shapefiles是用来存储地理要素的几何位置和属性信息的简单、无拓扑格式。shapefile中的地理要素用点、线、面(区域)来表达。工作空间也可能包含dBASE表,dBASE表可用来存储与shapefile中的要素关联的附加属性信息。如图2列出了Shapefiles数据目录。

Shapefile格式以三个或更多个指定文件扩展名的文件定义了地理要素的几何和属性信息,这些文件应该存储在工程相同的工作空间下,它们是:

(1).shp——存储要素几何的主文件(必需的)。

(2).shx——存储要素几何索引的索引文件(必需的)。

(3).dbf——存储要素属性信息的dBASE表(必需的)。

几何和属性之间是一对一的关系,这是以记录编号为基础的。dBASE文件的属性记录必须与主文件中的记录顺序相同。

(1).sbn和.sbx——存储要素空间索引的文件。

(2).fbn和.fbx——为只读的shapefiles存储要素空间索引的文件。

(3).ain和.aih——用于存储表或专题属性表的活动字段的属性索引的文件。

(4).atx——.atx文件是为每个shapefile或者在ArcCatalog中创建dBASE属性索引时创建的文件。

(5).ixs——可读写的shapefiles的地理编码索引。

(6).mxs——可读写的shapefiles的地理编码索引(ODB格式)。

(7).prj——存储坐标系统信息的文件。由ArcGIS使用。

(8).xml——ArcGIS元数据——存储关于shapefile的信息。

每个文件必须有相同的前缀,例如road.shp、road.shx、road.dbf。

5 导入数据

5.1 精确遍历每一个要素

要实现的是将shapefile数据导入到ArcSDE Geodatabase中,要实现在导入数据的过程中显示一个进度条窗口,同时还能够显示一些具体的进度信息,如果要导入的数据很大,那么这个事务会花费很长时间,如果用户想取消导入操作,那么可以点击该窗口上的取消按钮停止导入操作,同时将已经导入的数据从ArcSDE Geodatabase中删除掉。但是存在一个问题,当导入操作正在进行时,进度条所在窗口是无法响应按钮的点击消息的,这里我们采用多线程方法来实现导入操作,并采用了一些关键的技术来进行处理,使得用户在导入数据时仍然可以点击取消按钮停止数据的导入。在程序中创建另外一个线程,利用该线程实现数据的导入,那么就把导入数据的方法作为该线程启动时执行的方法。同时我们每导入100个要素(feature)就清空一下InsertFeatureCursor并判断一下用户是否点击了取消按钮(通过一个变量来标识),如果点击了取消按钮则进行响应的处理,主要的设计代码如下:

首先是导入数据的方法:

然后用委托来封装该方法:

最后定义一个方法用来创建线程并开始导入数据,主要代码如下:

程序运行结果见图3。

5.2 批量导入方法研究

这种方法更简单,同时功能也更强大,我们同样利用多线程来实现,利用ArcEngine提供的类FeatureClassToGeodatabase来实现Shapefile的批量入库,部分代码如下:

该方法与第一种方法相比,优点是可以批量导入Shapefile,能大幅度提高数据入库的效率,但不如第一种方法灵活,因为第一种方法是通过遍历每一个要素(feature)来实现的,那么就可以对每一个要素进行精确控制,例如如果不需要某些字段,那么就可以不导入这些字段的数据。程序运行结果如图4。

6 结语

在GIS项目中经常会用到数据导入功能,当然可以用ArcCatalog来完成,但是通过ArcEngine可以将数据导入功能集成到我们的软件中,这样可以提高软件对GIS数据的管理效率。本文主要介绍了将Shapefile导入ArcSDE Geodatabase的方法,实际上数据的导入和导出以及将数据导入其他类型的Geodatabase的原理基本上是一样的,关键是理解所要读取的数据的结构。当然还可以导入其他类型的数据,ArcGIS Engine为提供了相应的类来实现,比如ImportCAD类。或者可以先进行格式转换,将其转换为Shape格式的数据,然后再导入数据库。

参考文献

[1]韩鹏,王泉,王鹏等.地理信息系统开发——ArcEngine方法.武汉:武汉大学出版社,2008.

[2]穆荣,张永福,路星.基于ArcGIS Geodatabase基础空间数据库设计.测绘与空间地理信息,2007;30(3).

[3]ESRI.公司.ArcGIS Desktop Help.

[4]ESRI公司,Developer Help——.NET Help for VS2005.

ArcEngine论文 篇2

在客观世界模拟方面, 三维GIS比二维GIS具有更强的直观性、表达性和分析性。三维场景注记有利于用户捕捉空间信息, 增强空间的可读性。虽然很多软件都提供了标注功能, 但是在自动配置方面却是研究不够的。本文以ArcEngine9.3为开发平台, 利用VS+C#实现了三维场景注记的自动配置, 以及注记文件的导出。

1 ArcGIS Engine简介

ArcGIS是美国ESRI公司推出的GIS软件, 它涵盖了数据库、图形分析和存储、图形表达、人工智能等很多技术。是目前世界上功能最完善、最强大的GIS产品。ArcObjects (AO) 是ArcG1S的基石, 是ESRI公司开发的面向对象的地理数据模型和高度集成的软件组库, 是一套完全符合COM标准的大型软件架构。ArcEnigne是将ArcObjects分成21个模块, 提供开发者建立自订GIS及地图制作的应用程序。SceneControl是ArcGIS的三维场景显示控件, 由SceneGraphy和Scene, Viewer构成。SceneGraphy和Scene是负责图层显示的, Viewer是管理用户的视角。

2 三维注记显示要素

在三维场景下显示的注记的表达效果是由字体、字色、字号、注记的排列方式, 字向以及在三维场景中字的倾斜角度和适当的光源位置来综合决定的。字色和字号在一般情况下都可以很直观的表明该注记实物的重要性, 字体和注记的排列方式、字向、倾斜角度都是从用户的直接观看的角度, 适当的光源位置可以很好地提高注记的三维表达效果。

字体, 技术制图中的一般规定术语, 是指图中文字、字母、数字的书写形式, 应用于所有数字、符号和字母字符的图形设计。也称为“样式”或“字样”。宋体、仿宋体、黑体是比较常用的字体。三维场景中的字体是由二维场景的字体通过在Z轴的拉伸得到的, 所以字体的表达形式是不会发生改变的。

字色, 指的是注记所使用的颜色。在地图学中, 字色主要是用来区分概念和重要性的, 比如蓝色代表湖泊, 红色一般是重要地物的标志。

字号, 指的是注记的大小。字号的大小的选择一般是从重要性和美观两个角度来同时确定的。

排列方式, 包括排版方向和排列方向。排版方向一般是纵向和横向两种选择, 排列有向右靠齐, 中间排列, 向左靠齐三种选择。

字向, 指的是注记的倾斜方向, 由注记选择的基准面和注记本身的倾斜角度两者共同决定的。

光源是三维场景的重要表达因素, 它构造了三维场景中的亮度和立体阴影。光源的方位角、高度和对比度是光源的基本性质, 其中方位角和高度共同确定光源方向, 制造三维标注的阴影效果。

3 三维注记配置的实现

注记可以作为地图的图形或者GeoDatabase的要素被存储, 作为一种地图数据, 它的内容往往和图层的某个属性字段相关联。在三维场景下实现图层注记自动配置的步骤是:首先, 从图层属性表中, 选取要配置的属性字段, 并将注记内容存放在内存中;然后进行的就是单个注记的显示设置, 其中包括注记的字体配置, 显示方式配置和位置配置;接着进行注记的批量显示;调整单个注记;最后就是注记文件的导出。

以下是三维注记批量显示的具体步骤:

(1) 选择注记的字段

//利用自定义的函数GetFeatLyrbyName, 通过图层名得到特征图层, 然后获取特征图层的全部字段。

(2) 单个注记的显示设置

注记要素位置的确定是很重要的, 在本文中, 点文件注记的位置在点的左上方, 线文件注记的位置在沿线的中间位置, 面文件注记的位置在实心面的重心。

(3) 注记文件导出

注记文件的导出有两种方式, 一种以GraphicsLayer存储, 利用Ilayer的Export;另外一种方式就是将注记的各个属性都记录在配置文件中, 首先将注记依据属性形成一个内存表, 然后将内存表直接读到制定配置文件中, 最后进行配置文件保存。

4 结束语

三维场景的注记具有生动直观的印象, 并且由于可以调节视角, 可以很好地避开标注避让问题。通过旋转XYZ方向、偏移水平量等方式可以进行对注记的字位的调整, 从而实现三维场景与注记的和谐统一。

参考文献

[1]尹建忠, 何政伟, 贺奋琴.基于ArcGIS的土地资源信息系统 (LRIS) 开发研究[J].新疆石油学院学报, 2003 (2) .

ArcEngine论文 篇3

目前, 随着国家对石油资源的需求不断加大, 长距离输油气管道的建设已步入发展的高峰期, 油气田的开发规模也正处于不断扩大的阶段, “数字管道”、“数字油田”系统的建立与完善也成为当务之急。传统的二维GIS技术辅助分析功能有限, 已无法满足海量数据的管理与方案决策需求。采用三维GIS技术对空间数据进行快速集成与呈现, 构建层次分明、真实直观的三维场景, 大大提高系统的交互性与自主性, 这比单一地通过横断面或者纵断面图来反应各地物要素的空间关系更加准确, 将有助于促进勘测与设计更加紧密的结合, 为后期的不同区域类型的信息系统管理与方案比选、决策提供强有力的支撑。

在地理信息系统 (GIS) 领域, 三维GIS, 网络GIS成为目前研究的热点。主流的桌面系统开发技术是二次开发, 三维GIS的二次开发与应用也非常广泛, 其中以ESRI公司为代表的信息技术公司都推出了自己的GIS桌面系统与相应的二次开发工具组件集, 组件类技术正是在这些已有的开发组件基础上进行二次开发的。这些开发工具组件集功能十分强大, 二次开发的效率也非常高。ArcEngine二次开发组件集提供了三维GIS开发的功能, 它屏蔽了很多OpenGL与硬件交互的细节, 开发者只需应用组件中封装的函数即可实现复杂的三维可视化及分析功能, 使得三维系统的开发更加对象化, 开发难度大大减小, 十分快捷高效。

考虑了GIS专业前沿开发技术, 详述了采用基于ArcEngine的GIS二次开发方法实现一个简单的三维GIS演示系统的技术要领。通过对本系统的开发与研究, 旨在进一步加深了解GIS专业领域三维演示系统开发的技术细节, 对于以后进行类似的三维GIS研究与开发, 演示系统的研制与测试提供一定的参考价值。同时由于ArcEngine在对象和数据模型的层次封装了OpenGL的功能实现, 这对于计算机图形学的知识理解与实践研究也有一定的帮助。

2 ArcEngine中三维GIS系统的设计与实现

2.1 开发环境搭建

首先, 安装Visual Studio 2005, 包含VB.NET部分, 本系统的开发环境即是VB.NET。然后安装ArcGIS Desktop (包含ArcScene模块 ) 以及ArcGIS Engine Developer kit for Micorosoft.NET Framework。其中Desktop的ArcMap模块创建三维场景中的二维信息, ArcScene则是最后创建三维场景, 生成三维文档的。而ArcGIS Engine Developer kit 则是系统开发应用到的组件集。

2.2 三维场景创建

准备遥感影像:以具备地理参考要素的遥感影像作为三维场景的地图背景, 本项目采用的样例数据是宜昌城区某块区域具备投影定义的遥感图像。若涉及到多源数据基准上的统一, 我们可采用ARCGIS中提供的解算模型, 求解不同椭球之间的坐标转换参数, 实现不同坐标系的转换。

遥感图像数字化:这部分的工作在ArcMap中进行, 通过对遥感图象进行矢量化, 来提取各个地物 (生成点、线、面特征) 。本项目中将该区域的部分建筑物, 体育场馆, 道路, 树木等特征, 用二维的点, 线, 面数据来表达, 以达到了矢量化的目的, 此外也可通过对属性数据加以编辑, 建立属性数据库。本项目中创建的矢量图层包括建筑物、建筑物2、图书馆、tree01、道路5个矢量图层, 如图1所示。

创建三维场景:旨在将三维模型作为点、线、面特征的符号来表达各种地物。该环节利用的是二维GIS数据扩展三维模型, 这样可以节省大量的建模时间, 操作方便, 数据量少, 有助于提高系统运算效率。首先, 运行ArcScene, 加载上一步处理得到的矢量图层和遥感图像, 然后对矢量图层中的点、线、面特征进行数字化。分析地物所处的不同图层, 依据地物类别选择不同的模型, 调整其大小与位置。以确定的坐标系为标准, 以建筑物模型的底面中心作为坐标原点, 根据所获取的Z值数据通过拉伸的方式建立建筑物的三维模型。此外, 对于不具备的现实符号还可以通过从外部导入3ds文件的方式获得。

例如:tree01图层是点图层, 从ArcScene选择树模型, 调整大小和位置如图2所示。

2.3 系统开发

2.3.1 概述

本系统的开发是以ArcEngine为工具, 在VB.NET平台下实现的。ArcEngine是美国环境系统研究所 (ESRI) 开发的用于GIS二次开发的组件开发集, 是ArcObject的一个子集, ArcObject是ArcGIS软件的组件开发集。组件对象间的访问都是通过接口来进行的, 接口是包含了一组函数的数据结构, 通过这组数据结构, 客户代码可以调用组件对象的功能。开发人员可以利用ArcEngine来创建新的应用程序或者在自定义的软件应用中扩展GIS功能。

进行三维场景演示以及地形显示的控件是SceneControl, 该控件由类ESRI.ArcGIS.Controls.AxSceneControl管理, 该类实现了三维显示相关的接口, 以及一组属性和方法。该控件支持的功能有:三维文档 (*.sxd) 导入;栅格数据, 矢量数据的显示;地形生成、显示、分析;导出VRML文件 (*.wrl) ;保存当前视图为图片;动画制作与视频输出等。本系统实现的功能和与之相关的类和方法, 总结如图3所示。

2.3.2 流程

创建系统的主界面:要为主界面添加3个ArcEngine提供的控件, 分别是工具条控件, 图层控件, 场景显示控件, 并将工具条控件, 图层控件绑定到SceneControl控件上, 三者的分布如图4所示:并在Resize事件的响应函数中添加窗口控件自适应大小的代码。然后创建菜单栏以及控制面板, 如图5、6所示。

实现三维场景的打开显示:该功能对应的是“打开三维文档”菜单项, 首先打开公共对话框, 选择.sxd文档后, 载入三维场景, 通过添加OpenSxdDoc_Click函数即可实现。

实现打开DEM数据:这里的DEM数据指的是不规则三角网, 由于TIN数据组织为一个文件夹, 添加OpenTin_Click函数, 即可实现文件夹对话框的打开。

实现其他GIS数据的打开显示:实现了IName接口的数据模型都可以通过编写OpenTin_Click函数打开显示。这个菜单项支持打开的文件格式包括了:栅格文件 (jpg, tif, bmp, img格式等) , 矢量文件 (shp, lyr格式等) 。

实现DEM生成功能:新建如图7所示的对话框, 实现包括了通过高程点和等高线生成不规则三角网 (TIN) 的功能, 技术的关键在于按钮“创建TIN”的响应函数代码, 如图8所示。

实现动画制作:设计的操作流程是先点击“开始创建关键帧”按钮, 然后在三维控件区域单击一下, 通过导航按钮移动三维场景, 到其他位置, 然后再点击一下三维控件区域, 随后点“播放动画”按钮, 就可以看到客户区动画的演示效果。在演示过程中, 场景建模越精细越贴近现实, 数据量会越大, 浏览速度会相对较慢。最后, 设置了视频质量和视频的帧率, 就可以制作视频输出了。由此可以看出, 要满足该项功能只需要添加“开始创建关键帧”控件与“播放动画”控件的响应函数, 对于输出动画对应的视频, 则需要如图9所示的代码实现。

3 功能介绍

3.1 DEM生成

数字高程模型DEM表示的是一定范围内地形的三维向量有限序列, 包含平面坐标 (X, Y) 及其对应的高程 (Z) , DEM主要是描述区域地貌形态的空间分布, 有多种表现形式, 主要包括规则矩形格网与不规则三角网等。本系统生成的DEM是不规则三角网的形式。

基于高程点生成DEM:首先, 选择打开点图层point.shp数据, 再通过地形生成菜单, 在相应的对话框中作参数设置, 并创建TIN即可生成DEM。我们可以对生成的DEM输出VRML文件, 该VRML文件将以IndexFaceSet来描述这个DEM, 如图10所示。

基于等高线生成DEM:通过选择打开点图层contour.shp数据, 再通过地形生成菜单, 在相应的对话框中作参数设置, 并创建TIN即可生成DEM。起伏很小的TIN, 我们可以通过图层叠加、夸张系数的设置来控制高程的显示, 使地形起伏表现的更为直观, 如图11所示。

3.2 三维场景的打开显示

通过载入.sxd文档, 即可实现三维场景的显示, 如图12所示。

3.3 动画制作与视频生成

点击“开始创建关键帧”按钮, 然后在三维控件区域单击, 通过导航按钮移动三维场景, 到其他位置, 再点击三维控件区域, 这样就完成了对三维场景漫游路径的设置。继续点击“播放动画”按钮, 就可以看到既定方向的动画的演示效果。最后, 设置帧率和视频质量, 即可输出相应的视频文件。

4 结语

基于ArcGIS Engine的三维GIS演示系统能够准确、直观的表达错综复杂的地形要素之间的空间位置关系, 进一步提高了人机交互性, 给系统的管理提供便利。本系统实现了常用GIS三维数据的读入显示, 具备方便的漫游功能, 具备动画制作和视频输出的功能, 以及简单的DEM生成功能, 可以为大型“数字管道”、“数字油田”的演示系统开发提供技术支持。

采用ArcEngine进行三维演示系统的二次开发是十分高效和快捷的, 借助其强大的3D功能, 只需接口声明及函数调用等简单的语句便可实现三维场景漫游。由于采用VB.NET作为开发环境, 所以界面的开发也十分的快捷, 这是本系统实现的技术优势。但ArcEngine在实现上屏蔽了很多三维场景绘制的细节, 灵活性与OpenGL技术相比还略显不足, 三维场景数据打开显示的过程比较耗时, 使得部分功能运行效率低, 这些都是有待进一步研究解决的问题。

摘要:目前, 三维GIS正是GIS领域的研究热点, 与二维GIS相比可认知性、交互性更强, 其在长输管道及油气田地面工程建设中推广应用, 将为实现“数字管道”、“数字油田”提供新的解决方案。阐述了基于ArcEngine的三维GIS演示系统的设计与实现的关键技术路线, 系统以VB.NET作为开发环境, 将ArcEngine作为二次开发组件, 实现了三维场景的动态生成, 随后, 继续对系统的功能做了简要介绍, 对研究成果和存在的问题进行了总结归纳。

关键词:GIS,演示系统,ArcEngine,DEM,三维场景

参考文献

[1]刘仁义, 刘南.ArcGIS开发宝典-从入门到精通[M].北京:科学出版社, 2006.

[2]肖乐斌, 钟耳顺, 刘纪远, 等.三维GIS的基本问题探讨[J].中国图像图形学报, 2001, 12 (9) :22-24.

[3]黄健熙.二维电子地图与三维虚拟场景的互响应与可视化[D].武汉大学, 2002.

[4]蒋波涛.ArcObjects开发基础与技巧-基于VisalBasic.NET[M].武汉大学出版社, 2006.

[5]徐青.地形三维可视化技术[M].北京:测绘出版社, 2000.

ArcEngine论文 篇4

关键词:ArcEngine,Visual C#2008,GPS,空间查询,空间定位,缓冲区分析,最短路径,警用巡逻系统

0 引言

近年来我国城乡一体化建设取得了长足的进展,随着这股浪潮的推进,其所带来的一系列问题也越来越突出。其中最明显的变化就是城镇人口的不断增加,这就给城市治安工作造成了很大的压力。而现在很多公安系统信息化只是基于本文的信息化,也就是将获得的警情录入到管理信息系统当中,然后对其中的文本信息进行增、删、查、改等数据库操作。尤其对于出勤巡逻的警务人员,一般是遇到突发事件,呼叫总部并且得到指令后才进行相关处理,在这过程中,出事地点不能直观地展示给总部决策人员,而且出勤巡逻的警务人员的所在位置以及经过的路线也不能及时展示给总部,这就有了信息的滞后性,将GIS应用到警务日常工作当中可以很好地解决上述问题。目前我国GIS正不断应用与各行各业,而将GIS应用与公安系统就是公安地理信息系统,它是GIS软件和关系数据库管理系统为平台,以警务日常工作所涉及的信息为资源,将城市各种警务信息整合起来并可以对警务工作进行有效地管理和决策的计算机管理信息系统[1,2]。随着GIS在警务工作中的深入应用,各级城市公安部门将会认识到将GIS应用于城市治安巡逻工作的必要性和重要性[3]。在此背景下,提出了利用Visual C#2008可视化开发平台、ESRI公司的GIS二次开发套件Arc Engine结合GPS设计了一个具备地图显示、空间分析、空间查询以及轨迹回放的警务巡逻信息管理系统,此系统与已有的文本信息管理系统无缝连接,解决了传统管理信息系统无法显示空间数据以及由此导致无法对突发事件快速响应的问题。

1 系统总体设计方案

1. 1 系统组成

系统主要工作流程是外勤出警人员将手持GPS终端接收来的坐标信息经过GSM网络传送到监控中心,监控中心服务器通过串口接收终端采集到相关数据后存储在数据库中,然后由前台GIS应用程序调取数据库中的数据以电子地图的形式显示在屏幕终端,警务人员可以对其进行空间查询和分析,并且可以显示外勤警务人员的行动轨迹和突发事件的定位显示。其总体架构如图1 所示。

根据系统工作流程可以分析出系统主要由前端和后台监控中心两个部分组成。前端主要是指手持GPS接收机,后台监控中心主要包括显示电子地图的屏幕终端,接收GPS数据的接口,存储空间数据、属性数据、GPS数据的数据库服务器。图2 为系统软件逻辑结构。

1. 2 系统总体功能

通过以上分析可知系统所具有的功能应该能显示电子地图并且可以处理从GPS接收机接收来的坐标信息并将其显示在电子地图中,从而达到对出勤警务人员的历史轨迹以及具体位置进行动态追踪。图3 为系统总体功能。

在GIS地图显示模块中主要包括地图全屏显示、地图漫游、放大、缩小等操作功能。GPS车载终端模块主要包括车载主机、GPS天线、GSM天线、红外子端、Power A/V连线、LCD连线、屏幕、扬声器。GPS / GSM数据通讯模块包括GPS / GSM数据接口、GPS坐标处理机。空间分析模块包括缓冲区分析、最短路径分析、空间距离量算。数据库维护模块包括系统用户、车载GPS终端信息、工作日志、角色维护、数据备份。

2 系统实现

2. 1 数据预处理

系统所需数据从山西省某市城建局得到城区CAD图,再通过中地公司的地理信息系统软件MapGIS将其矢量化,最后再利用ESRI公司的Arc GIS[4]软件将矢量化后的图形进行分层、符号化、着色得到图4 所示的城区电子地图。

系统获取数据的另一个重要来源是从手持GPS终端中获取,这是实现系统目标轨迹追踪功能的数据基础。GPS是全球定位系统( Global Positioning System) 的英文简写,它是在子午仪卫星导航系统的基础上发展起来的并且采用了子午仪系统的成功经验,它和子午仪同样由全球定位系统由空间星座部分、地面监控部分和用户接收机三大部分组成[5]。系统将GIS同GPS技术相结合,通过接受GPS信号,实现对GPS出勤人员定位和轨迹回放,从而提升警务工作的信息化程度[6,7]。

本系统GPS测量主要采用两种坐标系统,分别是协议天球坐标系和协议地球坐标系,其中协议地球坐标系采用的是1984 年世界大地坐标系(Word Geodetic System 1984 即WGS-84 ) 。GPS接收机测得点位坐标基于WGS-84 大地坐标系的地心空间直角坐标(X,Y,Z),此坐标需要进行变换才能与我国实际坐标系相匹配[8]。在这里所用方法是七参数布尔莎模型进行,七参数模型为:

结合公式:

算出:

最后通过B的值算出大地的高:

由上面计算过程可以得到相应点的大地坐标,这样就可以转化为某投影带的高斯坐标。由于BT-54 属于克拉索夫斯基椭球,将克拉索夫斯基椭球参数代入高斯投影正算公式,就能得到BT-54 坐标系下的高斯坐标[9]。本系统所采用的GPS接收机模块内嵌的DSP可以自动将WGS-84 转换到NGS-80或P-54,从而解决了系统获取GPS数据且能让监控中心对其进行处理后在地图上显示目标位置和轨迹。

2. 2 系统详细设计

通过对现有软硬件情况分析,从成本、效益和安全性角度考虑,系统通信方式采用GSM网络,以C / S结构作为开发框架,并且采用三层架构的方式进行二次开发,图5 为系统三层结构。文中三层架构是指UI端/逻辑层、逻辑层/业务层,采用这种方式的优势在于后期维护系统非常方便,而且系统具有很好的可扩展性[10]。系统前台采用Visual C#2008 和Arc Engine 9. 3 进行开发,后台数据库利用SQL Server2005 存储空间地物属性数据和GPS坐标数据,空间地物的属性数据利用Arc SDE将其与关系数据库管理系统SQL Server2008 连接起来,这样空间数据和属性数据可以用一个共用字段Spatial_ID关联起来,实现了空间数据和属性数据的无缝连接,进而可以通过SQL语句对空间数据查询和通过点击空间地物来查询属性数据[11,12,13]。

本系统设计的车载终端主要由GPS接收模块、GSM通信模块和中心控制模块这三部分组成。GPS接收模块组要负责接收GPS卫星发送的报文,再通过GPS数据处理模块解算出人员当前的地理位置、速度以及系统标准时间。GSM通信模块负责将处理好的数据发送到控制中心,然后使得控制中心随时能对外勤警务人员进行定位和轨迹回放。中心控制模块为整个终端的核心部件,负责GPS定位信息并且对时间同步信息提取,再对数据打包。而且还负责GSM模块和监控中心的网络应答响应。

服务器数据库采用微软公司的SQL Server2008,通过需求分析和数据库范式规范,将概念模型转换为可以存储在数据库中的表,表1 为系统主要用表。

3 系统关键模块演示

系统主界面主要有三个部分,主地图显示区、功能菜单区以及图层控制区。地图显示主要是通过Arc Engine开发套件里面的ax Map Control控件来实现,系统中有两个ax Map Control,通过编写代码,可以让这两个地图控件联动显示从而实现了鹰眼的功能。图层控制可以方便操作人员对相关图层进行图层编辑操作,图6 为系统主界面。

以一次实际警务人员外出巡逻为例,当出勤警务人员开车行驶到市区的某一区域,发现此地正有突发事件,警务人员根据现场勘查,需要额外警力,然后将GPS数据通过GSM网络回传到监控中心,中心人员将接受来的GPS数据通过系统处理把外勤警务人员的具体位置定位在主地图中央并且高亮显示,通过点击查询按钮同时查出外勤人员所在位置的属性信息,图7 位外勤警务人员定位结果。

监控中心人员再根据回传来的GPS数据点击主界面菜单栏的GPS轨迹回放就会显示出外勤警务人员到达事发地点所经过的历史轨迹,然后操作人员再点击空间分析菜单中最短路径分析子菜单就会显示出从总部到事发地点的最短路径,以便及时将警力派到出事地点,图8 - 9 分别是历史轨迹和最短路径分析结果。

公安部门决策者通过上述分析结果便可以派出警力迅速到达事发地点。同时系统还提供了GIS一个必备的功能,就是缓冲区分析功能,在本系统中,操作人员在主界面右侧选择原图层为Dot,也就是公安系统,目标图层为Surface6,也就是居民区,缓冲距离为100 米,通过分析可以得到公安系统100 米范围内,居民点的分布情况,从而可以提前做好警力部署来维持治安,图10 为系统缓冲区分析结果。

4 系统关键模块演示

ArcEngine论文 篇5

本文结合天津某开发区地理信息系统的设计和开发实践, 对采用ArcGIS Engine作为GIS开发平台建立园区地理信息系统进行了较深入的研究。本系统融合当今GIS的主流技术——组件式GIS和数据库技术, 能够较好地为开发区建设管理服务, 为展现新园区信息提供了一个平台及可视化窗口。

1 需求分析

从开发区园区信息管理的实际需要出发, 系统能够对新园区地形、建筑物、管线等数据进行统筹管理, 记录新园区从规划初期到竣工建成的整个建设过程;提高园区设施管理的效率, 便于查询和分析, 对今后日常维护、资产管理、各种资料的保存及新园区改造提供依据, 并可直观地展现三维立体的园区景观。

2 系统设计

2.1 系统总体结构

系统采用客户机/服务器 (Client/Server) 的体系结构。服务器端存储系统空间数据库, 应客户端请求发送不同用途的数据, 由系统维护人员负责空间数据库的管理和维护, 客户端只需要安装Arc GIS Engine Runtime (运行时) 即可。

系统以目前在世界上占主流地位的开放型GIS软件——ArcGIS地理信息处理平台为基础, 采用关系数据库SQL Server 2000和ArcSDE 9.2相结合的技术统一管理空间数据和属性数据, 确保空间和非空间数据的一体化存储, 实现数据的存储、管理、查询、检索及数据的深层次挖掘问题, 为前端GIS应用功能的开发提供强有力的支持。

2.2 系统功能模块

根据需求分析, 将系统设计为10个功能模块来实现, 分别为数据加载模块、数据编辑模块、地图浏览模块、影像播放模块、查询检索模块、三维显示模块、空间量算模块、三维分析模块、系统管理模块和地图打印模块。

3 数据库设计

3.1 数据库构成

本系统的数据库建设是一项长期、重要和基础性的工作, 数据库中包括地形、规划和工程勘察数据以及系统配置数据, 构成能够提供丰富的信息资源和服务能力的园区空间数据中心。

3.2 基于Geodatabase的空间数据组织模式

本系统需要对园区建筑物、地下管线、运动场等多种地理要素的空间数据和属性数据进行管理, 涉及的数据种类多, 数据量大, 且各类数据之间存在一定的关系。因此, 为了实现统一管理, 采用新型的面向对象数据模型Geodatabase来设计和管理系统的地理数据库。系统Geodatabase中的矢量数据包含要素数据集 (Feature Dataset) 和要素类 (Feature Class) 两种数据结构, 要素数据集是具有相同空间参考系统的要素类的集合, 如基础地形要素数据集;要素类是存储相同几何类型和属性的要素的集合, 要素类是各要素数据集中具有点、线或面几何特征的地理实体, 如道路线要素类。栅格数据集包含表达连续地理对象的栅格数据, 栅格数据集能够表示一副影像图、一个表面、一个以格网采样的环境属性, 或者有关特征的对象图片, 开发区园区用地的遥感影像图 (QuikBird卫星数据) 是采用栅格数据集管理。关系表中的表文件是记录的集合, 本系统地理数据库中的关系表为项目设计方案信息表。

4 系统开发与实现

4.1 系统开发环境

采用Visual studio 2005+ArcGIS Engine 9.2作为系统的开发平台, 用面向对象的方法进行程序设计, 通过Visual C#开发语言调用ArcGIS Engine组件库的组件, 利用相关接口和函数开发系统功能, 实现了数据加载、数据编辑、地图浏览、影像播放、查询检索、三维显示、空间量算、三维分析、系统管理和地图打印功能。

4.2 主要功能实现

以地图浏览、三维显示和三维分析为例进行说明 (图1) 。

(1) 地图浏览。

地图浏览界面主要由地图显示区、图层控制区、菜单栏和工具栏组成。

地图浏览功能可进行视图控制和图层控制操作, 主要是利用ArcGIS Engine中己封装的工具条控件 (ToolbarControl) 和目录树控件 (TOCControl) 实现, 使用工具按钮对地图进行放大、缩小、移动等操作, 方便用户观察目标和快速定位。图层控制窗口用来显示地图的图层, 可以控制图层的显隐以及图层在上层或下层的控制, 便于用户选择感兴趣的图层和显示方式进行地图浏览和查询分析, 提高查找效率。

(2) 三维显示。

通过显示园区三维地形模型和地物模型, 可以为开发区管理人员提供对园区布局和资源的可视化预览, 提供可视化的分析和决策环境, 以地形表面模型建立为例进行说明。

(1) 创建TIN (不规则三角网) 。

从1∶500园区用地现状地形图中提取出测量点, 测量点数据含有高程信息, 使用测量点创建TIN。TIN用不规则三角网表达地形表面, 三角形的网点存储Z值 (高程值) , 从而建立了园区用地现状的地形表面模型。

(2) 在TIN上叠加建筑物的高度。

在TIN上分别叠加用地现状地形图上的居民地和规划园区单体建筑的建筑高度, 从而得到叠加居民地的地形表面模型和叠加园区单体建筑的地形表面模型, 按照不同的高程段用不同的颜色显示, 展示了园区不同时期的三维地形景观, 如图2所示。

(3) 三维分析。

三维分析是在创建了表面模型数据基础上的分析, 基于ArcEngine的接口和函数二次开发实现, 三维分析功能可以为用地规划和建筑选址提供决策依据, 以剖面分析和视域分析功能为例进行介绍。

(1) 剖面分析。

系统可根据地形数据绘制地形剖面图, 地形剖面图表示沿两点连线前进时地形表面上高程变化的情况。首先, 在TIN上选择两点, 然后根据选择的两点创建剖面线 (Polyline对象) , 然后计算出TIN与Polyline对象相交后的三维线 (含有Z值的线) , 根据三维线对象在TIN上绘制图形要素, 最后根据三维线上每个点的距离和高程信息绘制地形剖面图。

(2) 视域分析。

视域分析功能实现了两点通视分析。首先需建立视线瞄准线, 创建视线瞄准线可以判断某点相对于另外一点而言是否可见。如果地形遮挡了目标点, 则可以分析得出这些障碍物, 以及视线瞄准线上哪些区域可视, 哪些区域不可见。在瞄准线上, 可视与遮挡的部分分别以不同的颜色表示。

5 结语

本文结合天津某开发区园区地理信息系统的开发实践, 探讨了ArcGIS Engine组件技术在园区信息化管理中的应用和实现方法, 在开发过程中得出以下结论: (1) 为了便于设计开发和维护管理, 需要采用合理的GIS空间数据与属性数据的组织结构, 建立比较完善的空间数据和属性数据关联的GIS数据库, 这是实现GIS功能的前提条件和系统开发成败的关键。 (2) 选择ArcGIS Engine作为系统的GIS开发平台, 能够满足新园区信息管理对GIS功能的需要, 较好地实现系统集成。利用可视化开发语言Visua C#进行开发集成, 能够方便灵活地实现GIS大部分功能。

摘要:地理信息系统以其强大的数据可视化、空间数据库管理以及空间分析功能, 为园区信息化管理提供了强有力的工具。本文以天津某开发区园区地理信息系统开发为研究背景, 对GIS技术在园区信息管理中的应用进行了研究, 阐述系统总体结构、功能模块和数据库设计, 基于ArcGIS Engine开发平台, 结合可视化开发语言Visual C#进行集成二次开发, 实现了显示、查询、编辑等GIS常用功能以及三维显示和三维分析功能, 为开发区管理部门提供多层次园区地理数据与决策依据。

关键词:园区地理信息系统,ArcGIS Engine,三维分析

参考文献

[1]董娜.基于ArcGIS Engine的××大学新园区地理信息系统研究与实现[D].昆明:昆明理工大学, 2008.

[2]顾留碗, 郑平建, 张海荣.基于GIS技术的滁州学院管理系统[J].滁州学院学报, 2009 (1) .

[3]赵俊兰, 冯仲科.基于组件式的数字园区信息管理系统的建立[J].测绘通报, 2007 (6) .

ArcEngine论文 篇6

测量控制点是城市经济建设和科学研究的永久性设施之一,在城市基础测绘国土整治和空间技术等许多领域发挥着重要的作用。传统的控制点管理方法显现出一系列的问题,如控制点数量较多不易管理,各种坐标系管理容易换了,手工查询速度慢,无法可视化了解周围其他控制点分布情况等。

GIS技术恰好满足了信息化测绘的需要。当前流行的Ar⁃c Engine提供了强大的空间数据的处理、编辑、可视化等解决方案。Arc SDE作为空间数据引擎连接应用程序和关系数据库,将大量的信息存储在关系数据库中,进行空间数据和属性数据统一存储和管理。本文在VS.NET开发平台的基础上利用Arc En⁃gine、SQLServer2008和Arc SDE相关技术构建测量制点管理信息系统,实现了控制点数据库存储、地图查询、编辑、可视化等功能,有效地促进了对测量控制点的可视化管理。

2 测量控制点管理信息系统的设计

2.1 系统总体设计

通过对现有控制点管理工作的分析,测量控制点管理信息系统包含的主要功能为:用户管理、控制点录入、编辑、输出、地图操作、计算点检核点图上选点等功能。如图1所示:

用户管理模块主要用于系统登录权限的管理与分配,包括管理员、用户和日志三个子模块。管理员子模块用于查看、增删各个区县的普通管理员名单。用户子模块用于查看、增删授权用户名单。日志子模块用于查询、导出用户操作行为。控制点录入包括控制点成果表入库、点之记入库、普查信息入库、技术文档及网图入库;包括编辑模块,实现控制点增添删改等功能,并同步更新空间数据库的点信息。地图操作主要实现控制点数据的放大、缩小、移动、点选查看、视图回撤及前进等功能,同时可以随时查看技术文档及控制点网图,方便用户根据需要随时浏览数据;定位查询主要提供根据坐标查询、属性查询、复合条件查询、空间查询、模糊查询;统计输出统计分析:提供通过控制点类型、控制点等级、控制点的保存现状、控制点所在的行政区域进行统计;成果输出:提供控制点成果表、点之记、普查信息、技术文档及网图等批量输出及打印;图上选点计算点、检核点录入数据库后生成点状图,通过人工检验选出适合进行参数计算的点,为进一步参数计算、数据转换工作提供最事宜的计算点、检核点。

2.2 系统数据库设计

控制点管理信息系统整体数据库规结构设计灵活,为数据转换平台提供全面数据存储和操作支持。控制点数据分为三大类,一是控制点成果数据,以csv表格数据为主,二是控制点点之记信息,以点之记Excel表格为主,三是控制点图片,以dwg,jpg格式为主。在控制点管理信息系统的数据库设计中,控制点信息中的控制点点号都是作为主键与各个数据表相连,坐标系信息用坐标系ID与椭球参数信息及控制点基本信息相连。控制点管理信息系统数据库主要包括控制点基本信息表、控制点图片信息表、坐标表、高程表、坐标系信息表、高程系信息表、用户表、权限表、日志表、区县表组成,如图2至图5。

在基表之上根据不同权限等级的用户,建立对应的视图虚拟表,这样是得数据库的操作既简单又安全。用户看到的就是需要的,那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其他数据则既看不见也取不到。从而越过对底层数据库的直接操作,避免误操作造成数据丢失。

3 系统关键模块的实现

3.1 系统主界面

基于Arc Engine与Dev Express控件设计了系统可视化主界面,目录树窗口、地图窗口及工具栏,工具栏主要包含:基本工具、控制点录入、控制点查询、辅助选点等如图6所示。

3.2 控制点录入模块

控制点数据成果经初步整理后一般为批量的控制点数据,将控制点的空间数据和属性数据逐个的添加到系统数据库显得不切实际,不仅过程繁琐,而且也极大降低工程项目的时间效益和经济效益,因此批量录入控制点数据就显得十分重要,控制点录入模块包括控制点单点录入与表格批量录入,如图7、图8,即控制点成果表入库、点之记入库等方面,如控制点数据包括点名、点号、坐标等属性数据,以及点之记、控制点近景图片等相关图形数据。录入基本信息的同时,系统会判断空间数据库是否已有该点的属性信息及空间要素信息,再将信息添加或更新至空间数据库,即控制点信息与地图数据是关联,使用户操作更加直观明了。

录入模块的编辑操作可以根据系统提供的权限,对系统中各类数据进行添加、删除、修改,系统将所有数据缓存在Data T⁃able中,可对其进行操作,Data Table与数据库视图交互,减少了数据库的操作。点之记在数据库里存储的是文件路径与文件名,用户查看某点的点之记时,只需选中该点,点击菜单栏查看点之记或鼠标右键查看点之记,系统将根据文档的点号调用word或PDF程序打开选中点对应的点之记文档。

3.3控制点定位查询模块

本系统以CGCS2000为空间坐标体系,利用Map Contol控件生成控制点的点位分布图,控制点定位查询模块分“以图查文”和“以文查图”两个部分,“以图查文”分点选查询和图层查询两个部分。点选查询即是在地图上点击控制点,响应函数会通过点号进行数据库查询操作,利用Tre View控件系统以目录树的形式展示改点的属性信息如图9;图层查询是选择要查询的图层,根据图层字段查询满足条件的控制点,并将结果高亮显示,其操作界面如图10所示。

“以文查图”提供根据控制点属性进行条件查询,例如查询投影坐标系为北京54,6度带,中央经线为114E的所有控制点,系统会返回满足该条件的控制点的所有详细信息,使用Dev Ex⁃press的Grid View控件以表格形式展示,该表格支持在任意列进行检索查询,双击某一列,即可弹出该条记录的所有详细信息,其界面如图11所示。

3.4 图上选点模块

图上辅助选点,通过框选等查询,或事先检索出满足条件的点,生成临时地图,进行图上选点,或查询满足选定坐标系的所有点,显示在图上以供选择。其操作界面和选点效果如图12、图13所示,同坐标系的控制点可以展到与其相应坐标系的底图上,方便使用人员图上筛选计算点、检核点为接下生成更准确的坐标转换参数打下很好的基础。通过查看控制点分布地图,以此可判控制点的位置是否合理,

4 结束语

经过长时间的分析及设计实现,惠州市控制点管理信息系统终于能在实际工作中使用了。本系统数据库灵活,数据库的设计并没有用一张表存储控制点坐标与基本信息而是将坐标表、基本信息表、高程表、坐标系信息表、高程信息表分别设计,增加了表的数量,但大大提高了数据库存储的灵活性,才实现了不同坐标系、不同点号控制点之间的查询编辑等操作。

系统交互性好,系统本着操作简单的原理进行设计开发,在控制点单点录入、批量录入、控制点查询等功能设计上均充分考虑实际工作人员的操作习惯,便于其录入、编辑、查询。系统地图展点功能灵活实用,支持不同坐标系的控制点可以展到与其相应坐标系的底图上,方便使用人员图上筛选计算点、检核点为接下生成更准确的坐标转换参数打下很好的基础。

另外,系统应得到不断地完善,不足之处亦很明显,如功能上需要进一步扩充,在控制点选取的适宜性评价方面还有待完善,建立相应的评价模型,增加空间分析功能;对于控制点数据属于测绘保密数据这一特性应更加重视,如何做好保密工作,以及将来可能用到四维数据等,这都将是系统研发的又一课题。

参考文献

[1]吴功和,丛明日.基于Arc GIS Server的分布式GIS应用[J].测绘科学技术学报,2006(1).

[2]朱方洲.基于Webservice的分布式应用系统设计与实现[J].电脑学习,2003(4).

[3]蒋星祥,胡大国,杨平.基于图形的测量控制点管理系统[J].信息技术-国土资源信息化,2006(3).

[4]李军国,翁丰惠.基于GIS的测量控制点管理系统的设计与开发[J].广东水利电力职业技术学院学报,2005(1).

[5]朱振杰.SOA的关键技术的研究与应用实现[D].成都:电子科技大学,2006.

[6]邬伦,刘瑜,张晶.地理信息系统原理方法和应用[M].北京:科学出版社,2001.

ArcEngine论文 篇7

关键词:GIS ArcEngine技术,电子海图,读取,显示设计

在经济全球化发展背景下海洋贸易也有迅速发展, 那么在海洋贸易发展如何准确定位船舶位置, 确保船舶行驶安全。 电子海图在海洋导航定位中具有重要应用价值, 现今对于数字电子海图可以被分成两类, 其中一类是矢量化海图, 另一类是光栅扫描海图, 同时其也能够和GPS、计程仪、雷达、气象仪以及测深仪等导航数据进行结合使用。 本文则关于GIS Arc Engine技术在电子海图读取和显示设计中的应用进行分析。

1电子海图的关键技术

电子海图的显示系统所采用的是shapefile电子海图格式, 这一数据研究是美国环境系统研究所研制所得, 也是目前应用比较广泛的一种矢量数据格式。 这种格式在应用中比较方便, 其主要是采用点线面对空间特征表示, 并且也会将这些非拓扑地理特征与其特征属性全部都保存起来。 在shapefile文件中其标准形式需要有图形、DBASE属性文件以及索引文件。

其中图形文件则组成部分包括固定长度的文件头以及不定长度的记录, 其中文件头需要对这一文件的数据类型、边界范围以及文件长度等相关信息全部记录。 在对shapefile文件进行读取的时候首先也就要获取其文件头, 以能够首先了解这一文件的相关信息, 在此基础上将元数据表建立起来[1]。 不定长度的记录形式与其基本相似, 组成部分包括定长记录头 (Record Hearder) 以及不定长记录 (Record Contents) 。 其结构如表1所示。 属性文件则是用来对属性信息记录, 其标准形式是DBF文件, 组成也被分成两部分, 分别是头文件和实体信息。 其中头文件是不定长记录, 主要目的是详细说明DBF文件, 实体信息的组成则是和图形文件相对应的记录项, 任何一条记录中均有可能会出现多个属性记录, 甚至也有可能会是空值, 其需要依照实际情况呈现。 索引文件是坐标文件的索引信息, 从整体上来看, 其结构和图形文件一样, 其内容则包括文件头以及实体记录, 对于文件头大小的确定则和图形文件相同, 实体记录包括两个部分记录长以及偏移量, 记录长主要是对其相对应图像文件记录长度记录, 偏移量则是关于这一文件头位置的偏移数值记录。

2电子海图的结构设计

电子海图显示设计关系到数据解析、图形显示以及坐标变换等过程, 所以如果是在Android系统中的电子海图显示, 其步骤可以被分成以下几步, 具体如下所示。 其中系统组织结构则如图1所示。

2.1 S-57数据解析和系统内部数据存储

在系统中这一模块具有基础作用。 其表示方式是点线面三种物标类型, 并且再加上相应空间坐标, 从而构成其具体的内部数据格式, 并且还能够将其内部数据依照其图幅大小成功在SD卡上进行存储。 在其存储过程严格依照比例尺所形成的图幅索引, 这样可以为其海图显示检索提供一定方便。 内部数据格式的成功应用, 对电子海图显示速度有明显的提升[2]。

2.2坐标投影以及转换

这一模块主要任务是成功解算出地球椭圆体上的地理坐标在计算机屏幕上所使用的迪卡坐标几何投影, 同时也要完成从电脑屏幕到地理坐标中的反解算功能。 那么借助于这一模块也就能够将数据中的地理坐标成功在计算机屏幕上显示, 并且计算机屏幕上的位置也能够准确标注出其具体的地理坐标。

2.3海图检索和海图显示

这一模块功能则是根据当前能够显示的比例尺和屏幕范围对其显示的电子海图进行索引, 之后所有被检索到的电子海图内部格式数据需要全部进行加载, 依照S-52规范并采用点线面格式绘制出检索到的电子海图显示内容。 可以采用True Type字体实现电子海图的符号化物标, 这样不但能够对其显示海图效果实施一定的优化, 同时还能够显著对其绘图速度有所提升[3]。

3电子海图的显示设计

3.1 Arc Engine技术和电子海图显示软件

Arc Engine技术是为GIS开发人员在组件实用基础上所开发出的一个框架, 这一框架能够为提供商或者内部开发人员提供行业内部的专用GIS应用软件, 其借助于GOM技术对其解决方案实现, 并且采用Active X控件形式将其在应用程序中进行嵌入。 但是因为控制软件中包括大量的GIS数据接口函数, 所以从理论上来讲其开发人员能够将Arc GIS所有功能全部实现。 借助于VC++MFC平台和相关海图技术, 也就能够实现其电子海图的显示功能。

3.2电子海图的显示实现

在电子海图系统中S-57模块将其海域分解成若干个小单元, 其中信息量的多少能够对其电子海图单元大小起到决定作用, 但是必须要小于5MB, 每一个单元均会有自己的编号, 并且均有具体的有效范围以及编辑比例尺。 其中电子海图的显示流程如图2所示。 在电子海图显示设计中, 首先也就需要依照屏幕上所显示的范围及其具体比例尺, 检索到与其条件相符合的电子海图, 之后对检索到电子海图中的相关数据读取, 依照其数据找到具体的点线面物标位置、形状等相关信息, 并在缓存中对其物标进行具体绘图, 在最后对屏幕进行刷新, 以完成整个显示。 在这一系统中其显示部分均通过Android系统中的Surface View类实现的。 其中Surface View能够从其内存或者是存储器方位方式 (DMA) 等一些硬件接口中直接将其图像相关数据获取, 属于是Android系统中的一个重要绘图容器。 在其电子海图单元显示过程中, 不管是哪一个单元其海图要素均比较多, 另外再加上电子海图中的漫游缩放等复杂操作, 也就导致在绘制海图过程中, 需要占用大量内存, 其中Surface View也就能够将从主线程之外的线程中逐渐向屏幕进行绘图, 从而有效的避免因为图画中的繁琐任务而导致其主线程出现阻塞情况, 不管是程序的反应速度还是其相关操作的平滑性均能够得到显著提升。

4结语

综上所述, 以上在Android系统中采用GIS Arc Engine技术成功实现电子海图数据读取和显示功能, 在S-52标准模块上对电子海图的渲染及显示成功完成, 之后借助于电子海图上的经纬度相关信息, shapefile电子文件被成功转化为相关数据信息, 这样对其电子海图的显示速度有大大的提升, 并且还实现了电子海图的测量和定位功能。 基于电子海图的显示设计可以明显看出这一海图精度较高, 同时还能够实现和GPS数据、卫星遥感数据等相关信息的结合使用, 从而大大提高其这一技术的应用前景和应用范围。

参考文献

[1]钟宇, 赵朝方, 刘元廷, 等.基于Arc Engine电子海图显示技术与实现[J].测绘与空间地理信息, 2012, 35 (9) :133-135.

[2]许兆新, 花文华.三维电子海图地形可视化技术研究[J].哈尔滨工程大学学报, 2009, 30 (10) :1129-1133.

【ArcEngine论文】推荐阅读:

上一篇:集落刺激因子-1下一篇:电工基础情境教学法

本站热搜

    相关推荐