毕业论文:基于Arc Engine的智能交通系统.doc_第1页
毕业论文:基于Arc Engine的智能交通系统.doc_第2页
毕业论文:基于Arc Engine的智能交通系统.doc_第3页
毕业论文:基于Arc Engine的智能交通系统.doc_第4页
毕业论文:基于Arc Engine的智能交通系统.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科生毕业论文(设计) 题 目:基于Arc Engine的智能交通系统专业代码: 070703 作者姓名: 刘兴 学 号: 2007201956 单 位: 环境与规划学院 指导教师: 肖燕 2011年5月31日原创性声明本人郑重声明:所提交的学位论文是本人在导师指导下,独立进行研究取得的成果。除文中已经注明引用的内容外,论文中不含其他人已经发表或撰写过的研究成果,也不包含为获得聊城大学或其他教育机构的学位证书而使用过的材料。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。本人承担本声明的相应责任。学位论文作者签名: 日期指 导 教 师 签 名:日期 聊城大学本科毕业论文(设计)目录1前言12 相关概念和技术12.1智能交通系统简介12.2网络分析简介22.3组件对象模型(COM)32.4组件式GIS32.5 C#简介42.6关于ArcGIS Engine53 系统构建53.1 系统分析53.1.1需求分析53.1.2可行性分析63.2 系统设计63.2.1系统设计目标63.2.2系统结构设计63.2.3系统功能设计73.2.4基础数据库设计83.3 系统实现93.3.1用户主界面的实现93.3.2地图基本操作功能的实现103.3.3查询功能的实现103.3.4网络分析功能的实现194结束语24参考文献25致谢26摘要以推进交通智能化建设为目标,研究了智能交通系统的设计与实现。该系统以VS.Net为开发平台,选用ArcGIS Engine-组件式GIS作为地理信息系统软件,采用Visual C#编程语言作为开发设计工具,实现了高效便捷的对交通信息的查询、分析和管理。本文着重介绍了系统功能设计和功能实现的过程。关键词:ArcGIS Engine;智能交通系统;组件式GIS;网络分析;GeodatabaseAbstractIn order to improve the traffic intelligence, the design and implementation of ITS was studied. This system selects VS.Net as development platform, ArcGIS Engine-ComponentGIS as the GIS software, Visual C# as develop tool, and it can effectively and conveniently. This paper focuses on the process of system function design and implementation.Key words:ArcGIS Engine;ITS;ComGIS;Network Analysis;Geodatabase聊城大学本科毕业论文(设计)基于Arc Engine的智能交通系统1前言作为智能交通系统基础的城市交通控制系统的开发研究在我国已有20多年的历史,这20多年来该系统已经经历了三个阶段:第一个阶段始于1973年的北京前三门交通监控系统,一直到1984年。这个阶段依靠自己的技术和国产设备,以电视监视与线控为起点逐步向面控系统发展,其结果是我国城市中主要交叉路口实现了点控制,一些街道实现了线控制;第二阶段从1984年开始,北京、上海分别引进国外的面控系统,直到公安部在南京组织系统国产化,并完成面控系统的“七五”攻关。在这十年间,我国十几个大城市中,或者是引进国外系统,或者是采用了国产的面控系统;第三阶段从1993年开始,我国一些城市实施了现代化综合交通管制系统。这种系统不仅包括交通信号控制和电视监视系统,而且还包括了除交通信号控制和电视监视以外的警车定位系统、地理交通信息系统和交通事故、车辆与驾驶员档案等综合静态信息系统等。这种现代化综合交通管制系统实际上就是智能交通系统的基础。近几年在一些省市还实现了不停车自动收费系统和IC卡机动车驾驶员交通违章罚款管理系统。实际上这些基本上属于智能交通系统的一部分。随着经济的快速发展,我国对智能交通系统的研究和应用将会越来越快,特别是随着我国“五纵七横”国道主干网即将建成,到2015年全面建成以高速公路为主体的公路运输主骨架。我国即将掀起智能交通系统建设的热潮,智能交通系统将给我们的生活带来极大的变化。2 相关概念和技术2.1智能交通系统简介智能交通系统是一个基于现代电子信息技术面向交通的服务系统。突出特点是以信息的收集、处理、发布、交换、分析、利用为主线,为交通参与者提供多样性服务。智能交通系统是信息技术和其他电子技术在交通运输安全和效率管理中的应用平台,它包括:互联网技术、现代通讯和网络技术、信息技术、地理信息系统技术和全球定位技术、电子数据交换技术、车辆和场站装备、管理技术等。近十年来,全球范围内信息化进程的加快,先进技术不断创新,使用信息技术的成本也日趋下降。交通运输系统通过网络信息技术为使用者提供最有效的信息服务,实现了各种资源共享,从而节省了投资和运营成本。因此,智能交通系统的实施建设为交通运输、物流、车辆制造、信息等产业提供更多的商业机会。2.2网络分析简介网络分析是对地理网络(如交通网络)、城市基础设施网络(如各种网线、电缆线、电力线、电话线、供水线、排水管道等)进行地理分析和模型化过程,通过研究网络的状态以及模拟和分析资源在网络上的流动和分配情况,实现对网络结构及其资源等的优化问题。网络分析的理论基础是图论和运筹学,它从运筹学的角度来研究、统筹、策划一类具有网络拓扑性质的工程,安排各个要素的运行使其能充分发挥作用或达到所预想的目标。网络分析是基于几何网络的特征和属性,利用距离、权重个规划条件进行分析得到结果并且应用在实际中,主要包括路径分析、地址匹配、和资源分配三个方面。(1)路径分析1)最佳路径分析:分为静态和动态两种。静态方法指给定每条弧段的属性后,求最佳路径;动态方法是指实际网络分析中权值是随着权值关系式变化的,而且可能会临时出现一些障碍点,需要动态的计算最佳路径。2)N条最佳路径分析:确定起点、终点,求代价较小的N条路径,因为在实践中由于种种因素需要选择近似最佳路径。3)最短路径:确定起点、终点和所要求经过的中间点、中间连线,求最短路径或最小成本路径。(2)地址匹配地址匹配实质是对地理位置的查询,它涉及到地址编码。地址匹配与其他网络分析功能结合在一起,可以满足实际工作中非常复杂的分析要求。需要输入的数据包括地址表和含地址范围的街道网络以及待查询地址的属性值。(3)资源分配资源分配网络模型由中心点(分配中心)及其状态属性和网络组成。分配有两种方式:一种是由中心向四周输出;另一种是由四周向中心集中。这种分配功能可以解决资源的有效流动和合理分配问题。例如,为网络中的每一连接寻找最近的中心,以实现最佳服务。2.3组件对象模型(COM)组件对象模型(Component Object Model,COM)用以建立软件模块之间的通讯,为软件部件之间进行连接和通讯提供了有效机制。在基于组件对象模型的软件开发中,应用程序和其他程序之间通过接口进行通讯,接口应满足COM的二进制标准,以实现对多个接口的支持1。COM不仅仅提供了组件之间的接口标准,还引入了面向对象的思想。组件模块为COM对象提供了活动的空间,COM对象以接口的方式提供服务,使用者可以直接调用执行模块来获得COM对象所提供的服务和功能,此接口被称为COM接口。如图1所示。接口2对象1对象2接口1接口3COM组件图1 COM组件、COM对象、COM接口Fig.1 COM components,COM object,COM interface2.4组件式GIS(1)概念与形成:简单地说,ComGIS就是采用了面向对象技术和组件式软件的GIS系统(包括基础平台和应用系统)4。COM GIS的基本思想是把GIS的各大功能模块划分为几个组件,每个组件完成不同的功能,各个GIS组件之间,以及GIS组件与其他非GIS组件之间,都可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS基础平台以及应用系统5。目前,组件式GIS主要有两种方式:一种是由可以实现制图与一般GIS 功能的ActiveX控件集成构成的组件式GIS。这些控件既可以通过属性、事件、方法等接口与应用程序进行交互,也可以在可视化开发环境中集成构成应用系统。另一种形势的组件式GIS是基于Microsoft COM技术构建一系列COM组件集,用户可以利用这些组件开发各种GIS功能,并在此基础上构建GIS 应用系统。这种开发模式更为底层,开发较为复杂,功能更为强大,以ESRI公司的ArcObject(简称AO)组件为典型。两种开发形式的软件都具有地图控制、图层显示、数据查询、地图符号化、专题地图等基本功能6。(2)与传统GIS的对比:传统GIS开发平台均采用专门的设计开发语言,加上庞大的函数和命令库进行开发,这样就面临着开发难度大、投入高、周期长、可重复性差的问题;而组件式GIS很好地解决了这些问题,使构建系统就像搭积木一样便捷7。与传统GIS相比,组件式GIS具有的特点:高效无缝的系统集成,传统的GIS软件在系统集成上都存在缺陷,而组件式GIS不依赖与一种开发语言8,可以嵌入通用的开发环境中实现GIS功能,专业模型可以在相同的开发环境来实现,也可以插入其他的专业分析模型控件,这样就可以实现高效、无缝的系统集成。可扩展行强,复用性高,ComGIS不需专门的二次开发语言,只需在当前可是划编译开发环境中,如Delphi、Visual C+、Visual Basic等,通过ActiveX控件标准开发接口来实现基本函数功能,二次开发简单,且扩展性好。大众化,ComGIS与用户和客户程序之间主要通过属性、方法和事件进行交互,用户可以像使用其他ActiveX控件一样使用组件式GIS控件,使非专业的普通用户也能够开发和集成GIS应用系统,推动了GIS大众化进程。低成本,短周期,用户根据自己的需要选择行购买所需的GIS控件,一些专业应用功能可直接利用编程语言开发,从而降低了开发成本,缩短了研发周期9-10。2.5 C#简介C#(C Sharp)是微软(Microsoft)为.Net Framework量身定做的程序语言C/C+的是第一个组件导向(Component-oriented)的程序语言,和C+与Java一样亦为对象向导(object-oriented)程序语言,它吸收了C+、Visual Basic、Delphi、Java等语言的优点,体现了当今最新的程序设计技术的功能和精华。C#继承了C语言的语法风格,同时又继承了C+的面向对象特性。不同的是,C#的对象模型已经面向Internet进行了重新设计,使用的是.Net框架的类库;C#不在提供对指针类型的支持,使得程序不能随便访问内存地址空间,从而更加健壮;C#不再支持多重继承,避免了以往类层次结构中由于多重继承带来的可怕后果。.Net框架为C#提供了一个强大的、易用的、逻辑结构一致的程序设计环境。同时,公共语言运行时为C#程序语言提供了一个托管的运行时环境,是程序比以往更加稳定、安全。其特点有语言简洁保留了C+的强大功能快速应用开发功能语言的自由性强大的Web服务器控件支持跨平台与XML相融合。2.6关于ArcGIS Engine(1)ArcGIS Engine简介:作为嵌入式GIS,ArcGIS Engine能用在一个组织内建立应用,为用户提供有针对性的GIS功能,进行GIS应用开发时可以脱离了ArcGIS桌面平台。事实上,ArcGIS Engine是由一组核心ArcObject包组成,能在各种编程接口中运用2。(2)ArcGIS Engine开发方法:可以选择不同的环境开发ArcGIS Engine应用程序,对.Net开发者来说有Microsoft Visual Studio或Delphi等,对Java开发者来说有ECLIPSE,Sun ONE Studio等3。首先用集成开发环境注册ArcGIS Engine开发组件,然后建立一个基本窗体的应用,添加ArcGIS Engine组件后选择一种模式构建自己的应用。主要技术点:窗体设计与图层引入。在C#环境下加载MapControl、TOCControl、ToolbarControl空间和相关引用,并在窗口中加进控件,引入图层是通过MapControl控件实现,通过它们可以获得组件库提供的相关接口,从而实现各种功能。代码控制。设置TOCControl、ToolbarControl和PageLayout控件连接,并实现功能,通过代码控制,调用ArcGIS Engine开发包,执行程序后可得到小型应用系统。3 系统构建3.1 系统分析3.1.1需求分析随着改革开放的不断深入,我国国民经济持续稳定增长,人们对交通的要求日益增高,虽然城市道路不断的进行改、扩建工程,但仍是解决不了交通拥挤等问题。我国机动车和非机动车都为主要的交通工具,交通结构不合理,道路容量不足,交通控制管理设施不健全。行人自行车违章以及交通事故、乱停车等是导致交通拥挤、机动车车速不断下降的直接原因。交通事故的频繁发生也使交通阻塞加剧,形成恶劣循环。这也是我国多数城市交通存在的普遍问题。智能交通系统的实现,可以很好的解决上述问题。3.1.2可行性分析自从20世纪80年代以来,计算机技术、电子控制技术和通讯技术有了极大发展,利用这些新技术把车辆、道路、使用者和交通管理者紧密结合起来,从而形成一种及时、准确、高效的智能交通系统。(1)经济可行性进行成本效益分析,评估项目的开发成本,估算开发成本是否会超过项目预期的全部利润。通过分析,该系统效益显著,资源可通过网络搜索和书籍查阅等方法获得,开发成本较低,经济可行。(2)技术可行性根据系统的功能、性能及实现系统的各项约束条件以及系统目标来衡量所需的技术是否具备,估计利用现有技术条件完全可以达到该系统的功能目标。(3)法律可行性该系统只作为演示,该系统其他部分的研制和开发,将不会侵犯他人、集体和国家的利益,不会违反国家法律法规。3.2 系统设计3.2.1系统设计目标本系统采用先进组件式开发方式,设计并实现了智能交通系统。以GIS的强大数据分析和管理功能作为支持,以用户的选择和要求为目标,真正实现基础地理数据的共享,为交通管理部门的日常管理和各项决策服务。3.2.2系统结构设计通过用户需求分析、可行性分析、总体设计和功能模块设计,产生了本系统的总体结构框架,如图2所示。图形基本操作空间数据查询空间数据网络分析地图输出地图数据属性数据网络数据集GeoDatabaseArc Engine(COM组件)VS.Net、C#图2 系统结构设计图Fig.2 System architecture design3.2.3系统功能设计整个系统在VS.Net平台上开发,在计算机环境下形象生动的显示,本系统的功能可划分为以下模块,如图3所示。基于Arc Engine的智能交通系统图形基本操作模块空间数据查询模块空间数据网络分析地图输出模块服务区分析最临近设施分析最短路径分析空间查询属性查询快速查询地图输出高级查询简单查询多边形查询圆形查询矩形查询直线查询测量功能地图操作功能鹰眼功能地图数据显示图3 系统功能设计图Fig.3 Functional design图中智能交通系统各个功能模块分别可以实现以下功能:(1)图形基本操作模块:地图数据显示,是通过列表向用户显示组成当前地图的所有图层信息,包括图层名称、可见性、控制地图显示比例;地图操作功能,是指系统提供了放大、缩小、漫游、全景显示、选择等图形基本操作功能;鹰眼即图形的鸟瞰图;测量功能,是指通过交互操作对地图数据的周长、面积进行量算。(2)空间数据查询:此模块包括两大部分:简单查询,通过在地图显示窗口画线、画矩形、画圆、画多边形查询地图属性数据,通过双击属性数据列表可以快速定位到选择要素;高级查询,包括快速查询、属性查询、空间查询,快速查询是一种简单的属性查询,可以查询某一图层的一个属性值定位要素;属性查询是指通过属性查询语句查找符合属性条件的要素;空间查询是指通过设置空间查询条件来查找符合条件的要素。(3)空间数据网络分析:此模块有三种网络分析方法:最短路径分析、最邻近设施分析和服务区分析。网络分析是基于网络数据的,通过设置站点、障碍点以及成本属性等得到路径或区域。(4)地图输出模块:可以将地图显示窗口中当前显示的地图以.jpg格式输出,随时对分析得到的结果存储。3.2.4基础数据库设计根据交通图的特点,在ArcGIS的FileGeodatabase中建立数据库并进行管理,其性能高于Personal Geodatabase11,数据库逻辑设计如图4所示。GeoDatabasePersonalGeodatabaseFileGeodatabaseArc SDEGeodatabase矢量数据网络数据Shapefile数据交通网络数据图4 数据库逻辑设计Fig.4 Database logical design3.3 系统实现系统实现的主要任务就是将功能设计产生的每一模块用程序予以实现,并检验程序的正确性。本系统的开发主要是根据在系统设计阶段划分出的各个功能模块,采用结构化程序设计方法进行代码的编写工作。在开发语言的选择上,本系统采用Visual C#作为开发语言。3.3.1用户主界面的实现用户界面是保证系统正常运行的一个重要因素。系统界面是人机交互的接口,包括用户如何向系统提出请求以及系统如何向用户反馈信息。一个设计良好的用户界面使得用户更容易掌握系统,从而增加对系统的接受程度。本智能交通系统界面设计遵循以下原则:(1)采用面向用户的思想,使用中文菜单,操作简便并易于使用,并能充分体现功能的直观性和方便性。(2)采用基于Arc Engine的MapControl Application风格的用户界面,使用窗口、菜单、图标、对话框等图形符号操作系统来完成系统应用,实现系统与用户的交互性。(3)菜单、窗口、工具、按钮、等保持一致,便于用户的交互性。本智能交通系统主界面包括六个部分:菜单栏、工具栏、状态栏、图层控制窗口、地图显示窗口和鹰眼窗口。如图5所示。状态栏鹰眼窗口地图显示窗口图层控制窗口菜单栏和工具栏图5 系统界面布局Fig.5 System interface layout3.3.2地图基本操作功能的实现(1)地图数据的加载和显示通过Arc Engine组件封装的方法实现,只需设置控件之间的关联。(2)地图操作功能实现通过调用Arc Engine集成方法实现,包括放大、缩小、漫游等,部分代码如下所示。#region 放大功能private void ZoomInButton_Click(object sender, EventArgs e) ICommand pCommand; pCommand = new ESRI.ArcGIS.Controls.ControlsMapZoomInToolClass(); pCommand.OnCreate(MainaxMapControl.Object); MainaxMapControl.CurrentTool = pCommand as ITool; #endregion3.3.3查询功能的实现(1)简单查询功能实现实现该功能用到的主要接口有ISpatialFilter、IQueryFilter、IFeatureLayer、IFeature、IFeatureCursor,通过IFeatureCursor获取满足ISpatialFilter、IQueryFilter设置的空间过滤对象和查询条件的IFeature集来对空间数据进行查询和检索并通过dataGridView控件加载查询结果,简单查询运行结果如图6、图7所示。部分代码如下所示。/ / 获取查询要素 / / 要素图层 / 图形范围参数 / 符合条件要素集合 private List GetSearchFeartures(IFeatureLayer pFeatureLayer, IGeometry pGeometry) try List pList = new List(); /创建SpatialFilter空间过滤对象 ISpatialFilter pSpatialFilter = new SpatialFilterClass(); IQueryFilter pQueryFilter = pSpatialFilter as ISpatialFilter; /设置过滤器的Geometry pSpatialFilter.Geometry = pGeometry; pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects; /获取FeatureCursor游标 IFeatureCursor pFeatureCursor = pFeatureLayer.Search(pQueryFilter, false); /遍历FeatureCursor IFeature pFeature = pFeatureCursor.NextFeature(); while (pFeature != null) IMap pMap = this.MainMap.Map; pMap.SelectFeature(pFeatureLayer, pFeature) /获取要素对象 pList.Add(pFeature); pFeature = pFeatureCursor.NextFeature(); this.MainMap.Refresh(); System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor); return pList; catch (Exception Err) MessageBox.Show(Err.Message, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information); return null; #region 设置主Mapcontrol的MouseDown事件 private void MainMap_OnMouseDown(object sender, AxESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e) #region 查询 if (MainMap.CurrentTool != null) bSearch = false; if (bSearch) boBox1.Visible = false; SetMousePoint(); /获取画定范围的Geometry IGeometry pGeometry = null; switch (Model) case 1: pGeometry = this.MainMap.TrackCircle(); break; case 2: pGeometry = this.MainMap.TrackPolygon(); break; case 3: pGeometry = this.MainMap.TrackRectangle(); break; case 4: pGeometry = this.MainMap.TrackLine(); break; default: return; IFeatureLayer pFeatureLayer = this.MainMap.get_Layer(boBox1.SelectedIndex) as IFeatureLayer; /执行查询获取符合条件的要素 List pList = this.GetSearchFeartures(pFeatureLayer, pGeometry); Attribute pAttribute = new Attribute(boBox1.SelectedIndex, this); /设置信息显示窗体中DataGridView的属性 /设置行数Plist.Count+1包括字段名那一行即表头 pAttribute.dataGridView1.RowCount = pList.Count + 1; /设置边界风格 pAttribute.dataGridView1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Sunken; /设置列数 pAttribute.dataGridView1.ColumnCount = pList0.Fields.FieldCount; /遍历第一个要素的字段用于给列头赋值(字段的名称) for (int m = 0; m pList0.Fields.FieldCount; m+) pAttribute.dataGridView1.Columnsm.HeaderText = pList0.Fields.get_Field(m).AliasName; /遍历要素 for (int i = 0; i pList.Count; i+) IFeature pFeature = pListi; for (int j = 0; j pFeature.Fields.FieldCount; j+) /填充字段值 pAttribute.dataGridView1j, i.Value = pFeature.get_Value(j).ToString(); pAttribute.Show(); this.MainMap.MousePointer = esriControlsMousePointer.esriPointerDefault; bSearch = false; #endregion #endregion图6 圆形查询Fig.6 Circular query图7 属性信息显示窗口Fig.7 Attribute information display window(2)属性查询功能的实现实现该功能用到的主要接口有:IQueryFilter、IFeatureLayer、IFeature 、IFeatureSelection、IEnumFeature、IEnvelope,通过IEnumFeature获取满足IFeatureSelection查询条件的IFeature集来对空间数据进行查询和检索并通过IEnvelope获取IFeature集的几何中心进行定位,属性查询运行结果如图8、图9所示。部分代码如下所示。#region 执行属性查询private void PerformAttributeSelect() try IQueryFilter pQueryFilter = new QueryFilterClass(); IFeatureLayer pFeatureLayer; pQueryFilter.WhereClause = textBoxWhereClause.Text; pFeatureLayer = GetLayerByName(comboBoxLayers.SelectedItem.ToString() as IFeatureLayer; pFeatureSelection = pFeatureLayer as IFeatureSelection; int iSelectedFeaturesCount = pFeatureSelection.SelectionSet.Count; pFeatureSelection.SelectFeatures(pQueryFilter, selectmethod, false);/执行查询 /如果本次查询后,查询的结果数目没有改变,则认为本次查询没有产生新的结果 if (pFeatureSelection.SelectionSet.Count = iSelectedFeaturesCount | pFeatureSelection.SelectionSet.Count = 0) MessageBox.Show(没有符合本次查询条件的结果!); return; /如果复选框被选中,则定位到选择结果 if (checkBoxZoomtoSelected.Checked = true) IEnumFeature pEnumFeature = MainAxMapControl.Map.FeatureSelection as IEnumFeature; IFeature pFeature = pEnumFeature.Next(); IEnvelope pEnvelope = new EnvelopeClass(); while (pFeature != null) pEnvelope.Union(pFeature.Extent); pFeature = pEnumFeature.Next(); MainAxMapControl.ActiveView.Extent = pEnvelope; MainAxMapControl.ActiveView.Refresh(); else MainAxMapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null); catch (Exception ex) MessageBox.Show(您的查询语句可能有误,请检查 | + ex.Message); return; #endregion图8 属性信息查询窗口Fig.8 Attribute information query window图9 属性信息查询结果Fig.9 Attribute information query result(3)空间查询功能的实现实现该功能用到的主要接口有IFeatureLayer、IFeatureSelection、ISpatialFilter、IEnumFeature、IEnvelope,通过IFeatureSelection的SelectFeatures方法获取IFeature集并通过IEnvelope进行定位,空间查询运行结果如图10、图11所示。部分代码如下所示。#region 执行空间查询private void PerformLocationQuery(ISpatialFilter pSpatialFilter) try string strLayerName; IFeatureLayer pFeatureLayer; IFeatureSelection pFeatureSelection;/用来记录查询的结果 foreach (object itemChecked in checkedListBoxFeaturesLayer1.CheckedItems) /对于每一个选中的层都执行查询,结果合并 strLayerName = itemChecked.ToString(); /待查询的layer pFeatureLayer = GetLayerbyName(strLayerName) as IFeatureLayer; pFeatureSelection = pFeatureLayer as IFeatureSelection; pFeatureSelection.SelectFeatures(pSpatialFilter, esriSelectionResultEnum.esriSelectionResultAdd, false);/待选的层可能不止一个通过循环依次查询每个层,把结果add起来 /把结果显示出来 MainAxMapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null); catch (Exception ex) MessageBox.Show(生成查询结果出错!请检查 | + ex.Message); return; #endregion图10 空间查询窗口Fig.10 Spatial query window 图11 空间查询结果Fig.11 Spatial query result3.3.4网络分析功能的实现本系统实现了网络分析中的最短路径分析、最邻近设施分析和服务区分析,此处以最短路径分析为例说明网络分析的具体实现过程。实现最短路径分析用到的主要接口是INAContext,最短路径分析实现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论