基于GIS的油田社区信息系统的设计与实现.pdf

基于GIS的油田社区信息系统的设计与实现.pdf

ID:34535938

大小:1.58 MB

页数:81页

时间:2019-03-07

上传者:文档小小白
基于GIS的油田社区信息系统的设计与实现.pdf_第1页
基于GIS的油田社区信息系统的设计与实现.pdf_第2页
基于GIS的油田社区信息系统的设计与实现.pdf_第3页
基于GIS的油田社区信息系统的设计与实现.pdf_第4页
基于GIS的油田社区信息系统的设计与实现.pdf_第5页
资源描述:

《基于GIS的油田社区信息系统的设计与实现.pdf》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

论文题目基于GIS的油田社区信息系统的设计与实现专业学位类别工程硕士学号200991231725作者姓名任向东指导教师于永斌副教授万方数据 分类号密级注1UDC学位论文基于GIS的油田社区信息系统的设计与实现(题名和副题名)任向东(作者姓名)指导教师于永斌副教授电子科技大学成都牟忠信高工中石化集团公司胜利石油管理局东营(姓名、职称、单位名称)申请学位级别硕士专业学位类别工程硕士工程领域名称软件工程提交论文日期2013.3.25论文答辩日期2013.5.18学位授予单位和日期电子科技大学2013年6月23日答辩委员会主席评阅人注1:注明《国际十进分类法UDC》的类号。万方数据 BASEDONTHEGISINFORMATIONSYSTEMDESIGNANDIMPLEMENTATIONOFOILFIELDCOMMUNITYAMasterThesisSubmittedtoUniversityofElectronicScienceandTechnologyofChinaMajor:SoftwareEngineeringAuthor:RenXiangdongAdvisor:YuYongbinSchool:SchoolofInformationandSoftwareEngineering万方数据 独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。作者签名:日期:年月日论文使用授权本学位论文作者完全了解电子科技大学有关保留、使用学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。(保密的学位论文在解密后应遵守此规定)作者签名:导师签名:日期:年月日万方数据 摘要摘要目前城市地理信息,如与建筑物相关的数据大部分是以二维的形式存储。地理信息系统的软件也是在二维数据上进行操作,诸如查询,修改和更新等。二维数据表示地理信息限制了2DGIS的发展,对一些需要三维表示的数据,2DGIS不能很好地满足要求。用3DGIS表示现实世界除了可以帮助查询者清晰,直观的获得所关心的信息,还可以动态的,交互的分析二维平面和垂直方向位置信息之间的关系。尽管3DGIS的应用有很大的优势,但是由于视野的局限性,用户在浏览查询得到的三维信息时,就容易产生错觉,不能很好的分析三维信息,因此需要实现2DGIS和3DGIS的一体化,即实现2DGIS与3DGIS的结合,查询三维信息需要在3DGIS中实现,而查询和分析二维信息则需要在2DGIS中实现。本论文开发了基于GIS的油田社区信息系统,实现了主要的功能,主要包括2DGIS的基本功能,3DGIS的三维空间信息查询、漫游、分析功能,以及2DGIS和3DGIS互响应功能。设计开发了一个基于GIS的油田社区信息系统的原型系统-SLInfoSys(ShenLiYouTianInforSystem)。本文的主要工作概括如下:(1)2DGIS系统的建立实现了2DGIS的基本功能,包括支持多种数据文件;图形显示;查询分析;空间分析;2DGIS到3DGIS的互响应等。(2)研究了三维模型的建立过程三维模型的建立包括模型数据的获取,模型数据的数据结构的选取等。3DGIS采用基于结构实体几何法和边界表示法的箱式分割数据结构,并以此为基础实现相应的数据模型的设计。(3)三维模型可视化的设计通过VRML中间数据格式,对数据进行进行分析,处理,然后将空间数据和属性数据存储到数据库中。在图形显示或查询分析时,直接从数据库中读取相应的空间数据,重构三维虚拟场景,实现三维数据的可视化。(4)交互操作的实现系统提供了三种基本的交互操作:用户与2DGIS的交互;用户与3DGIS的交互;2DGIS和3DGIS的交互。对互响应原理做了一定程度的研究。关键词:社区规划,二维信息,3DGIS,三维信息,互响应I万方数据 ABSTRACTABSTRACTCurrently,theformatofalmostallcitygeographicinformationarestoredintwodimension.Theoperations,suchasmanagement、inquiryanddisplay,inGeographicalInformationSystem,executeintheformatoftwodimension.Usingtwodimensiondataformattorepresentthegeographicalinformationlimitsthedevelopmentof2DGIS,somethreedimensiondataaswell.Threedimensiongeographicinformationsystemshavethequalityofrealisticaffections,dynamic,mutual,realandvisualaidofspatiallyanalysis.Moreover,3DGIScanalsodescribeandexpressthedominanceoftherelationshipofperpendicularlyproperty,andithasbeenbroadlyappliedinmanyareassuchascityplanandsoon.Althoughthebigadvantageofusing3DGIS,therearesomelimitationsinviews,especially,whentheuserinquirethethreedimensionalinformation,causingsomeillusion.Therefore,werecommendtheintegrativemethodof2DGISand3DGIS.Thitis,weapplytwoandthreedimensionstoimplementoilfieldcommunityintegrativemanagementwithGIS,inquiringandanalyzingtwodimensionsinformationin2DGISandinquiring3Dinformationin3DGIS.wedevelopedasystemcalledoilfieldcommunityinformationsystembasedonGIS,implementingthecommonfunctionof2DGIS,roamfunctionof3DGIS,thebuildinganddisplayingofthreedimensionsincommunity,spatiallyinquiryandanalysisofthreedimensions,andthemutualresponsebetween2DGISand3DGIS,completingtheResearchandDevelopmentofaoriginalsystem—SLInfoSys(ShenLiYouTianInforSystem).Themainworkofthisthesisisasfollowing:(1)Thedevelopmentof2DGISSystemTheimplementationofsomefunctionof2DGISSystem,suchasmapoperation,lookingforthetargetinspecialscope,thevisualanalysisofattributeinformation,staticsandsoon.(2)Theresearchofbuildingprocessof3DmodelThediscussionofdifferentdataandthewayofrequirementneededinthethreedimensiongeologicalinformationsystem.Proposedtheboxpartitiondatastructurebasedonthegeometricmethodandboundaryofstructuralrepresentation,anddesigningII万方数据 ABSTRACTappropriatestoragestructureanddatabaseimplementation.(3)Thedesignof3DmodelvisualizationThreedimensionalmodelscalledtheexistingVRML,implementingdatareading,separation,andultimatelystoringthedatainthedatabase.Whenneedtoredrawthreedimensionalvirtualscenes,systemjustreadrelateddataformdatabase.(4)MutualInteratcionSystemAchievementofthebasicuserinteractionbetweentheuserandGISsystemsuchasselect,query,andanalysis,theinteractionbetween2DGISand3DGIS,andmadesomediscussionofmechanismofmutualinteraction.KeyWords:CityPlan,TwoDimensionInformation,ThreeDimensionInformation,MutualResponseIII万方数据 目录目录第一章绪论..................................................................................................................11.1课题背景及意义................................................................................................11.2研究现状............................................................................................................21.2.1国外研究现状........................................................................................21.2.2国内研究现状........................................................................................21.2.3存在的问题............................................................................................31.3论文的主要工作................................................................................................41.4本文章节安排....................................................................................................5第二章相关技术介绍....................................................................................................72.12DGIS相关概念...............................................................................................72.2MAPX组件.........................................................................................................82.33DGIS相关概念................................................................................................92.4图形编程接口OPENGL...................................................................................112.5本章小结..........................................................................................................12第三章需求分析..........................................................................................................133.1系统开发环境..................................................................................................133.2系统需求分析..................................................................................................143.3功能分析..........................................................................................................143.4性能目标..........................................................................................................153.5本章小结..........................................................................................................15第四章系统总体结构..................................................................................................164.1系统设计架构..................................................................................................164.2系统主要功能..................................................................................................174.2.12DGIS功能...........................................................................................174.2.23DGIS功能...........................................................................................184.3GIS开发...........................................................................................................19IV万方数据 目录4.3.12DGIS开发...........................................................................................194.3.23DGIS开发...........................................................................................224.4场景可视化......................................................................................................334.4.1建模方法..............................................................................................344.4.2数据处理..............................................................................................344.4.3模型显示..............................................................................................384.5本章小结..........................................................................................................38第五章系统详细设计与实现......................................................................................405.1用户和2DGIS的交互....................................................................................405.1.1地图的显示..........................................................................................405.1.2地图的编辑..........................................................................................405.1.3信息的查询..........................................................................................415.1.4数据的分析..........................................................................................425.2用户和3DGIS的交互....................................................................................435.2.1场景漫游..............................................................................................435.2.2场景中点的定位..................................................................................445.3数据索引及信息查询......................................................................................465.3.1数据索引方法......................................................................................465.3.2数据索引建立......................................................................................475.3.3空间信息的查询..................................................................................485.42DGIS与3DGIS的交互.................................................................................525.4.1基本原理..............................................................................................525.4.2表现形式..............................................................................................525.5系统实现..........................................................................................................535.5.1空间信息查询......................................................................................535.5.2互响应的实现......................................................................................575.5.3系统特色..............................................................................................605.5本章小结..........................................................................................................60第六章系统测试..........................................................................................................616.1系统测试..........................................................................................................61V万方数据 目录6.1.1测试方法..............................................................................................616.1.2测试结果..............................................................................................616.2本章小结..........................................................................................................62第七章总结与展望......................................................................................................63致谢................................................................................................................................64参考文献........................................................................................................................65VI万方数据 第一章绪论第一章绪论1.1课题背景及意义目前城市地理信息,如与建筑物相关的数据大部分是以二维的形式存储。地理信息系统的软件也是在二维数据上进行操作,诸如查询,修改和更新等。二维数据表示地理信息限制了2DGIS的发展,对一些需要三维表示的数据,2DGIS不能很好地满足要求。现在对三维数据存储呈现出越来越高的需求,像油田社区的规划就需要分析大量的三维数据信息。所以我们需要开发针对三维数据的3DGIS。除此之外,因为2DGIS试图将现实世界中的事物用二维平面来表示,这就导致了第三维的位置,拓扑和语义信息的缺失,所以2DGIS不能完全表现自然界本原的现[1]象。这种试图将现实世界用二维平面来表示也会造成查询者不能直观的的得到想要的结果。用3DGIS表示现实世界除了可以帮助查询者清晰,直观的获得所关心的信息,还可以动态的,交互的分析二维平面和垂直方向位置信息之间的关系。这种优势使得3DGIS应用在很多现实生活中的方面得到发展,像城市设计与规划,地形测[4]绘和城市交通等。尽管3DGIS的应用有很大的优势,但是其用户使用起来容易产生迷失感。由于视野的局限性,用户在浏览查询得到的三维信息时,就容易产生[2]错觉,造成不能从整体上分析结果。为了解决上述问题,比较流行的做法是实现2DGIS与3DGIS的一体化,即实现2DGIS与3DGIS的结合,查询三维信息需要在3DGIS中实现,而查询二维信息和分析则需要在2DGIS中实现。这样既可以实现2DGIS的放大性,唯一性,定位性和整体性的优势,又可以实现3DGIS逼近现实的视觉效果,以及交互性,动态性,直观性等的特点。2DGIS和3DGIS的结合,可以发挥两者的优势,克服彼此的缺点,更好的满足地理信息系统的需求。在实际应用中,两种方法进行交替操作,共同实现目标,而不是单一的操作,当需要三维数据处理时,需要3DGIS的参与;当需要进行二维显示和分析时,需要在2DGIS中进行。设计开发基于GIS的油田社区信息系统,结合社区2DGIS和3DGIS的优势,有效的克服彼此的缺点,可以方便而快捷的提供给决策者关于区域建设,方案甄选等方面的空间数据信息。在本文中,首先简单描述了GIS开发的理论方法,涉1万方数据 电子科技大学硕士学位论文及的技术原理,然后设计实现了系统主要的功能,包括2DGIS的基本功能,3DGIS的三维空间信息查询、漫游、分析功能,以及2DGIS和3DGIS互响应功能。1.2研究现状90年代以来,由于相关理论和技术的发展完善,GIS在全球得到了较快的发展。GIS是一个注重应用的学科。在理论方面,2DGIS的理论研究已基本成熟,现在主要向应用方面发展,而3DGIS处于起步阶段,大部分学者聚焦于此,但是建立一个[8]3DGIS平台还存在困难。下面简述一下国内外的研究动态。1.2.1国外研究现状国外有很多的大学和研究机构都专注于DGIS的开发和应用,目前世界上常用[3]的GIS应用软件已经超过400种。国外比较有名的GIS软件有:Arc/info,MapInfo,Intergraph,Micorstation等,除此之外,还包括在Web环境下矢量地图的标准,如XML和GML等。3DGIS在景观模型和三维仿真等方面也得到了发展,如今可以构造非常逼真的建筑物三维模型;3DGIS系统的开发在获取影像,定位,和查询方面以及交互式三维模型的建立方面也得到了关注。在美国及一些发达国家,GIS已经应用到环境保护,城市管理规划,灾害预测等众多的领域,而我国GIS的应用还有不足。1.2.2国内研究现状在国内,人们也已经开始关注3DGIS的开发研究。国内很多的大学,研究单位和公司都在理论研究和应用开发3DGIS的各方面做出了大量的努力。这些研究和开发主要聚焦在如何获取三维数据,建立三维模型以及如何建立数据结构用来存储三维数据。有些高校和研究机构从底层开始,基于理论研究成果,开发了一些产品,同时也有部分的高校和研究机构基于国外成熟的三维技术进行开发,像南京大学地理信息实验室就是基于美国的VegaAPI实现三维虚拟场景的开发。国内在3DGIS理论研究和应用方面起步较晚,还没有形成理论体系,相应的应用也处于基础阶段。国外对2DGIS和3DGIS的结合的研究有了一定的进步,如美国非常著名的三维仿真软件Vega在2001年,设计出了一款三维产品:SitBuilder3D,实现了三维仿真产品和GIS相结合,以及2DGIS和3DGIS(三维虚拟场景)相结合的产品。由于起步较晚,国内还没有一款成型的平台供用户使用,但是一些高校和研2万方数据 第一章绪论究机构试图开发类似的系统,如武汉大学的朱庆教授基于JAVA开发了一款Web[16]浏览器插件CCGIS,对城市三维模型的建立做了详细的研究。同时,中科院也在城市和地球3DGIS方面进行了相关的理论研究。一些公司也推出了一些类似的系统,如适普软件有限公司设计了一款三维可视化GISIMAGIS,在模型可视化方面具有优势。国内一些研究学者和科研院所也在各自的研究和应用领域设计完成了各种各样的GIS原型系统。如,黄健熙、毋河海通过对2D电子地图和3D虚拟场景互响应原理的研究,开发了一款基于3D实时驱动函数Vega的2D和3D相结合的原型[12]系统。王磊,周云轩从GIS的实际应用出发,通过分析相关理论研究技术,总结出2DGIS和3DGIS交互查询数据的方法,并依据用此方法建立了一款原型系统,[13]应用在了实际领域当中。龚建华、林珲采用C/S架构,基于HTTP协议,采用[14]JAVA相关技术设计开发了一款基于Internet的虚拟校园环境的原型系统。吴道军、黄健熙通过对相关技术的研究,提出了一套针对WebGIS的3D信息查询解决[15]方案。总而言之,到目前为止,世界上还没有一款成熟的3DGIS系统。现在大多数的研究主要关注于3D可视化,并没有提供工具对空间信息进行查询和分析。虽然国外部分研究机构开发完成了2DGIS和3D虚拟场景相结合的系统,但是这种系统不具备空间信息查询的功能,也没有真正实现二维信息和三维信息的互响应机制。1.2.3存在的问题现在,2DGIS的理论研究已基本成熟,现在主要向应用方面发展,而3DGIS处于起步阶段,很多难题需要解决。建立一套3DGIS的应用平台还相当的困难。这是因为3DGIS要对现实世界的三维对象进行处理,分析,管理和决策。用三维数据表示地理信息,与二维相比,增加的不仅是数据量,还包括对象类型和空间之间的重要关系。所以,3DGIS不是对2DGIS的一般扩展,而是加入将垂直方向的三维信息,并且实现空间数据的三维可视化。对3DGIS涉及到的原理和技术的研究需要考虑很多方面。很多的研究学者以不同的关注点总结了3DGIS所需要解决的问题。[7](1)3DGIS对2DGIS的依赖性。尽管3DGIS在可视化和操作分析功能上有其独立性,但是对数据的管理,查询操作和分析都是通过2DGIS完成的。所以3DGIS与2DGIS是兼容一起的,不能将其分割独立开来进行研究。所以3DGIS与2DGIS是共存关系,并不能取代现有的2DGIS。3万方数据 电子科技大学硕士学位论文(2)开发的3DGIS系统应该具有将二维数据转换为三维数据的能力。由于目前应用广泛的2DGIS系统,操作的数据都是以二维的形式进行存储地理信息数据的,所以3DGIS系统应该能够通过较小的编辑,将这些二维数据转换为三维数据。(3)开发GIS系统平台,应该着重于开发二维平台为主,开发三维平台为辅的目标,其中原因如下:在需求上,2DGIS应经能够满足大部分的需求,而3DGIS只是满足补充垂直方向第三维的信息,是对2DGIS的扩展,所以对3DGIS的需求与2DGIS的需求相比只是占很少的一部分。在技术上,建设3DGIS系统的费用较高,如果从数据存储到三维数据的空间分析和可视化都采用3DGIS,花费会比较高,所以在2DGIS能够满足大部分需要的情况下,没有必要完全建设3DGIS而达到高性能的目的,而是实现2DGIS和3DGIS的结合。(4)虽然三维空间分析是3DGIS的特点,但是在数据结构上3DGIS要以边界表示为主,不一定要进行三维空间信息的分析,对3DGIS应该以三维可视化和三维数据管理为主。而在3DGIS系统中要以矢量表示数据,对3DGIS的应用研究应该以城市环境的规划和建设为主,对于不同的领域需要建立不同的数据模型。(5)对于3DGIS的应用,需要开发专门的数据结构表示数据和空间信息分析的算法结构;对3DGIS的开发要以构件的方式建立可视化分析界面和数据分析功能。1.3论文的主要工作本文首先分析了地理信息系统的研究现状,然后对建立GIS系统涉及到的相关理论技术进行描述,并对用到的关键技术2DGIS和3DGIS互响应机制进行的详细阐述,2DGIS和3DGIS的信息查询方法进行了比较,着重3DGIS空间信息的查询。具体内容如下:(1)分析建立2DGIS系统。通过对MapInfo公司的MapX组件的分析,利用.NET环境下的C#语言利用MapX控件进行二次开发,建立2DGIS系统。实现基本功能,如支持多种数据文件,二维图形显示,信息查询和分析,2DGIS和3DGIS的互响应等(2)获取三维数据。对3DGIS中需要的数据类型,存储方式,以及获取方式进行分析。经过分析各种存储三维数据的数据结构的分析,总结出了一种箱式分割数据结构,利用该数据结构,构建空间数据的存储结构和数据库的实现,并最终实现三维数据的可视化表示。在建立油田社区信息系统时,通过VRML中间数4万方数据 第一章绪论据格式,对数据进行进行分析,处理,然后将空间数据和属性数据存储到数据库中。在图形显示或查询分析时,直接从数据库中读取相应的空间数据,重构三维虚拟场景。(3)建立R-Tree空间索引机制,可以快速方便的进行三维空间信息的查询和检索操作。(4)实现用户和系统的交互。GIS系统要求能够实现和用户的交互式操作,如用户查询选择和系统的展示功能,通过对2DGIS和3DGIS交互原理的研究,建立一个“基于GIS的油田社区信息系统”的原型系统—SLInfoSys本文基于三维图形库OpenGL,在.NET环境下,利用C#语言对MapX空间进行二次开发,并运用面向对象开发理论技术,设计了一个原型系统。该系统实现了2DGIS系统要求的一些基本功能,如地图二维查询和展示操作,定位特定的目标,并对数据属性信息进行可视化分析等。充分利用了2DGIS和3DGIS互响应机制。通过应用该系统,发现系统有一定的实用性,对3DGIS理论研究和相关技术开发方面作出一定的贡献。1.4本文章节安排论文共分六章,研究内容按下列章节组织:第一章为绪论。简要介绍了建立基于GIS的油田信息系统的背景和意义,就目前的研究现状进行了分析,并指出GIS当前面临的问题,确定了论文的研究目标、研究内容与方法。第二章详细介绍了开发基于GIS的油田信息系统所需要的相关技术,主要有三维图形库OpenGL、二次开发组件MapX和.NET环境下C#语言,并指出了社区GIS开发的基本理论与方法。第三章为需求分析,介绍了系统开发的环境要求,系统需求,功能分析和系统目标等。第四章是系统总体设计部分,对系统的总体设计进行了介绍,主要有三大部分,第一部分为简述系统设计图,第二部分为简述GIS开发的方法和步骤,第三部分讲述建立可视化虚拟场景的方法,通过对VRML数据的读取分析和存储到数据库中,然后读入数据到模型中重新绘制三维数据模型。第五章是系统的详细设计部分,介绍了系统的模块划分及各部分的详细功能,社区信息二维与三维的交互处理,社区2DGIS与3DGIS互响应机制,建立R-Tree空间索引机制,可以快速方便的进行三维空间信息的查询和检索操作。5万方数据 电子科技大学硕士学位论文第六章为系统的实现部分。主要简述了系统主要模块的实现,包括空间三维数据查询和2DGIS与3DGIS互响应机制的实现。第七章是本文的总结和展望,主要讲述了本文取得的成果以及对以后研究方向的一些期望。6万方数据 第二章相关技术介绍第二章相关技术介绍2DGIS与3DGIS互结合技术的研究成为世界各国在GIS技术方面主要的研究内容。GIS是分析和处理空间数据,响应用户查询要求的空间信息处理技术,可以方便而快捷的提供给决策者关于区域建设,方案甄选等方面的空间数据信息。随着图形和虚拟技术的发展,3DGIS成为弥补2DGIS在三维空间数据丢失的问题,成为人们研究的新的热点。无论是图形学技术还是虚拟现实技术的发展,都使3DGIS能够多维,交互,逼真的表现地理信息,有助于建立油田社区地理信息系统。2.12DGIS相关概念GIS按照内容可以分为两类:(1)实用型:这类GIS有具体的应用目标,根据特定的服务需要而开发的系统,一般为管理决策服务。实用型GIS又被称为应用性或面向服务的地理信息系统。(2)工具型GIS:这类GIS一般没有特定的应用目标,提供建立应用型GIS所需的工具软件包,是一种系统支持软件。这类GIS适应于各种硬件平台,可以高效的管理和分析空间数据,具有易于扩展的特性。与应用性GIS不同,这类GIS又被成为面向管理的GIS。随着GIS技术的发展,其应用范围不断扩大,开发GIS的工作显得非常重要。GIS开发方式有三类:(1)独立开发。这类方式开发的是属于工具型的GIS,具有独立的数据结构和存储结构,不需要调用GIS工具包,可以利用各种编程语言,如C#,JAVA等。(2)二次开发利用工具型GIS提供的工具包和二次开发语言,例如MapBasic,Avennue等,在原有GIS系统基础上进行二次开发,根据不同的需求开发出适用于特定服务的应用型GIS。(3)集成二次开发这类开发集成专业GIS工具软件和可视化的开发工具,如C#,VB,PB等。7万方数据 电子科技大学硕士学位论文开发应用型GIS两种方式:OLD/DDE开发:利用OLE(ObjectLinkingandEmbeding)或者DDE(DynamicDataExchange)技术,通过将传统的GIS集成到高级语言中,然后利用集成后的语言设计开发GIS系统。组件开发:借助工具型GIS提供的基于OCX技术的GIS功能组件,如MapObject和MapX等,可以将这些功能嵌入到可视化编程工具当中,实现GIS的各种高级功能。下面对上述的开发方式进行分析和比较:由于独立开发和二次开发不能满足人们对复杂性和灵活性的需求,与此相反,集成二次开发在很大程度上符合人们的预期。集成二次开发主要利用GIS工具包和可视化编程语言:可视化编程语言使开发设计工作简单高效,通过GIS工具包也可以方便的管理和分析空间数据信息,使得集成二次开发成为当前GIS开发的首选方式。另外,这种开发方式还能够开发出具有易移植,易维护和高可靠性的应用程序,可以更好的管理和分析数据库中的空间数据。利用OCX技术和GIS功能组件开发GIS系统,可以更好的体现这些优势。因此,很多的GIS开发公司都利用集成二次开发方式设计、开发并推出了相应的ActiveX控件。充分利用现有的控件,首先可以缩短开发时间,同时可以使开发的程序具有易移植,易维护和高可靠性的特点。而对于程序开发者,使用现有控件可以减少开发者的工作量,用现有控件代替繁琐的具体编程,实现特定应用。利用GIS工具软件提供的组件进行组件式开发,可以缩短开发时间,利用最少的资源实现系统的功能。因此,在开发GIS的油田社区信息系统的原型系统过程中,利用MapX进行组件开发,实现系统的基本功能。MapX组件的介绍如下:2.2MapX组件MapX组件是MapInfo公司设计开发的ActiveX控件。该控件是在Window操作系统下运行的,具有地图分析功能,这有利于开发人员利用任何一种系统支持的语言,如C#,VB等,进行GIS开发,还可以将地图的分析功能嵌入到程序中。MapX组件不仅提供了地图功能的嵌入方式,还提供了对地图进行处理和分析的方式,对地图进行有效管理的方式,方便GIS应用的开发,缩短开发时间,同时可以使开发的GIS程序具有易移植,易维护和高可靠性的特点。正是由于MapX组件提供了各种的GIS开发工具和实现方法,我们在开发GIS的油田社区信息系统的原型系统过程中,利用MapX进行组件开发,实现系统的基本功能。8万方数据 第二章相关技术介绍开发GIS首先需要设计一个正确的数据结构,来表示数据之间的联系。对于空间信息的存储,需要设计一个空间数据结构,将地图信息存储的数据库中。在MapX组件中定义的空间数据结构如图2-1。图2-1MapX数据结构MapX组件的数据结构可以从两个方面进行分析:如图2-1所示,空间数据结构有多层组成。因此,从横向上看,空间数据结构是空间实体和索引的一种结合。在此类数据结构中,空间实体是各种图形的抽象模型,包括点、线和面。在直角坐标系中,点、线和面三种空间实体可以通过坐标x,y来表示。索引是对空间数据建立索引值,方便查询。从另一个角度看,空间数据结构是一种多层次结构,即由多层结构组成。用户可以根据实际需求,利用分层技术将空间实体进行分层,分层后得到的地图也是多层的。这种分层结构可以提高空间实体的检索速度,并可以有效地对空间数据进行管理和调用。2.33DGIS相关概念(1)3DGIS特性与2DGIS定义二维目标不同,3DGIS中定义的空间目标是利用X、Y、Z三个坐标轴,X表示横向,Y表示纵向,Z表示垂直方向。对通过X、Y表示的平面目标增加第三维上的信息,将平面目标扩展为空间目标,增加三维数据表示体目标。与2DGIS相比,用三维要素表示的3DGIS空间目标的复杂程度更高,含有的信息量更多。2DGIS对于平面目标是基于面的划分,而3DGIS对于空间目标是基于体的划分,9万方数据 电子科技大学硕士学位论文所以,3DGIS可以通过对体目标的划分来表示三维矢量结构之间的拓扑关系。另外,由于3DGIS比2DGIS更加复杂,因此出现了专门研究3DGIS的三维可视化理论,三[37]维数据模型的算法和三维地理信息系统的实现。因此,3DGIS能够处理和分析较为复杂的空间实体,这是其他计算可视化的软件所没有的功能。3DGIS更贴近现实,能够体现逼真的效果,给用户以真实的感觉,它利用三维数据表示地理空间信息,因此,在3DGIS的设计开发过程中,三维空间数据结构是核心,而三维空间分析是需要具备的基本功能。与2DGIS相比,3DGIS的实现要更加的复杂。(2)3DGIS的功能①具有2DGIS的传统功能:对空间数据进行分析操作,诸如查询,修改和更新等。②可视化功能:在3DGIS的实现过程中,大部分的功能涉及到三维目标,这些三维目标的显示属于三维可视化的范畴。三维可视化也是3DGIS的一个基本功能。因此,在大部分的功能实现过程中,都会需要三维可视化的功能。实现三维可视化是开发3DGIS首先要实现的功能之一。③空间数据库管理功能:三维空间数据库是3DGIS的核心,空间对象的存储和管理是3DGIS不同于2DGIS和CAD及各种计算可视化的软件。三维空间数据库的建立既可以通过扩展关系数据库获得,也可以通过延伸面向对象的空间数据库获得。④空间分析功能:区别于CAD及可视化软件,2DGIS具有二维数据分析功能,同样,3DGIS具有更复杂的三维数据分析功能。对空间目标进行对空间三维目标进行分析和处理,按照用户的查询要求显示符合的空间信息,并对空间数据进行管理。(3)3DGIS的开发方法2DGIS的相关理论研究和技术已经完善,但是与其相比,3DGIS还处于起始阶段。随着图形学理论、数据库理论技术及其他相关计算机技术的进一步发展,3DGIS理论研究和应用实现将会得到快速发展。发展的思路和开发的方向可以概括[32]为三种:①第一种方法可以参照2DGIS的发展过程,2DGIS来源于可视化的计算机制图管理。在3DGIS中,大部分功能都会需要三维可视化,在开发时可以利用成熟的三维可视化领域的技术。②建立空间数据结构,存储三维空间实体数据和相应的属性信息,并且适合于建立空间索引,对空间数据进行查询,是建立3DGIS的首要任务之一。空间数10万方数据 第二章相关技术介绍据库的建立既可以通过扩展关系数据库获得,也可以通过延伸面向对象的空间数[30.31]据库获得。③另外一种3DGIS开发思路是从三维数据结构、存储类型的角度出发,由于3DGIS空间数据库中存储着大量的空间数据和属性数据,设法建立高效的查询分析方法。根据上述开发思路,本文设计了一个3DGIS原型系统。数据模型采用将三维空间信息存储到RDBMS中的方法,三维可视化技术利用OpenGL(OpenGraphicsLibrary)和虚拟场景可视化技术来实现。除了建立空间数据库,存储空间信息和实现三维可视化,显示地图信息外,对图形进行调节的三维显示技术也是开发3DGIS的所需要解决的任务之一。三维显示技术是指可以实现地图的大小变化,颜色明暗程度,隐藏或显示进行控制的技术。在油田社区信息系统的原型系统的开发过程中,利用三维图形编程接口OpenGL。OpenGL的详细信息介绍如下,2.4图形编程接口OpenGLOpenGL是一个性能卓越的三维图形接口标准,是以SGI的GL三维图形库为基础建立的共享开放式三维图形显示标准。在图形显示技术快速发展的今天,世界上很多的大公司都采用OpenGL这个标准作为三维图形标准,如Microsoft、IBM、Sun、HP等。很多的产品也是以OpenGL为基础开发的,比较著名的有3DMAX,GIS软件等。由于是共享开放式的图形显示标准,OpenGL在计算机图形化处理中的应用越来越广泛,使用户可以方便的在计算机上使用各种图形软件。OpenGL实际上是一个高性能的图形开发软件包,包括了100多个图形操作函数。由于OpenGL独立于操作系统和窗口系统,所以用它开发的应用程序可以在各种操作平台间移植。使用OpenGL开发应用程序,缩短开发时间,节省资源。OpenGL具有七大功能:(1)建模功能:利用OpenGL可以绘制大量的图形模型。从最基本的点、线、面,到复杂的三维空间物体,OpenGL都提供了对应的绘制函数,可以方便高效的绘制所需模型。(2)变换功能:利用OpenGL可以对图形进行各种变换,包括基本的变换,如平移、旋转等和投影变换,如正投影和透视投影等。通过图形变换可以获得需要的视角。(3)颜色自定义功能:OpenGL提供了两种不同的颜色模式:RGB模式和颜色11万方数据 电子科技大学硕士学位论文索引。(4)光照设置功能:在OpenGL中光照可以分为四类:辐射光、镜面光、环境光和漫反射光。通常实体的材质是通过不同光照的反射率表示,而实体的颜色则是通过计算光和材质的红绿蓝分量相乘得到。通过光照的设置,可以控制物体的颜色。(5)纹理映射功能:利用此功能,OpenGL可以十分逼真的对空间对象进行细节描述(6)图像增强功能:除了基本的图像功能外,OpenGL还提供了图像特殊效果处理功能,如融合、反走样和雾功能,利用这些功能,可以使仿真物体更加逼真,增加图形的现实感。(7)双缓存功能:OpenGL提供了前后台双缓存功能,通过后台进行各种计算,生成前台所要展示的画面,这样可以提高图形显示效率。除此之外,OpenGL还提供了特殊效果处理功能,如深度暗示、运动模糊等,从而实现了复杂的消隐算法。2.5本章小结本章主要对实现3DGIS原型系统采用的相关技术进行了简单的介绍。3DGIS原型系统是在现有2DGIS系统平台基础之上开发的,所以首先讲述了2DGIS的分类及开发方式,并概括了2DGIS存在的一些缺点。然后对组件开发中常用的MapX和三维图形可视化工具OpenGL进行了简单的介绍。同时,阐述了3DGIS的特点,具备的功能以及比较可行的开发方式。12万方数据 第三章需求分析第三章需求分析需求分析是软件开发过程不可或缺的阶段。对要开发的系统进行分析,不断认识和细化开发过程,为下一阶段的工作打好基础,并为解决“如何做”提供依据。需求分析主要分为系统需求分析和功能分析两个方面。在开发系统前,要从用户的角度出发对新系统进行详细调研,确定用户的需要,确定新开发系统的综合要求,也就是要确定新系统要达到的标准,即要实现哪些功能,实现到什么程度的问题。需求可以分为如下几个方面:(1)系统需求:确定新系统要完成什么样的功能,达到什么样的标准,这是最主要的部分。(2)功能需求:如何实现系统的功能,功能的实现要考虑的因素,包括存储容量、安全性以及运行效率等。(3)环境需求:新系统运行环境的需求。在硬件方面,新系统需要采用什么样的机型、硬件设备等;在软件方面,采用什么样的运行系统,如操作系统,数据库管理系统等。(4)未来需求:这类需求现在可能不存在,但随着时间的推移,在将来可能会存在的的需求。因此开发新系统时,应该考虑未来可能提出的要求,即在开发过程中,应该对系统将来可能的修改做准备,以便将来比较容易的进行完善或扩展。3.1系统开发环境由于系统需要存储大量的三维数据,查询、显示和建模仿真都需要频繁的访问数据库,对数据库处理能力要求较高,所以对计算机的基本配置应该满足以下条件:(1)硬件配置CPU:不低于1GHz;内存:不低于256M;磁盘剩余空间:不低于2G(2)软件配置操作系统:WindowsXP;13万方数据 电子科技大学硕士学位论文开发语言:.NET环境下C#语言;辅助软件:ImaGIS,OpenGL,VRML,MapInfoProfessional,VRML文件编辑器VmlPad和浏览器插件Cortona。3.2系统需求分析本系统主要实现的目标有三个方面:(1)设计三维数据存储结构:根据研究理论和相关技术,建立基于结构实体几何法和边界表示法的箱式分割数据模型,面向对象的数据组织方案,并以此为基础设计存储结构。(2)建立三维模型:建立模型的目的是分析,处理三维空间数据,并把数据存储到三维数据库中,建立数据与属性之间的关系,方便3DGIS的数据获取和逼真的表现空间对象。通过建立模型管理模块,对实体和体素信息进行管理,利用R-Tree索引机制,建立查询数据和索引信息的关系,方便快速高效的查询,加快系统的检索速度。通过建立三维模型,提出2DGIS与3DGIS互响应机制的原理和实现方法。(3)实现2DGIS和3DGIS的转换:这种转换包括二维空间实体和三维空间实体对应目标的转换及视点转换和交互漫游。3.3功能分析本文开发的基于GIS的油田社区信息原型系统需要实现以下基本功能,包括2DGIS和3DGIS的部分功能:(1)2DGIS部分功能支持多种数据文件;图形显示;查询分析;空间分析;2DGIS到3DGIS的互响应。(2)3DGIS部分功能数据读取与分析模块;三维模型建立模块;三维场景显示和浏览模块;三维场景管理模块;查询分析模块;三维场景互操作模块;3DGIS到2DGIS的互响应模块。14万方数据 第三章需求分析3.4性能目标本系统主要实现的目标:(1)在2DGIS方面,通过对2DGIS的开发过程做出详细的研究,建立一个简单的2DGIS系统。(2)在3DGIS方面,通过研究三维数据获取方式,三维数据存储结构,数据库的设计实现,面向对象的数据组织方案,虚拟场景的交互操作原理。建立用R-Tree索引机制,建立查询数据和索引信息的关系,方便快速高效的查询,加快系统的检索速度。最后建立一个3DGIS原型系统。3.5本章小结本章简要介绍了基于GIS的油田社区信息系统整体的需求分析,包括系统要满足的要求;系统要实现的功能,包括2DGIS和3DGIS的部分功能;系统的目标要满足实用性和可操作性;本章是前期准备工作部分,从下一章开始是原型系统的开发设计章节。15万方数据 电子科技大学硕士学位论文第四章系统总体结构4.1系统设计架构从整体结构上看,油田社区信息系统主要包括三部分的内容:2DGIS、3DGIS和数据库部分。2DGIS部分是原型系统的基础,包括地图操作,二维查询分析,可视化编程VC、MapX和二维地图数据tab/gst/mif/dxf;3DGIS部分是系统的核心,负责将平面图形转化为三维模型,方便用户浏览、查询和分析,包括三维地形建模,三维建筑物建模,三维查询分析和几何纹理等;数据库部分是实现2DGIS和3DGIS互响应的前提,存储内容包括建筑物空间数据,建筑物属性数据和纹理数据。系统的总体设计结构如图4-1所示:胜利油田社区信息系统SLInfoSys互响应2DGIS部分3DGIS部分地图操作数据库三维地形建模二维查询分析建筑物空间数据三维建筑物建模三维查询分析建筑物属性数据可视化编程纹理数据几何纹理VC、MapX二维地图数据可视化编程tab、gst、mif、dxfVC、OpenGL图4-1SLInfoSys系统设计架构16万方数据 第四章系统总体设计4.2系统主要功能系统的主要功能分为两部分:(1)2DGIS部分功能支持多种数据文件;图形显示;查询分析;空间分析;2DGIS到3DGIS的互响应。(2)3DGIS部分功能数据读取与分析模块;三维模型建立模块;三维场景显示和浏览模块;三维场景管理模块;查询分析模块;三维场景互操作模块;3DGIS到2DGIS的互响应模块。系统功能结构如图4-2所示:胜利油田社区信息系统SLInfoSys2DGIS功能3DGIS功能据支图空二二三三三三三三数文持形间维维维维维维维维据件多显分查三查场场模模模输示析询维询景景型型型入种分互分互浏管显建数析响析操览理示立应作图4-2SLInfoSys功能结构4.2.12DGIS功能(1)支持多种数据文件:系统可以读取多种类型数据文件,如AutoCAD的dxf文件,MapInfo的tab文件等,然后会以电子地图的形式显示给用户。(2)图形显示:可以实现平面图形的放大、缩小及漫游,还可以进行图形的属性设置等。(3)查询分析:鼠标点击选择实体对象时,会显示被选中实体的相关属性信息;同时输入实体的属性信息,可以查询满足条件的所有实体对象,通过不同的颜色显示。(4)空间分析:可以对空间对象进行分析,并显示分析的结果,及相关的属17万方数据 电子科技大学硕士学位论文性信息。(5)2DGIS与3DGIS的互响应:通过互响应机制,2DGIS的平面对象可以在3DGIS中显示,增加三维信息,进行查询分析时,可以实现查询结果显示三维的可视化虚拟场景。4.2.23DGIS功能(1)数据读取与分析模块:系统的3DGIS部分可以读取和分析VRML格式的文件,然后将与三维模型建立有关的数据存储到数据库中,供模型建立模块使用。(2)模型建立模块:利用基于结构实体几何法和边界表示法的箱式分割数据模型,面向对象的数据组织方案,构建数据库,存储空间数据,最后通过OpenGL和虚拟场景实现三维模型。(3)场景显示和浏览模块:在显示模块中,通过将模型建立模块建立的三维模型显示在电脑屏幕上,并从数据库中检索模型的相关纹理、属性数据,利用图形编程接口OpenGL,实现三维场景的可视化。在浏览模块中,视图中的三维场景可以实现按比例的放大、缩小和旋转,可以保存当前的三维场景;还可以实现场景的查找功能,在对话框中输入三维坐标,查找相应的场景,在视图窗口中显示。(4)场景管理模块:对实体和体素信息进行管理,利用R-Tree空间索引机制,建立查询数据和索引信息的关系,方便快速高效的查询,加快系统的检索速度。可以建立场景,把相关的体素组成一个实体,或者把相关的实体组成一个群;也可以删除场景。(5)查询分析模块:鼠标点击选择三维场景中的实体对象时,会显示被选中实体的相关属性信息;同时输入实体的属性信息,可以查询满足条件的所有三维实体对象,通过不同的颜色显示。还可以查询空间实体的数据和位置信息,以及量测信息。(6)场景互操作模块:在场景中,鼠标点击空间实体对象时,可以获得实体的相关坐标信息,通过判断坐标落在哪个实体的的边界内,可以得到实体的ID,为后续的查询提供基础。(7)互响应模块:2DGIS和3DGIS的互响应机制可以使两者的优势得到发挥,2DGIS的平面对象可以在3DGIS中显示,可以实现查询结果以三维可视化虚拟场景的方式显示。在3DGIS中查询实体对象时,也可以在2DGIS中同时显示目标。18万方数据 第四章系统总体设计4.3GIS开发4.3.12DGIS开发地理信息系统包含的数据类型可以分为两类:空间数据和属性数据。系统中存储的信息是关于地理空间分布的数据的结合,系统的组成主要有四部分:信息获取与输入,信息的存储与管理,信息的转换与分析,结果的生成和输出。每个空间实体都有一个对应的地理编码,即空间数据,可以表示实体的对象的空间位置,例如一个城市的地理信息,河流的走向等。与空间实体相对应的是属性信息,10]即属性数据,如城市的名称,人口数量等[。因此,构建地理信息系统的体系结构需要有两个数据库来支持,即存放空间数据的“空间数据库”和存放属性数据的“属性数据库”。4.3.1.1二维数据的采集GIS系统的建立过程中不可缺少的一部分是数据采集,有多种方法实现,如点[9]坐标输入、跟踪数字化、屏幕扫描数字化和已有矢量数据格式的转换等。数据采集分为空间数据采集和属性数据采集。其中,对于空间数据的采集是通过特殊的数字化技术将信息转化为GIS系统可以存储、管理和分析的格式;而对于属性数据则是将和空间数据对应的属性信息输入到系统中的过程。属性数据的采集相对来说比较简单,输入方法比较容易,所以接下来主要对空间数据的采集方法进行描述。(1)点坐标输入通过点坐标输入是最基本的成图方式,它是通过将空间信息的坐标转化生成GIS系统可以读取的空间数据。当前,得到点坐标数据的方法来自于数字测图,而数字测图采用的一般方法是全站仪,直接将记录点的坐标及所表示的地物绘制成图。点坐标输入具有操作简便、精确度搞得的特点,可以满足GIS建设过程中对数据的要求。(2)跟踪数字化跟踪数字化是通过将普通的地图放置到数字化仪的电磁感应板上,然后利用特殊软件,输入普通地图的比例尺,输出空间要素的坐标。通过定义用户的位置坐标,手工确定空间数据的点、线、面三个要素,虽然可以保证一定的精确度,但是产生很大的工作量。(3)屏幕扫描数字化19万方数据 电子科技大学硕士学位论文扫描已有的纸质地图,形成栅格图像,利用特殊软件将栅格图像打开,进行误差校正,在经过数字投影,调整坐标系,最后将图像中的元素矢量化成点、线、[6]面三类空间元素。因为在扫描过程中难免会出现误差,另外在误差校正过程中,难免会引入新的误差,所以这种方法与点坐标输入相比精确度低;与跟踪数字化相比,虽减少了工作量,但是精确度要低。在前两种方法出现之前,扫描数字化是比较流行的方法。(4)矢量数据格式的转换在3DGIS技术出现之前,已经存在一定数量的已有格式的数据,因此在新系统建设过程中,可以将现有的数据通过一定的格式转换,形成可以输入到新系统的数据格式,减少资源的浪费。在油田社区信息化系统的开发过程中,已有的地图为石油大学平面图。通过一定格式的数据转换,并辅以全站仪补测发生变化或者丢失部分的数据,然后以数字的形式输入到系统中。对数字化后的地图进行编辑,处理,以达到系统的要求。空间数据的获取过程如图4-3所示:资料收集整理空间数据属性数据野外测量数据已有图形数据已有矢量数据已有数据库中搜集到的的属性数据属性数据屏点手扶跟踪屏幕扫描格式转换数字化数字化格式转换键盘键入检查、修改、编辑检查、修改、编辑图形与属性连接2DGIS系统图4-32DGIS中的数据采集20万方数据 第四章系统总体设计在MapInfo中,工作空间内保存了用户最近使用的地图图层以及相关的属性信息,方便用户继续使用相同的地图图层。在MApX中,继续沿用工作空间的概念,表示地图图层和属性设置的集合。在系统的开发过程中,开发者可以在MapX中打开系统需要用到的Tab表,然后转换成可以在MapX中使用工作空间文件。4.3.1.2二维数据管理在GIS中,空间要素可以表示为矢量数据模型和栅格数据模型。矢量数据模型是通过点和坐标来构建点、线、面三个要素;而栅格数据模型则是通过网格来表示空间要素的变化。不同的数据模型表示方式,决定了系统中不同的数据存储、处理和分析方式。GIS系统应具备矢量数据和栅格数据转换的能力。在电脑上,空间数据表现出来的是一幅由多个图层集合而成的地图,每个图层空间数据对应着一种数据类型。构成地图的所有图层必须是属于同一个坐标系统,这是GIS系统的一个基本原则,如果存在图层属于不同的坐标系统,图层间的数据就无法在空间上进行匹配。4.3.1.32DGIS模型应用程序ADO多种外部属性数据C#ID唯一MapX控件对应内部索引空间数据库唯一对应内部属性数据图4-42DGIS系统的模型结构本文采用C#编程语言,Access数据库,和MapX开发了一个2DGIS系统模型,主要实现了空间数据的管理、查询和分析功能。数据对于GIS系统是极其重要的,所以对数据的管理、查询和分析是地理信息系统应该具备的最基本的功能。开发的系统可以对数据进行可视化交互操作,包括地理信息的查询和分析。利用MapX可以实现系统的通用功能,如地理信息编码等。MapX可以访问自定义格式的数据以及存储在外部数据库中的数据。同理,在实际的应用程序中,借助MapX21万方数据 电子科技大学硕士学位论文可以访问数据库中的数据,并通过其特有的索引机制与可视化图形数据进行连接,方便开发面向用户的应用。系统模型的结构图如图4-4。4.3.23DGIS开发由于2DGIS的相关理论研究和相关技术已经完善,但是与其相比,3DGIS还处于起始阶段,面临很多问题。这是因为3DGIS要对现实世界的三维对象进行处理,分析,管理和决策。用3DGIS表示现实世界除了可以帮助查询者清晰,直观的获得所关心的信息,还可以动态的,交互的分析二维平面和垂直方向位置信息之间的关系。GIS系统的建立过程中不可缺少的一部分是数据采集,地理信息的三维化仍属[28]于GIS领域,因此3DGIS同样需要进行数据采集。3DGIS的特点是具有逼近现实的视觉效果,可以直观的表现现实中的对象。但是,建立系统的基础首先是需要选择合适的数据模型和数据存储方式。地理信息可视化三维模型如图4-5:地球科学信息科学空间科学计算机遥感摄影测量学可视化二维地理信息地理信息技术科学计算可视化地理信息可视化二维地理信息系三维显示技术地理信息三维可视化系统图4-5地理信息三维可视化系统的应用模型4.3.2.1三维数据获取建立3DGIS模型,首先要解决的是确定数据模型和数据存储方式,然后是数据的获取方式。当前,3DGIS的应用主要集中在城市规划方面。城市规划方面的而应用模型主要需要的数据是空间数据和真实影像数据(属性数据)。前面提到了22万方数据 第四章系统总体设计2DGIS的获取平面数据的方法,对于3DGIS的数据可以从平面数据进行矢量转换,但是2DGIS只包含二维信息,并没有三维方向上的数据信息,因此获取这些信息[17,18]成为3DGIS开发的一个难点。(1)3D电子地图构建3D电子地图所需要的数据可以采用以下方式获取,将建筑物表示成3D模型,非建筑物用2D表示,只考虑建筑物的空间数据,而建筑物的高度则按照2DGIS的层数计算,根据建筑物的的类型赋予合适的层高值;同时建筑物的纹理则是通过颜色属性数据代替或者通过矢量方式添加纹理。这种数据获取方式不仅可以达到降低数据获取成本,用最少量的数据表示较逼真的现实世界,又能达到快速浏览地图的目的。构建电子地图所采用的数据获取方式,基本上是利用已有2DGIS提供的数据,获取成本较低。(2)3D城市模型由于构建的3D城市模型需要具有浏览、分析和动画功能,因此需要获取对象的DEM数据,高度数据以及真实纹理数据,但是模型的主要功能是提供可视化,对数据精度的要求不高。为了控制构建成本,该模型的数据获取方式可以采用下面[35,38]几种方式:①首先对对象侧面纹理进行摄影,然后通过计算机软件处理生成合理的纹理数据。这种方式可以尽可能多的获取对象的不同纹理数据,成本较低,而且通过计算机处理的数据,可以去除摄影过程中杂物的干扰,如树木、其他遮挡物等的干扰。②DEM数据可以利用激光扫描仪获取。③对象高度数据可以通过已有的2DGIS中对象层数的数据与摄影获取的层数数据相结合的方式获取。④除建筑物之外的其他对象,如树木等,可以通过假定参数和模型符号的方式获取。(3)更高要求的3D城市模型具有操作和分析功能是对3DGIS模型提出的更高要求。这类模型需要提供逼真、值得信赖的结果,对数据的精度要求也比较高,因此,数据的获取可以采取以下方式:①通过对对象的侧面纹理进行摄影,然后通过计算机进行处理获得合适的纹理数据。获取方式和普通3DGIS模型中纹理数据的获取方式类似。②对象的高度数据可以通过摄影测量方式获得层数数据,然后人工方式获23万方数据 电子科技大学硕士学位论文取。③DEM数据要求精度较高,所以需要利用精确的手段获取,像航空摄影。④对于对象的3D数据,可以通过卫星影像获取。⑤除建筑物之外的其他对象的空间数据,如树木等,可以通过一些简单的实际测量工作获取GIS系统的建立过程中不可缺少的一部分是数据采集。合理的获取空间数据,对于构建3DGIS具有极其重要的作用。4.3.2.2三维模型对象相对来说,城市3DGIS系统模型比较简单,通过简化3DGIS模型的对象,可以更加方便的实现系统。因此,可以将城市3DGIS模型中的对象分为以下几类[19,25]:(1)点对象:用来描述现实中独立点状地物,如,电线杆、树木、通讯塔等。(2)线对象:用来描述线状地物,在二维空间中的线状对象称为二维线对象,在三维空间中的线状地物称为三维线对象。如,城市电力线、通讯线等基础设施。(3)面对象:用来描述贴地地物或空间中的实体。在二维空间中,面对象主要用来描述贴地地物,如湖泊等,而在三维空间中,面对象主要描述空间中的实体,如建筑物的墙面等。(4)体对象:用来描述空间中有形状的地物,如建筑物、汽车等。复杂的网状地物也可以用体对象来描述。(5)标记对象:用来描述其他对象的文字信息,如建筑物的名称,道路的名称等。(6)纹理对象:用来描述三维空间中面状地物的纹理信息,如建筑物的表面纹理等。(7)地形对象:用来描述城市的地形,包括各种规则的,不规则的网状模型或者混合模型。(8)地形影像对象:用来描述城市中的地面概貌图像,这些影像对象也是属于三维空间中面状对象的纹理对象,但是具有特殊的属性和数据结构,一般将其作为单独的对象。在建立3DGIS过程中,上述各种对象并不是相互独立的,通过相互结合才可以建立完善的系统。4.3.2.3箱式分割数据模型24万方数据 第四章系统总体设计空间数据模型是对现实世界的一种抽象,归类及简化的描述。二维空间数据模型是用来描述二维空间中对象的数据结构,操作方法及属性等内容的集合。三维空间数据模型是用来描述三维空间中的数据结构,操作方法及属性内容的集合。因此,定义一个三维数据模型需要考虑以下问题:描述的对象,数据存储结构和逻辑关系,以及如何表示模型。[6]目前,在GIS应用中,有三类数据模型:第一类是基于面对象的:在三维空间中,这类数据模型可以表示表面,如地形表面,底层表面等。第二类是基于体对象的:对于空间中体对象,如四面体、构造实体等都可以用这种数据模型表示。第三类是第一类和第二类的结合。第一类数据模型主要用来描述三维空间中表面,以及由面表示的空间实体目标。这类数据模型的优点是可以方便的进行数据更新和显示,缺点是空间分析比较困难。而第二类数据模型主要用来描述空间中实体,如建筑物等,有点是可以方便的进行空间数据分析,但缺点是数据存储需要大量空间,操作运行速度相对较慢。现在,大部分的3DGIS数据模型都提供数据显示和操作的功能,但是这与3DGIS要求有很大的距离。3DGIS中,要求具备对数据进行分析的功能。要实现空间数据分析功能,选择合适的数据结构成为非常重要的前提。目前流行的两种数据结构:结构实体几何法和边界表示法。两种方法各有利弊。两种方法结合使用可以一定程度上避免各自的弊端。[20]实现了两者的结合,提出了“分层组合模型”,可以方便的查询对象的层次信息;[21]提出了基于边界表示法的分体组合模型,将查询扩展到建筑物实体的一部分。[22]提出了箱式分割数据模型,将查询扩展到建筑物的每一层。因此,为了能够利用2DGIS模型和数据结构,本文基于两种方法的结合,设计了基于上述结构实体法和边界表示法的箱式分割数据模型。我们可以把建筑物实体根据功能和形状将其划分为一些简单的实体,这些简单的实体成为体素。每个体素可以通过基本实体,如圆、球、长方体等来表示,亦可以通过边界表示法来表示,最后将这些体素结合,组成一个完整的建筑物实体。如图4-6,根据实体的形状将其分为三个体素。对建筑物实体进行划分后得到的体素,并不是与查询的信息一一对应。在图4-6中,可以进一步对体素进行分割,划分为网格。网格化时,可以根据建筑物的高度,层数和单元数划分。第三个体素含有三层、三个单元的简单实体,可以进一步划分为十八个长方体。通过建立R-Tree空间索引机制,可以快速方便的进行三25万方数据 电子科技大学硕士学位论文维空间信息的查询和检索操作.123图4-6箱式分割模型4.3.2.4面向对象数据模型面向对象数据模型的基本思想是,划分问题领域,通过接近人类的思维方式重新建立问题领域模型,从而达到客观的模拟实体的结构和行为。这种概念来源[26,27]于面向对象的程序设计语言。面向对象的数据模型允许用户自定义各种数据[34,36]类型,即便是复杂的语义,可以模拟真实世界的静态和动态特征。面向对象的数据模型可以提供一些与对象类型相关联的操作。所以,这种数据模型更加适合GIS中数据结构的组织。3DGIS系统采用箱式分割数据模型,按照面向对象的数据结构组织方式和油田社区可视化的需求,构建了三维信息查询系统,该系统设计使用的数据组织结构方式如下:(1)点类:构造点对象的抽象类,用来描述点或地物的三维坐标。在点抽象类主要属性有三维点坐标,点的法向量和点的颜色等。在建立三维模型之前,可以将地物等实体做出标准的模型,这样在使用的时候就可以直接调用,节省时间。点类的数据结构:classNNode3D:publicCObject3D{floatn_Coord[3];//点的三维坐标NVector3Dn_Vector;//点的向量NColorn_color;//点的纹理}(3)线类:构造线对象的抽象类。线对象是有起点和终点构成,所以在类中要表现出起点和终点,由于3维坐标是有三个方向的数据组成,所以还要表现出三维方向的数据。当表现二维线对象时,三维方向上的数据为0。所以线类的构造如下:26万方数据 第四章系统总体设计classNEdge3D:publicCObject3D{NNode3D*n_start;//线对象的起点NNode3D*n_end;//线对象的终点NFace3D*n_face1;//线对象构成的面NFace3D*n_face2;}(3)面类:构造面对象的抽象类。主要用来描述三维空间中的实体对象。由于可以根据OpenGL可以直接绘制多边形,所以在程序的设计中,我们采用的构造数据结构如下:classNFace3D:publicCObject3D{NNode3D*n_V[];//面的各点坐标NFace3D*n_face[];//面的邻接面NVectorn_Vector;//面的向量NColorn_Color;//面的纹理}使用上述数据模型结构存储数据坐标时,需要遵从一定的顺序进行数据采集,[28,29]这是因为通过OpenGL提供的绘图方式绘制的面分正反面。另外根据油田社区的特点,可以将面类分为两种:①三角形面类:这类面对象抽象类主要用来描述不规则的多边形构成的实体,如建筑物的屋顶,不规则的地形地貌等。从理论上见,通过三角形可以表示任何形状的表面。由于三角形面类的构造能力较强,可以描述各种平面形体的面对象,所以,这些不规则实体基本上都可以通过三角形面类来描述。另外,三角形面类结构整齐,可以比较容易的实现拓扑关系,例如,构造节点的指针指向其相邻节点。②四边形面类:这类面对象抽象类主要用来描述矩形实体,如平面墙体。矩形实体主要是由对象的外围边界组成。该抽象类中包含的内容主要是边界坐标的信息。(4)面集合类:在3D数据模型中,大部分的实体对象具有规则有序的纹理结构,可以将这些相同纹理结构的面集合成一个特殊的类。建筑物的每一个面都有与之相对应的纹理结构。所以为了提高数据库空间的利用率,可以将具有相同的纹理的面对象,重新组织成一个新的对象,并且将新对象和对应的纹理结构信息存储到数据库中。当可视化三维对象时,可以直接调用数据库中的纹理结构信27万方数据 电子科技大学硕士学位论文息。面集合类的数据结构如下:classFaceCom3D:publicCObject3D{Array3Dn_Face;//面Intn_Texture;//纹理IDFloat*n_TextureCoord;//纹理坐标NMaterialn_Material;//材料Intn_Vector;//向量Intn_Color;//颜色}112233(a)(b)图4-7建筑物体素的划分方式(5)体素对象类:建筑物实体根据功能和形状将其划分为一些简单的实体,这些简单的实体成为体素。每个体素可以通过基本实体,如圆、球、长方体等来表示,亦可以通过边界表示法来表示。每一个体素对象类包含一层或者几层形状功能相似的分层。图4-7中,建筑物根据功能和形状可以有两种不同的划分方式。体对象类的数据结构定义如下:classNObject:publicCObject3D{Array3Dn_Object;//面对象数组Stringpurpose;//功能Someotherproperties;}(6)体对象类:该类主要用来描述空间中的一个实体,如一栋建筑物或者模型等。在三维数据模型中,体对象可以分为两种,分别是简单体对象和复杂体对象。在简单体对象中,体对象作为最基本的体素,如柱体,长方体、球体等。而在复杂体对象中,体对象可以有很多的体素对象组成,如建筑物对象可以有地基子对象、墙面和屋顶子对象组合而成。类中还可以包含属性信息,这些属性信息28万方数据 第四章系统总体设计存储在数据库中。在可视化过程中,需要体对象的空间数据和属性信息时可以直接调用,然后以点坐标的形式绘制出体对象。3维城市模型GeoObject地面模型GeoDEM建筑物模型几何纹理GeoTextureGeometry规则格网不规则三角二维模型三维模型影像GeoGrid网Geometry2DGeometry3DGeoImagGeoTrianglee体对象纹理对象NObjectNTexture复杂体对简单体对象象CObjectCSubobject长方体圆柱圆锥面对象线对象点对象NFace3dNEdge3dNNode3d三角形面四边形面图4-8对象与类关系图10911(1)1213431214(2)①5687图4-9数据存储方案(7)纹理对象类:该抽象类主要用来描述空间对象的纹理结构信息。纹理数据信息存储在数据库中,通过纹理ID与对应的面对象对应。需要纹理信息时,直29万方数据 电子科技大学硕士学位论文接调用数据库中信息即可,提高效率。在三维城市模型中,体对象,模型和数据类之间的联系如图4-8。4.3.2.5空间数据库的设计在三维数据模型中,各类实体对象(如建筑物)的空间数据和属性数据的存储量依赖于实体对象的形状。形状复杂的空间对象,就需要相对较高的数据存储量。合理设计数据结构和存储方式,对于实现3DGIS的各项功能具有非常重要的意义。本文基于面向对象的数据结构,设计开发了如图4-9所示的数据存储过程。图中对象有两个体素构成,每个体对象有基本的点、线、面组合而成。数据库各表之间的E-R关系图如图4-10,对应的E-R图如4-11:体素信息点信息面信息实体信息纹理信息住户信息实体属性信息图4-10数据库E-R关系图根据图4-9中的对象,设计的数据表如表4-1到4-7。表4-1点信息点所在体点在体素中点IDX坐标Y坐标Z坐标说明素的ID的索引号PointIDXCoordinateYCoordinateZCoordinateMemoSubObjectIDPointIndex110„„„„211„„„„„1„„„„„817„„„„920„„„„„2„„„„1425„„„„30万方数据 第四章系统总体设计点信息表:表中存储组成空间实体的所有点的相关信息,包括点ID,点所在的体素ID,点在体素中的索引号,点的X、Y、Z坐标等。这些字段可以唯一标识场景中的点及其位置,对应的体素信息和在体素中所有点的排序信息,可以帮助处理VRML数据需求,如表4-1所示。图4-11数据库表关系图表4-2面信息面ID面所在体素的ID组成面的点的索引面对应的纹理ID说明FaceIDSubObjectIDPointIndexTextureIDMemo120,4,7,3,-10,2„210,1,4,3,-11,3„面信息表:表中存储空间实体的面信息,包括面ID,面所在的体素ID,组成面的点的索引,面对应的纹理ID等。其中,面ID用来在场景中唯一确定面信息,面所在体素的ID表明该面存在于一个体素中,组成面的点的索引表示构成该面的点信息,面对应的纹理ID表明构成该面的纹理信息在纹理表中的标识号。在体素中,点的索引号是从0开始,-1表示结束,通过索引号,可以方便的找到相关点的信息,如表4-2所示。31万方数据 电子科技大学硕士学位论文表4-3纹理信息纹理ID纹理宽度象素纹理长度象素纹理数据说明TextureIDTexWidthTexHeightTexDataMemo021,33„纹理信息表:表中存储空间实体的纹理信息,包括纹理ID,纹理宽度像素,纹理长度像素,纹理数据等。纹理宽度和长度像素表示纹理信息的像素组成信息,纹理数据表示像素的RGB值,如表4-3所示。表4-4体素信息体素所属组成实体的体素ID分层数单元数的实体ID体素的索引MinXCMinYCMinZCMaxXCMaxYCMaxZCSubObjectIDLayerNumApartNumObjectIDSubOIndex„„„„„„„„„„„体素信息表:表中存储空间实体的体素信息,包括体素ID,体素所属的实体ID,组成实体的体素的索引,分层数和单元数等。其中体素ID用来标识体素,体素所属实体ID用来表示该体素组陈给的实体ID,组成实体的体素索引用来表示体素在空间实体中的索引号,如表4-4所示。组成实体的体素的索引号字段由三部分组成A-B-C:A:表示从上到下组成实体的第A个体素;B:表示从东向西组成实体的第B个体素;C:表示从南向北组成实体的第C个体素;表4-5实体信息实体ID实体的名称MinXCMinYCMinZCMaxXCMaxYCMaxZCObjectIDObjectName在体素信息表中还存在分层数、单元数和坐标信息等字段,分层数和单元数分别表示该体素分为几层和几个单元,坐标字段表示体素边界的最小坐标和最大坐标信息。通过体素信息表可以方便的计算每层或单元的边界,供使用者查询和检索。实体信息表:表中存储实体对象的信息,字段主要包括实体ID,实体的名称和一些坐标点的相关信息。通过实体ID,可以唯一标识实体对象,实体的名称标识对象,可以重复,坐标点的信息可以帮助绘制长方形边界信息,方便对实体对象的检索,如表4-5所示。32万方数据 第四章系统总体设计表4-6实体属性信息投影面积„„用途实体的名Area实体IDObjectID称USAObjectNameGE实体属性信息:该表存储实体对象的属性数据,字段主要包括实体ID,实体的名称,用途和投影面积等。实体的ID和实体的名称和实体信息表中的字段相互对应,可以标识一个实体对象,属于外键,实现空间数据与属性数据进行交互。其它字段表示实体的相关属性信息,如表4-6所示。住户信息表:该表存储住户的相关信息,字段主要包括住户的ID,可以唯一标识用户;户主姓名表示户主的属性信息,如表4-7所示。表4-7住户信息边界长方体信息住户ID户主姓名ObjectIDSubObjectID(MinX,MinY,MinZ)ResidentIDResidentName(MaxX,MaxY,MaxZ)系统通过搜寻组成实体对象的体素中所有的坐标点中的极限值,包括最大值和最小值,来确定边界长方体坐标,然后通过比较所有边界长方体的坐标值中的的最值来确定实体对象的边界信息。当需要重建实体对象时,需要通过查找体素信息表,获得组成该对象的所有体素信息,然后通过体素信息,查找面信息表,获得组成实体的所有面的点的索引信息和面的纹理数据,最后通过点的索引查找点信息表,获得对应点的空间坐标。有了点的空间坐标,再利用三维图形绘制应用OpenGL可以重新绘制实体对象。4.4场景可视化构建社区3DGIS阻碍之一就是实现三维可视化。在建立3DGIS的过程中,大部分的功能涉及到三维目标,这些三维目标的显示属于三维可视化的范畴。因此,在3DGIS大部分功能的实现过程中,都会需要三维可视化的功能。对三维对象进行可视化是3DGIS的一个基本功能,在3DGIS建设的每个过程都会需要这个基本功能。33万方数据 电子科技大学硕士学位论文4.4.1建模方法三维可视化是3DGIS的一个基本功能。可以从现有的图形学的发展成果和数据存储结构方面来考虑。(1)获取DEM获取DEM的方法有很多种。数据获取技术发展的初期,主要通过航空影像和DEM叠加生成城市景观模型,需要重复性的获得DEM和影像,操作繁琐。随着技术的发展,可以通过批量获得DEM和航空影像,构建大范围的城市景观模型,但是这样获得的景观缺乏真实感,造成纹理的失真,不能很好的表现三维场景。还有一种方法是通过激光扫描仪来获得DEM,但是这种方法获得的数据需要后续复杂的处理操作,不能够很好的从数据中提取实体对象,导致建模工作困难,进而阻碍空间实体的查询和分析,可以用于对精度要求不高的城市景观规划中(2)几何体建模2DGIS的成熟技术是的2DGIS已经得到了很广泛的应用,系统中包含了大量的[33]数据。在构建三维模型是,可以利用这些数据。在2DGIS的数据模型中,数据记录包括建筑物实体的层数等一些基本信息,所以一些研究着提出基于这些层数数据,利用假定高度和模拟纹理来重建建筑物对象。具体的操作方法是将2DGIS建筑物实体对象分割为几个假定高度相同的几何体,然后添加实体的一些属性信息,如纹理等,构建三维模型。这种方法不仅可以利用已有的2DGIS中的数据,还可以利用2DGIS中的某些功能,如数据的管理等。规则几何体建模主要是针对城市景观中有规则的建筑物实体,可以快速的构建三维城市模型。但是这种方法对于不规则的建筑物实体,构建三维模型存在困难。(3)三维数据建模当前存在的基于三维数据模型建模的方法有基于体数据模型的建模,基于面数据模型的建模和基于混合数据模型的建模,或者基于一种多种数据模型的建模。模型构建后,利用三维图形编程接口,如OpenGL等,实现3DGIS原型系统。但是上述方法中的每一种的数据模型都存在局限性,只适合基于对应数据模型的实体对象,不能通用,进行空间数据分析存在困难。构建一种适用于所有数据模型的建模方法将会是今后研究的发展方向。4.4.2数据处理GIS的功能分为2DGIS和3DGIS功能。2DGIS的主要功能有:支持多种数据文件;图形显示;查询分析;空间分析等。34万方数据 第四章系统总体设计3DGIS的主要功能有:支持多种数据文件;模型建立;图形显示;场景管理;查询分析;三维场景互操作和可视化;3DGIS到2DGIS的互响应。到目前为止,没有一款能够真正有机整合这些功能的3DGIS。现有的3DGIS往往是通过将已有的2DGIS、DBMS和建模功能软件,如CAD,相结合,从而实现3DGIS的效果。但是,不同的软件结合需要将数据或模型在系统间(系统环境可能不同)进行转换,在转换过程中,一般都会遇到系统不兼容或者数据存储格式不一致的问题。不同的数据模型使用不同的数据格式,而且,为了保护数据,这些数据格式并不是完全公开的,这对数据的有效利用造成不便。因此,很多的模型软件都提供了将这些非公开数据格式转换为中间数据格式的功能,在2DGIS中,中间数据[5]格式为DXF,在3DGIS中,中间数据格式为VRML。通过中间数据格式,我们可以对数据进行进行分析,处理,然后将空间数据和属性数据存储到数据库中。在图形显示或查询分析时,直接从数据库中读取相应的空间数据,重构三维虚拟场景。图4-12转换后的VRML在3DGIS中,中间数据格式为VRML。利用VRML构建三维模型主要有两种方法:第一种是通过手工建模,这种方法需要完成大量的工作,包括数据的采集、整理和文件的编写等,由于工作量大和复杂的原因,第二种方法成为较好的选择。第二种方法是通过转换已有的三维模型,可以减少工作量,快速完成建模。现在,很多的三维模型软件都提供转换为VRML中间文件格式的功能,将VRML文件作为研究内容。图4-12是将使用ImaGIS建立的模型转换为VRML后的效果图:在中间文件数据VRML基础上,对数据文件进行分析和处理,并把处理的数据存储到前面设计的空间数据库中。在图形显示或查询分析时,可以直接调用空间数据库中的内容,并用箱式分割数据模型技术重构虚拟场景,实现三维可视化。空间数据读取35万方数据 电子科技大学硕士学位论文由于VRML中的内容是通过ASCII码来表示,所以,数据的读取过程和一般的文件读取过程类似:(1)首先,在GIS应用程序中实现点类、面类、线类、面集合类、体素类和体对象类等,然后建立每个类对应的数组,用来存放VRML中相应的点、线和面数据。(2)将VRML中点、线、面数据读取到对应的类数组中。(3)将数组中的数据进行分析、处理,然后存储到空间数据库中。在数据库中存在相应的点、线、面、体素和体对象的数据库表。最后,将VRML中的点、线、面数据存储到对应点、线、面数据表的相应字段中。空间数据处理经过数据读取过程存储到数据库中的空间数据和属性数据时不可用的,需要经过整理后,才能够高效的利用这些数据。处理过程如下:图4-13空间实体信息提取(1)空间数据提取通过中间文件格式VRML文件获得的空间数据,多个建筑物实体的空间数据信息重叠,给查询分析造成困难。为了更好的利用空间数据,需要把VRML文件中的单个建筑物实体的空间数据提取出来,这样就可以针对单个建筑物信息进行查询。图4-13中显示胜利油田社区一角。VRML文件把图中所有建筑物看做一个整体,将它们放到同一个节点之中,即图中所有建筑物的空间数据重叠在一起,不能够查询单独建筑物实体的信息。例如图中建筑物A的信息无法查询,应用程序无法定位。通过三维建模软件提供的中间转换格式功能得到VRML格式的文件,其中的数据是以三角形面的形式存储在数据库中的,将数据提取出来可以组成如图4-14所36万方数据 第四章系统总体设计示的三角形面模型。一个建筑物实体是由点和点索引等空间数据组成,通过点和点索引等空间数据可以查找组成体素的所有面的信息。图4-14三角形面模型图4-15较复杂建筑物模型对于较复杂的建筑物模型,可以对面进行分割成三角形面进行处理,具体的处理过程遵循上述算法。如图4-15所示,通过三维建模软件提供的中间文件转换功能获得的VRML文件,存储的信息是以三角形面的形式。所以图中面1234,可以作为两个三角形面123和134进行处理。三角形面到四边形面的转换由于通过三维建模软件提供的中间文件转换功能获得的VRML文件,其存储的信息是以三角形面的形式,这样在显示场景时会产生问题。如果对三角形面进行纹理贴图,在三维可视化显示场景是会产生很大的开销,降低三维可视化的效率。所以,为了避免这种不必要的计算开销,可以在进行纹理贴图时,将三角形面预处理为四边形面。GIS空间数据中的数据量是非常大的,当需要进行数据的读取操作时,会影响加载数据的时间,为了缩短这种不必要的开销,需要对数据库中的数据进行优化37万方数据 电子科技大学硕士学位论文处理。①数据库优化首先删除重复冗余数据,在存储过程中,容易重复性的存储点和面以及纹理数据。删除这些重复数据可以在一定程度上提高加载效率。第二,可以建立索引,对每条建筑物空间数据记录建立索引,通过索引可以快速找到符合条件的空间数据。②动态加载数据根据实际情况,在需要数据的时候动态的加载该数据,不需要不加载。这样可以减少数据加载量,节省时间。在场景显示时,一般会建立视点缓存和预缓存,两缓存在需要的时候交替进行加载数据,例如,当预缓存不可见时,加载的是当前视点将要到达的位置数据。获得当前视点的坐标,然后以此点为圆心,R为半径,划一圆圈。然后计算包含在此圆圈内的建筑物实体,根据实体ID,从空间数据库中读取与建筑物相关的所有信息到视点缓存中。将下一个视点的相关信息存储到预缓存中。当视点的位置发生变化时,预缓存变为视点缓存,原来的视点缓存存储下一个视点信息,成为预缓存。视点缓存和预缓存交互替换,完成场景的显示。采用动态加载数据的方式加载需要的数据,提高了数据加载的速度,减轻了应用程序的压力。4.4.3模型显示从数据库中检索模型点、线、面、体素和体对象等数据类,读取相应的空间数据、纹理、属性数据等,利用图形编程接口OpenGL,对模型进行重构,实现三维场景的可视化。通过改变一个体素所属的实体ID可以将几个体素合并为一个建筑物实体,或者将几个建筑物实体合并为一个建筑物群。在显示建筑物实体时,利用SQL语句查询数据库,获取属于该建筑物实体的所有空间数据和属性数据,并将其存储到OpenGL中,实现模型显示。而关闭显示,则是把数据从OpenGL中移除,该操作同样是利用SQL语句来完成,通过删除符合查询条件的数据,需要注意的是,此过程是不可逆的4.5本章小结本章主要介绍了GIS的总体结构,包括系统的总体设计结构,主要的功能,38万方数据 第四章系统总体设计以及进行2DGIS开发和3DGIS开发需要的技术;如何进行二维和三维数据的获取,数据的管理;如何设计三维数据存储数据库,最后简要介绍了三维场景可视化的方法。39万方数据 电子科技大学硕士学位论文第五章系统详细设计与实现基于GIS的油田社区信息系统需要具备交互操作功能,方便用户管理信息和查询分析数据。在基于GIS的油田社区信息系统的原型系统中,系统提供了三种基本的交互功能:用户与2DGIS的交互;用户与3DGIS的交互;2DGIS和3DGIS的交互。用户与2DGIS的交互主要是指用户和二维信息的交互,主要包括二维地图和数据等;而用户和3DGIS的交互包括三维虚拟场景,三维空间数据的索引建立和查询等。2DGIS与3DGIS的交互是指两者交互响应原理的实现。5.1用户和2DGIS的交互5.1.1地图的显示电子地图的实现主要是通过图层集合的方式来完成。图层的集合是利用MacX控件进行组件式开发,生成.gst文件。通过MapX可以方便的创建和添加新图层,或者删除不需要的图层。图层集合包含多个图层,图层集合包含多个图层,这些图层之间时相互独立的,每个图层对象都有单独的空间数据和属性,是空间数据和属性方法的结合。2D电子地图的显示,如图5-1。图层中的属性、视野方位可以通过系统进行设置。在VC中调用.gst文件的方法如下:MapX.SetGeoSet(filepath+"SLYTMap.gst");添加新图层的方法如下:New_Layer=MapX.AddLayer(name,position);5.1.2地图的编辑除了地图显示功能外,GIS系统还提供了对地图编辑的功能,具体的操作如下:(1)地图操作工具:包含两类:一类是地图选择工具,可以选中地图区域进行编辑;另一类是对象创建工具,可以创建地图图元对象。详细的工具类型包括:地图大小和位置改变工具:改变地图大小,如放大,缩小等;改变地图位置,如居中和平移等;标注工具:选中地图图元添加标注信息;选择工具:具有多种选择方式,构建地图图元的集合,包括矩形选择和圆形选40万方数据 第五章系统详细设计与实现择等图元创建工具:添加线图元,点图元或者区域图元等;图5-1二维电子地图的显示(2)创建图元:创建图元的方法有两种,一种是通过地图对象的FeatureFactory属性方法操作现有图元来创建图元,另一种是通过分配新的Feature属性来创建图元。(3)图元的变换:用户通常会对已经绘制的图元进行变换,包括位置的改变,大小和形状的变换等。系统提供图元变换工具供用户使用。在提供的多种工具中,用户可以选择需要的工具对图元进行编辑。(4)图元的合并和相交:通过MapX提供的FeatureFactory属性方法来完成这些操作。(5)图元的拷贝和剪贴:通过图元的Clone方法来完成。5.1.3信息的查询空间信息查询功能是GIS具备的基本功能,是根据用户要求,从大量的空间数据、属性数据中,选择出符合要求的空间数据。在空间信息查询功能中,常用的查询方式可以分为两种:按照属性特征查询和按照空间关系查询,即通过属性查询空41万方数据 电子科技大学硕士学位论文间关系,或者通过空间关系查询属性。查询的基本过程包括数据绑定、图形信息查询属性信息和属性信息查询图形信息,下面详细介绍一下过程:(1)数据绑定:由于空间数据存放在dat文件,或者外部数据库中,在进行空间信息查询时,需要先绑定空间数据,才能执行查询操作。数据绑定可以通过Map.DataSets.Add方法来完成。在MapX中,数据结构主要由三部分组成,分别是:layers,Datasets和Annotation。这三部分数据结构分别于空间数据、属性数据的操作和文本标注相关联。(2)通过图形信息查询属性信息:根据实体对象的空间位置或者空间关系来查询实体对象的属性信息。查询的选择方式有点查询和范围查询。点查询是通过用户输入一个点的坐标位置,查询此位置的实体和属性信息;而范围查询则是通过用户指定一个范围,如矩形范围等,在范围内查询实体对象及其属性信息。用户可以根据需要从查询结果中选择和查询所关心的属性信息。通过MapX的通过MapX提供的属性方法来实现。(3)通过属性信息查询图形信息:与通过图形信息查询属性信息相反,查询符合用户提交的属性查询条件的实体对象的空间位置和空间关系。通过SQL语句来实现查询操作。另外,本功能还可以用作属性信息统计,只显示统计结果,不显示图形信息。与通过图形信息查询属性信息相反,查询符合用户提交的查询条件的实体对象5.1.4数据的分析数据的分析是指对空间数据进行的运算和查询操作。在不同的应用程序中,数据分析的方式各不相同。在MapX中,提供了如下的数据分析方式(运算和查询)方式,可以满足一般系统的开发需求。MapX提供的空间数据分析方式主要包括以下几种:(1)图元间的包含关系:利用图层的属性方法search(strWhere,Variable)完成数据分析工作。查询条件strWhere包括:包含关系:Object1containsObject2被包含关系:Object1withinObject2相交关系:Obejct1intersectsObject2(2)拓扑关系,主要包括以下几种操作方式:查询指定点处的图元;查询指定范围内的图元;查询包含在指定图元中的图元;查询指定点或图元周围一定距离内的图元。这些查询操作同样是利用图层的42万方数据 第五章系统详细设计与实现属性方法来完成。(3)缓冲区分析:当对地物附近的的活动数据进行数据分析时,需要建立缓冲区,存储相关的活动数据。缓冲区可以通过如下的两种方法实现:一种是通过FeatureFactory的属性方法BufferFeature来实现;另一种是通过分配新的Buffer来实现.当查询到需要的信息时,系统会按照用户设定的颜色显示,并把相应的属性信息显示在对话框中。5.2用户和3DGIS的交互在GIS的综合信息查询中,系统提供了三种交互操作。用户和维虚拟场景的交互式是最基本的交互方式。实现交互的方式有两种,分别是硬件支持的方式和软件支持的方式。硬件支持的方式主要是通过使用三维交互设备来实现;软件支持的方式主要是通过二维设备进行三维仿真。本文主要介绍面向软件的三维图形交互方法。用户和3DGIS的交互操作主要包括用户从不同的角度浏览三维场景,编辑三维场景,以及空间实体对象的定位等。5.2.1场景漫游3DGIS提供了场景的漫游功能,用户可以通过控制工具调节漫游的速度和方向等,系统则实时获取漫游的动态,利用复杂的漫游算法重新绘制虚拟场景,实现场景的更新。漫游功能实现方式有两种:一种是在场景中的视点不变的情况下,实现场景中模型坐标的改变;另一种是保持模型坐标相同,调节坐标原点的方式。第二种实现漫游的方式符合人们现实中的动态,比如,人在移动的过程汇中,人的视点是随着位置的改变而变化的。(1)视点不变,场景模型坐标变化在OpenGL中,场景模型坐标的变换是通过OpenGL提供的平移、旋转和缩放命令对三维虚拟场景进行围绕视点的反变换来实现的。这样可以连续、流畅的进行三维变换。在与三维虚拟场景进行交互的时候,计算视点坐标和点击处坐标,获得漫游算法所需要的参数数据,然后调用相应的算法,计算新的视线向量,变换场景的模型坐标,最终实现模型坐标的变换,这种方法可以连续流畅的实现场景变换。43万方数据 电子科技大学硕士学位论文(2)视点改变,模型坐标不变用户可以通过漫游控制工具和三维虚拟场景进行交互,控制漫游的速度,方向以及观察的角度和焦距等。当用户改变视点位置时,调整模块会根据用户的行为调整视点方向,改变视点位置。同时显示模块会根据新的视点位置坐标,调用复杂的漫游算法重新绘制三维虚拟场景。这种方式更接近现实世界的需求。在图论中,我们知道漫游是通过改变场景模型的空间位置来实现用户从不同的方向和位置浏览场景的。通过定义一个视点类来实现视点的变化,在观察空间其它参数不变的情况下,使用4维变换矩阵来实现。classViewPoint{CoordinateCx,Cy,Cz;//视点坐标MatrixCarray[4][4];//位置变换矩阵MoveVecMu,Md,Mr,Ml;//位置变换FloatTilt,Yaw;//观察角度}GIS三维虚拟场景漫游效果图,如图5-2:图5-23DGIS中漫游效果图5.2.2场景中点的定位在虚拟场景中对空间点进行定位是3DGIS的基本功能,通过定位点查询相关的空间信息是一个重要的交互功能。在二维平面中,鼠标的移动坐标值和屏幕上44万方数据 第五章系统详细设计与实现的坐标值是一一对应的,但是在三维场景中,事件返回值则与多个坐标值对应,不方便查询。两种方法:三维探测器定位法和矢量定位法,可以解决空间点的定位问题。(1)三维探测器定位法三维探测器定位法主要通过使用OpenGL提供的命令函数来完成。在现有的计算机系统中,默认的坐标原点位于窗口的左上角,X轴自左向右递增,Y轴自上向下递增。本方法是将屏幕窗口的左下角设置为坐标原点,将深度值作为Z轴坐标,这样空间点的坐标可以确定为:Cx,Cy,Cz。最后计算空间点在对象坐标系中的坐标。空间点定位的过程如下:(1)首先将窗口坐标原点设置为左下角坐标:用Height表示窗口的高度,对于现有坐标系中的一个点(x‟,y‟),转换后在新坐标系中对应的坐标为(x=x‟,y=Height-y‟)。(2)计算深度值Z:通过OpenGL提供的函数来计算深度值Cz。(3)计算投影矩阵:glGetDoublev(PROJECTION_MATRIX,projm3D);(4)计算视口区域:glGetIntegerv(VIEWPORT,viewport);(5)计算模型矩阵:glGetDoublev(MODEL_MATRIX,modelm3D);(6)计算空间点在三维虚拟场景中的坐标,OpenGL提供了反解投影函数gluUnProject()来完成:(2)矢量定位法矢量定位法是通过在一条射线上进行选取,适合二维鼠标操作。模型的具体操作过程如下:首先将二维点坐标(x,y)(将坐标原点设置为左下角之后的二维坐标)映射到深度坐标为0的三维空间中,即新的坐标为N(x,y,0)。将从新坐标出发,指向Z轴负方向的射线标示为Q(t)。Q(t)=N+at;其中,a=[0,0-1,0]然后计算射线Q与场景中的空间实体的边界长方体的交点,交点中与点N的距离最近的点作为选中点。只选取最近距离的点,因为其他的点都被前面的点阻挡,这与用户在现实世界的感觉是相似的。所以观察者只能看见前面的对象,选取后面的对象没有任何意义。45万方数据 电子科技大学硕士学位论文5.3数据索引及信息查询GIS的数据库中存储着大量的空间数据,在进行数据查询和信息分析时,需要从大量的空间数据中,查询出某一建筑物实体的空间信息,这是GIS应具备的最基本功能。直接从大量的空间数据中查询关心的数据耗费大量的时间。所以GIS通常会对空间数据库中的数据建立索引,利用索引查询相关数据,可以提高查询的速度,进行高效的分析。5.3.1数据索引方法GIS建立空间数据索引机制的方法主要有以下四种:对象范围索引法、格网索引法、四叉树空间索引法和R-tree索引法:(1)范围索引法:在存储空间对象数据时,同时存储空间对象边界的最大和最小值。在检索时,利用最大最小值确定空间对象的位置范围。可以减少检索的范围,提高检索的效率。(2)格网索引法:本索引法是通过将三维空间划分为符合一定规则的格网,记录每个格网中包含的空间对象。然后对格网进行编码,记录其与空间对象的对应关系,建立数据索引。(3)四叉树空间索引法:本索引法是将三维虚拟场景按照四叉树的方式进行划分,存储每个区域包含的对象。然后对其进行Morton编码,记录与空间对象的对应关系,在进行空间数据检索时,可以按照Morton码,结合四叉树的边长就可以高效的检索到需要的空间对象。(4)R-tree索引法本索引法是将三维空间范围划分成虚拟空间目标。虚拟空间目标包括二维空间实体和三维空间实体。相近的二维空间实体或者三维空间实体位于同一个虚拟空间目标中。在存储空间实体时,同时存储空间对象索引,方便查询空间对象。虚拟空间目标的数据模型结构为:Object(ID,Type„.),其中,ID表示虚拟空间目标的唯一标识,Type表示虚拟空间目标的类型,是实体还是虚拟。在R-tree索引机制的基础上,R+-tree机制中虚拟空间目标可以包含重复的空间对象。R+-tree索引机制在检索空间数据时,首先判断哪些目标包含在检索窗口内,接下46万方数据 第五章系统详细设计与实现来判断哪些内容被检索,减少检索的范围,提高了检索效率。3GIS数据库中存储着大量的空间数据,实现某一空间对象的快速定位是实现空间信息查询的基础。而实现高效的信息查询,需要对空间数据建立高效的数据索引。在油田社区信息系统的原型系统中,应用R-tree索引法作为空间数据的索引机制,实现高效的查询空间对象。5.3.2数据索引建立本文采用R-tree索引机制,是由于其更加适合对三维建筑物空间数据进行索引,而且符合基于结构实体几何法和边界表示法的箱式分割数据模型的特点,可以实现高效的空间信息检索。另外,R-tree的节点采用封闭的三维空间,如矩形,显现对三维空间对象的检索,建立空间数据的索引是高效查询的前提,下面讲述建立索引的步骤。(1)得到体素边界信息:利用前面介绍的VRML空间数据处理算法,在提取建筑信息数据时,将同一体素的面数据和点数据存储到相应的数据表中,然后进行边界处理,通过比较获得组成该体素边界的最大值和最小值,并将其作为体素的边界长方体信息。(2)得到建筑物的边界信息:将获得体素的边界长方体信息进行下一步处理,比较组成同一建筑物的所有体素的边界信息,得到组成该建筑物的体素的最大值和最小值,作为建筑物实体的边界信息。A建筑物B建筑物C建筑物C1体素A1体素B1体素C2C3A2体素……ABCA1A2B1C1C2C3图5-3基于R-Tree机制的数据索引一个建筑物实体的边界长方体是由多个体素的边界长方体组成。建筑物的边界长方体和体素的边界长方体之间的关系及R-tree索引机制建立空间数据索引的47万方数据 电子科技大学硕士学位论文过程,如图5-3所示:在检索空间数据时,首先判断哪些建筑物目标包含在检索窗口内,接下来判断哪些体素被检索,然后按照体素的分层信息,查询符合条件的空间数据信息,减少检索的范围,提高了检索效率。与格网索引法类似,R-tree索引法也可以将整个虚拟场景分割成符合一定规则的虚拟长方体,然后记录每个虚拟长方体中包含的建筑物实体的边界长方体信息,最后按照R-tree索引机制建立空间数据索引,对基本索引过程进行扩展,适用于整个虚拟场景。5.3.3空间信息的查询空间信息查询功能是GIS具备的基本功能,是根据用户要求,从大量的空间数据、属性数据中,选择出符合要求的空间数据。与2DGIS的信息查询类似,3DGIS不仅可以实现查询符合条件的空间数据和属性信息,还可以实现如下的交互查询:(1)通过图形信息查询属性信息在建立空间数据索引的基础上,根据空间实体和组成该实体的体素的边界长方体的信息,可以查询属性信息,步骤如下:①读取选取区域的二维坐标值。②利用获得的二维坐标值,在三维虚拟场景中找到该区域的深度值,即Z轴坐标,得到三维坐标。③计算选取区域的三维坐标值与每个建筑物实体的长方体边界的交集,如果点包含在边界长方体的内部,或者区域与边界长方体存在交集,则表明该建筑物实体被选中。④接下来计算与体素边界长方体的交集,如果点在体素边界长方体内,或者区域与体素边界长方体有交集,则表明该体素被选中,获得该体素的ID。⑤按照③步获得的建筑物实体的ID,建立查询语句,检索建筑物实体的属性表,将属性信息呈现给用户。⑥按照③步获得的建筑实体ID和④步获得的体素ID,建立查询语句,检索提速表,获得体素的分层信息。(2)通过属性信息查询图形信息利用空间实体的属性信息查询相应的图形信息,可以通过下面两种方式来实现,分别是:借用OpenGL选择机制和基于箱式分割模型的查询。<1>借用OpenGL选择机制:在利用OpenGL绘制地物时,对要查询地物建立标48万方数据 第五章系统详细设计与实现识好,在属性数据表中,增加查询地物的标识字段。由属性信息查询图形信息的操作过程如下:①建立查询语句,检索建筑物实体数据表,查找符合检索条件的实体的标识ID。②根据实体标识ID,找到空间实体的名字标识③通过OpenGL提供的选择模式,可以找到实体的名称。④通过高亮度显示空间实体,视点坐标转换为合适的观察位置。借用OpenGL的选择机制,需要对查询地物进行标注,而且需要绘制地物多次,查询范围受到限制,影响检索效率。<2>基于箱式分割模型的查询:在建立三维数据模型过程中,将实体的空间数据和属性信息存储到相应的数据表中。然后通过查询数据表,可以方便的找到满足用户要求的空间实体,检索过程如下:①建立查询语句,检索建筑物实体属性数据表,查找符合检索条件的实体的标识ID。②利用实体的标识ID,在空间数据表中查找对应的边界长方体信息。③通过高亮度显示空间实体,视点坐标转换为合适的观察位置。基于箱式分割模型的查询方法,消除了查询范围的限制,只需绘制地物一次,提高了检索效率。图5-43DGIS中空间信息查询利用图形信息查询属信息时,选中建筑物实体,在对话框中显示相应实体的属性信息;利用属性信息查询图形信息时,只需要在对话框中输入属性信息,符合条49万方数据 电子科技大学硕士学位论文将三角面数据存入数组Mian[m][n]中初始化:定义变量longFindMian[5000];intindex;longFindMianIndex=0;新建体素,清空FindMian数组。找到Mian[i][3]=0的i,将体素ID赋给i所表示的面,然后设置Mian[i][3]=1。k=0;FindMian[k]=i;令Index=0FindMianIndex=FindMian[Index];Forj=0if(Mian[j][3]=0)continue;Form=0to3Forn=0to3if(Mian[j][m]==Mian[FindMian][n]){Found=1;break;}EndFor;if(Found==1)break;EndForIf(found){Mian[j][3]=1,FindMian[k++]=j;}j++否j>n?是index++否index>k?是i++否i>n?是退出图5-5查找面信息算法50万方数据 第五章系统详细设计与实现件的建筑物实体选中显示,如图5-4所示。下面以图中的三角形面模型为例,讲述一下如何处理点和点索引信息,找到场景中所有的体素信息。一个建筑物实体中共享同一点的各个面是属于同一体素的。利用这个特征,我们可以通过一个面中与其他面的共享点,找到其他面信息,然后通过其他面与另外一些面的共享点查找面信息,循环多次,直到找到一个场景中的所有体素信息。查找组成体素所有面信息的过程如下:①把组成体素的所有面信息存储到数组中。首先,建立二维数组Mian,第一维存放三角形面模型的个数,第二维赋值为4。把VRML中的所有点和点索引信息以及面信息存储到Mian数组中,存储顺序为在Mian数组的前三个元素赋值为三角形面的三个点在点信息表中的索引号,第四个元素中赋值为面的读取标识。另外,建立FindMian[k]一维数组,用来查找组成某个体素的第k个面信息,FindMian[k]的值表示构成该体素的面信息的唯一的标识号。②在Mian[n][i],0面的个数,退出循环,继续下面的操作。③退出第3步的循环后,继续另一个循环,循环读取FindMian[]中的所有面,即找到作为比较的面,然后执行Mian[FindMian[index+1]],再次进入第3步的循环。不过在比较开始前,要先判断Mian[j][3]的值是否被设置,如果已经设置,则不用再进行比较,进行下一个循环;如果没有设置,则开始第3步的循环。往复循环,直至index>k,则表示某个体素的所有面已经比较完毕。Mian数组中读取标识被设置的面属于同一个体素,所以讲数据库中面信息表中的面所在体素ID字段设置为该体素的ID。循环算法伪代码如下:Form=0to3Forn=0to3if(Mian[j][m]==Mian[FindMian][n]){Found=1;break;}EndFor;if(Found==1)break;EndFor51万方数据 电子科技大学硕士学位论文If(found){Mian[j][3]=1;FindMian[k++]=j;}④在②③④的循环完成之后,进入下一个体素的循环。查找Mian[j][3]中还未被设置的面,执行②③④⑤。⑤最后所有读取标识被设置的面存储到空间数据库中,面数据提取结束,具体的算法过程如图5-5。5.42DGIS与3DGIS的交互2DGIS和3DGIS的互响应机制可以使两者的优势得到发挥,2DGIS的平面对象可以在3DGIS中显示,可以实现查询结果以三维可视化虚拟场景的方式显示。在3DGIS中查询实体对象时,也可以在2DGIS中同时显示目标。互响应机制在很[11]多方面都得到了应用,如GPS等。5.4.1基本原理2DGIS和3DGIS的互响应是实现GIS综合信息查询的基础。互响应的本质是二维空间数据和三维空间数据的一种映射,建立二维空间坐标和三维空间坐标的[23,24]一一对应以及地物名称的一一对应。映射机制是实现互响应机制的基础。在进行空间数据检索时,根据属性数据,检索属性数据表,获得实体的标识ID,然后根据ID检索空间数据表以及map文件,获得相应的三维数据和二维数据,最后以某种颜色显示结果。SLInfoSys系统实现了互响应,通过互响应机制实现了二维场景和三维场景的通信。5.4.2表现形式根据不同的应用,互响应机制的表现形式也不同。常用的表现形式一般有以下几种:(1)通过二维信息查询三维信息:在2DGIS中查询实体信息时,在3DGIS中相应目标选中显示。(2)通过三维信息查询二维信息。52万方数据 第五章系统详细设计与实现(3)用户在三维场景中漫游时,实时显示用户在二维电子地图中对应的位置。(4)用户在二维电子地图中位置改变时,三维场景中的视点转换到相应的位置。(5)三维模型实时调入。(6)虚拟场景飞行漫游。5.5系统实现GIS是一种收集、分析和处理空间数据,建立数据模型,响应用户查询要求的空间信息处理技术,可以方便而快捷的提供给决策者关于区域建设,方案甄选等方面的空间数据信息。2DGIS存在三维空间数据丢失的问题,3DGIS与2DGIS的结合可以弥补这一问题,也可以保存2DGIS的优势。SLInfoSys是利用GIS技术实现了对社区环境中的建筑物实体进行实时的位置显示,还可以进行漫游、定位和查询等功能。本系统以胜东社区胜利小区的地物信息为基础,通过对MapX控件的二次开发来实现。图5-6—5-9为系统界面图。5.5.1空间信息查询空间信息查询是指根据用户要求,从大量的空间数据、属性数据中,选择出符合要求的空间实体及属性信息。用户也可以选择场景中的任意区域,在主场景中则同步显示该区域的信息,达到快速显示浏览的目的。系统中显示区域的伪代码(为了便于理解,用3DLibrary代替MapX):privatevoidRegionView(….){3DLibrary.Featurefeature;//声明一个图元特性3DLibrary.Nodesnodes=newNodes();3DLibrary.RegionStylestyle=newStyle();3DLibrary.Node3dnode1=new3DLibrary.Node();3DLibrary.Node3dnode2=new3DLibrary.Node();3DLibrary.Node3dnode3=new3DLibrary.Node();3DLibrary.Node3dnode4=new3DLibrary.Node();//设置矩形四角坐标53万方数据 电子科技大学硕士学位论文3dnode1.Set(XMin,YMin);3dnode2.Set(XMax,YMin);3dnode3.Set(XMax,YMax);3dnode4.Set(XMin,YMax);图5-62DGIS中的信息查询//添加点nodes.Add(3dnode1,1);nodes.Add(3dnode2,2);nodes.Add(3dnode3,3);nodes.Add(3dnode4,4);//创建图层Try{3DLibrary.LayerInfolayer=newLayerInfoClass();3DLibrary.Fieldsfields=newFieldsClass();54万方数据 第五章系统详细设计与实现stringlayerName=Layer.SelectedItem.ToString();fields.AddSmallIntField("ID",1);layer.Type=LayerInfoTypeConstants.miLayerInfoTypeTemp;layer.AddParameter("Name",layerName);layer.AddParameter("Fields",fields);3DLibrary.axMap.Layers.Add(layer,0);}catch(Exceptione){MessageBox.Show("出错,错误如下:"+e.Message,");}//设置边框样式RegionStyle.RegionPattern=FillPattern.NoFill;RegionStyle.RegionBorderColor=(uint)3DLibrary.Color.Blue;RegionStyle.BorderWidth=2;//利用Map属性创建矩形框Try{feature=3DLibrary.axMap.FeatureFactory(nodes,RegionStyle);feature_house=Map.Layers..AddFeature(feature,newRowClass());}catch(Exceptione){MessageBox.Show("出错,错误如下:"+e.Message,");}}空间点定位过程中坐标转换代码:privatevoidMapNavigation(....){doubleMapX=0.0;//初始化为原点坐标doubleMapY=0.0;Map.ConvertCoord(x,y,MapX,MapY,3DLibrary.ConversionToMap);Map2.X=x;Map2.Y=ScreenHeight-y;55万方数据 电子科技大学硕士学位论文}图5-73DGIS中的信息查询、视点控制空间点定位功能的实现如图5-7所示。首先,将选中图层的名称属性和树状显示结构绑定,在树状结构中找到对应的图元,最后在主场景中显示要查找的图元信息,并将其它相关属性信息显示在主场景下方。系统中定位目标图元主要伪代码://查找定位Name字段为text的图元stringstring="Name="+'"'+Text+'"';//设置图层名stringlayerName=Layer.SelectedItem.ToString();FoundTarget=Map2.Layers.Item(layerName).Search(string);if(FoundTarget.Count>0)//若找到目标图元{//获得坐标值Map2.X=FoundTarget.Item(1).X;Map2.Y=FoundTarget.Item(1).Y;}56万方数据 第五章系统详细设计与实现Else{MessageBox.Show("Nosuchinformation");}下述代码实现了显示目标图元”Notes”属性//显示图元Notes字段信息layer=Map2.Layers._Item(layerName);//comboBox1中选择的图层3DLibrary.Fieldsfields=new3DLibrary.FieldsClass();fields.Add("Name","Name",3DLibrary.AggregationFunction.Sum,3DLibrary.FieldType.Type);fields.Add("Notes","Notes",3DLibrary.Sum,FieldType.Type);dataSets=Map2.DataSets.Add(3DLibrary.DatasetType.SetLayer,layer,layer.Name);//将flds内容添加到数据集for(inti=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭