刘阳娜
摘要:在可视化技术、空间技术、计算机图形技术等不断发展过程中,逐渐地转变原有的二维地理信息系统,变为三维地理信息系统。现阶段,地理信息系统领域中,三维地理信息系统已经成为一个新的发展趋势,不过迄今为止,仍然只是在部分实验性原型系统中实现了部分的三维地理信息系统功能,并未广泛推广,而该项技术的广泛推广对于地理信息系统发展来说,意义重大,因此,该文在ArcGIS Engine基础上,分析了三维地理信息系统的开发及应用。
关键词:ArcGIS Engine;三维地理信息系统;开发;应用
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)03-0005-02
相比于二维地图,三维显示地形地物时,不仅利于人们直观的观看,且会给人们营造出身临其境的感觉,还能将人们利用地图的各种需求得到充分满足。因此,不断有公司推出三维图形显示软件,其中,典型代表之一即为GOOGLE EARTH(GOOGLE公司开发),但由于单位数据具有庞大的数据量,现有三维地理信息系统产品均存在一定的不足之处,如建模复杂、代码众多、浏览速度慢等,导致国内并未普遍的应用三维地理信息系统。ArcGIS Engine由ESRI公司推出后,有利于将上述问题妥善的解决,由此可见,本文在ArcGIS Engine基础上研究开发三维地理信息系统的方法具有十分重要的现实意义。
1 ArcGIS Engine三维组件
ArcGIS Engine属于完整GIS组件库,开发公司为美国ESRI公司,组成为一组核心ArcObject包,用于构建定制应用,不仅能够对多种应用程序接口做出有效支持,且可进行自定义独立独立信息系统应用程序的建立,拥有的高级功能众多。在ArcGIS Engine中,所提供的应用编程接口有三种,分别为C++、COM、.NET,对于存在二次开发需求的用户,其留有的自由空间非常大,用户可按照自身需求,进行相应级别开发方式的选择,促进开发工作便利的完成。
ArcGIS Engine提供的控件也非常多,如TocComtrol、ToolBarControl、GlobeControl,相比于ArcObject,ArcGIS Engine更易掌握、操作简单,且一定的增强了功能。ArcGIS Engine提供的各种控件分别负责实现不同的功能,如ToolBarControl控件,功能按钮主要由其提供,实现打开专题地图、浏览专题地图等操作;再如TocControl控件,实现分层显示、管理专题地图,并将图例提供出来,支持修改地图[1]。在其众多控件中,核心控件为SceneControl控件,负责三维浏览、漫游、控制显示专题地图,此控件与GlobeControl控件一起,极大的扩展了ArcGIS Engine在三维开发方面的能力。
2 基于ArcGIS Engine的三维地理信息系统的设计与实现
2.1 系统开发原则
地理信息系统具有较强的专业性、综合性及复杂性,必须要以软件工程规范程序为依据,严格开展系统建设工作,保证系统结构框架科学合理,并兼具高效性与先进性,使用户需求最大限度地满足。此外,三维地理信息系统设计过程中还应坚持以下几方面原则:
第一,面向对象,面向对象抽象归纳了实体,封装实体属性及操作,形成类,本研究开发系统时,工具采用ArcGIS Engine和Visual C++6.0;第二,应用程序与数据分离,程序代码分离图形及属性数据库后,可使系统的可维护性及可移植性增强;第三,实用性,三维地理信息系统是一个应用软件,只有具备实用性时,才能提升其运行效率,并延长运行寿命;第四,先进性,开发技术要选择国际上先进的、成熟的,采用国际最新的软硬件平台及设备,使系统与当前发展相适应,并与今后发展方向相符合;第五,高效性,提高工作效率为开发软件的一个重要目的,因而系统开发中必须要坚持此项原则,才能保证软件开发成功;第六,规范性,标准化、规范化与统一化是系统设计过程中所着重强调的,只有如此,系统才可以正常运行,实现共享系统内的数据信息[2]。
2.2 系统开发环境
开发三维地理信息系统时,操作系统选择为Windows XP,基础为ArcGIS地理信息系统处理平台,开发环境为Microsoft Visual C++ 6.0,集成二次开发中调用ArcGIS Engine组件,数据库采取Oracle 9i,调度管理空间数据通过ArcGIS空间数据引擎ArcSDE实现。
2.3 总体结构设计
系统体系结构采用C/S结构,即客户端/服务器结构,所有系统数据均存储在服务器中,客户发送请求后,以此为依据,将相应数据发送给客户;客户端负责特定数据的接收,并进行数据的计算、分析及统计,显示结果。在服务器端,包含Oracle综合数据庫和数据库引擎ArcSDE,二者协同完成空间数据的存取,并由数据库引擎ArcSDE管理Oracle综合数据库内的空间数据,使三维显示、空间分析等实现。
2.4 系统数据管理
在三维地理信息系统中,具有基础性作用的为组织、管理数据库,直接对用户使用效果、工作效率产生影响。空间数据库要想高性能的建立,关键在于空间数据模型恰当选择。本文中,以Gocdatbaase数据模型作为空间数据模型。ESRI公司提供了三种Geodatebase数据库的创建方法:第一种是向Geodatebase数据库内转换已经存在的数据,第二种是利用ArcCatalog、ArcTool提供的工具进行Geodatebase数据库创建,第三种利用UML、Case工具进行Geodatebase数据的创建[3]。现阶段,Geodatebase结构包含三种,这三种基本具有相同的功能,只是通过版本控制由其中的ArcSDE Geodatebase支持,允许一个地理数据库同时被多个用户访问、编辑。对于三维地理信息系统开说,空间数据及属性数据为两类主要涉及的数据,因此,Geodatebase数据创建过程中,本文采用第二种方法,而管理操作数据采用ArcMap等三维建模软件。
2.5 系统功能设计
开发三维地理信息系统过程中,重要环节之一即为功能设计。本文所设计的系统中,包含四个基本功能模块(数据管理、数据库访问、三维显示、打印输出)和四个高级功能模块(生成DEM、场景设置、三维空间分析、信息查询),每个功能模块下设多种细化功能。
2.6 系统实现
2.6.1 数据访问模块开发
数据量及需求不同情况,Geodatebase结构可采用不同的,因此,数据访问方式也存在差异,本系统中,Personal Geodatebase、File Geodatebase、ArcSDE Geodatebase数据结构的数据加载方法均已提供,其中,无需通过ArcSDE数据库引擎即可实现数据加载的为前两种数据结构,数据类型直接加载。在数据类型方面,ArcGIS提供的数据类型有两种,一种为RASTER,与GRID数据对应,一种为TIN,与TIN数据对应。另外,ArcGIS中,可以利用feature class数据类型表达矢量数据,因此,以空间数据为依据,表达方式包含矢量数据模型、TIN数据模型及栅格数据模型三种,设计了能够将feature class数据类型、DEM数据类型加载实现的方法。
2.6.2 三维显示模块
包含三维浏览及图层管理两项功能。三维浏览方式设计为多种,如放大浏览、缩小浏览、全幅显示等,实质上,观察者改变自己的视点位置及视野范围时,即会引起三维地图可视范围的变化。ArcObject提供Camera对象,其可对可视范围变化做出控制。图层管理功能主要通过ArcGIS Engine提供的tocContorl空间实现,通过该项功能,用户可对整个场景的某些属性做出直接控制,也可利用特征属性,实现对场景内某些位置的选取,另外,也可对三维场景做出任意视角的浏览[4]。
2.6.3 生成DEM模块
生成DEM模块具备三种功能:第一,生成RASTER数据,规则网格模型为数据高程模型DEM类型中的一种,有多种方法可建立规则网络模型,通常,采集到的数据存在形式为离散点,只有在这些采样点上数据才能有效、准确的存在,但在实际应用中,未采样点的值也需要使用,此时,该数据需要通过已采样点来推算,采样点插值后,连续表面由其结果生成,在此表面上,每一点值均可获得,插值方法开发实现后,RASTER数据即可生成;第二,生成TIN数据,DEN数据生产中,TIN数据经常采用等高线法、离散点的高程点来生成,在ArcGIS中,将等高线与离散点均看成feature class数据类型,进行相应的处理,由此一来,含高程值字段的feature class数据集可被获取,该数据集即为TIN数据生成的数据源;第三,提取等高线,DEM表面加载后,程序将其高程范围计算出来,定义输入后,等高线两个参数输出,利用这两个参数,等高线信息被计算出来,完成提取等高线[5]。
2.6.4 三維场景设置模块
该模块可以实现三维场景基本属性的改变,利用该模块提供的垂直拉伸、叠加纹理、分层设色功能,达到改变的目的。例如垂直拉伸,是指将应用的地形图层拉伸,将加载表面数据集获取,之后判断得到的表面数据为何种类型,最后,完成图层基准高、垂直拉伸系统的设置,点击刷新,地形改变效果即可呈现出来。
2.6.5 三维空间分析
设置完成三维场景之后,即可根据需求进行三维空间分析工作,本文设计的三维空间分析模块中,具体功能包含查询属性、查询空间位置、分析坡度、分析坡向、分析通视、绘制剖面图,满足用户的各种分析需求。
3 三维地理信息系统的应用
本节中,以某县为例,利用上述系统开发方法,设计该县的综合三维地理信息系统,设计完成后,将该县的地形、地貌真实地再现出来,同时,通过与多媒体信息相结合,使区域内的政治经济、人文历史、名胜古迹等均展示出来,实现办公系统的信息化与智能化。
3.1 数据构成
在该县三维地理信息软件中,包含三种数据,分别为矢量数据、高程数据和正射影像数据,总量约为15G,其中,矢量数据可细分为若干层,如控制点层、居民地层、管线设施层等。利用ArcSDE,这些数据仅在Oracle数据库中存储,同时,数据索引由ArcSDE自动建立。通过统一管理及索引,极大地提升了数据库读取数据的效率,确保可以显示出海量数据,不过,并不能直接使用这些数据,需进行相应的处理,使高程信息包含在矢量数据和正射影像数据中。首先,这两类数据均架加载在ArcScene或ArcGlobe中,之后调出其属性对话框,设置高程信息字段属性值,变为相应的高程数据信息,将三维地形数据逼真的生成。
3.2 系统功能
该县三维地理信息系统中,共包含7项功能,分别为基本浏览功能、飞行功能、坡度及坡向计算功能、可视性分析、土方量算、热点区域功能、地图切换功能。基本浏览功能即为浏览该县的全景图、县内各个区域的地形图等;飞行功能包含两种,一种为自动飞行,一种为手动飞行,此项功能便于用户对该县地形地貌直观的观察;坡度及坡向计算有利于用户了解地表倾斜状况,并将泥石流区、土壤侵蚀严重区等确定,为水土保持、灾害防治工作的开展提供科学的参考;可视性分析是指分析观察者是否将目标发现;土方量算是指计算破产体积,为开发区域内的自然资源提供参考;热点区域功能有助于用户方便、快捷地找到事先存储的特殊区域、关注区域等;地图切换包含切换到地形分析界面、切换到地貌浏览界面两种功能,并能切换三维地图和二维地图。
4 结论
ArcGIS Engine基础上,开发的三维地理信息系统能够快速的处理相关的数据信息,并显示出处理结果,且用户可根据自身的需求进行相应的编辑,使用户需求得到充分的满足。
参考文献:
[1] 佘金星,周凯,吴志强等.警用地理信息系统平台下仿三维地图实现[J].测绘科学,2017,42(4):168-172.
[2] 黄梦龙.基于Skyline的三维城市模型数据库管理系统设计与实现[J].测绘与空间地理信息,2014,37(8):133-135.
[3] 兰玉芳,付金霞,徐霞等.基于SketchUp与ArcGIS的校园3DGIS的设计与实现[J].遥感技术与应用,2013,28(2):346-352.
[4] 杨佳,杜渐.基于ArcEngine的北京某园区地理信息系统设计与实现[J].科技创新导报,2013(7):44-45.
[5] 崔世杰,王杰,陈刚等.基于ArcEngine的石家庄某园区地理信息系统设计与实现[J].科技创新导报,2013(2):38+40.