GIS软件工程实习报告(最短路径分析)
- 格式:docx
- 大小:580.74 KB
- 文档页数:27
中国矿业大学银川学院《GIS软件应用》实习报告实验地点: T2-416系部: 矿业工程专业班级: 测绘工程姓名: **********学号: ****************(共18页)1. 前言1.1 实习目的与要1.1.1 实习目的通过这次实习,使我们了解地理信息系统的基本原理、基本方法;掌握常用GIS软件的基本操作和空间分析各功能。
了解地理信息系统的基本概念、学科的基本特征与发展趋势;了解基于VB的二次应用进行GIS设计的方法。
1.1.2 实习要求1、掌握ArcMap的基本操作、简单要素查询与属性维护的方法;2、掌握栅格数据、矢量数据的生成和空间分析的方法;3、掌握地形分析、网络分析的方法;4、掌握空间数据编辑、维护的方法;5、掌握投影变换、坐标校正的方法;6、掌握数据库设计、转换的方法;7、掌握要素符号设计、要素分类显示的方法;8、掌握基于网络的设施服务分析及复杂地形中的选址等综合应用的方法1.2 实习概况1.2.1 实习项目(说明时间、地点、项目名称等)项目1 ArcMap基本操作与属性维护项目二-1 栅格数据的生成和分析项目二-2 多边形叠合与泰森多边形应用项目三地表模型的生成项目四工程中的土方与纵坡项目五最短路径、最近设施项目六点、线、多边形要素输入和编辑项目七投影变换、坐标校正项目八、九专题地图中要素分类与符号设计项目十通过转换CAD图形建立数据库1.2.2 完成情况(说明完成的各个项目的情况)2015年12月27日星期日。
在T2-416按照给定的步骤完成:项目1 ArcMap基本操作与属性维护2015年12月28日星期一。
在T2-416按照给定的步骤完成:项目二-1 栅格数据的生成和分析项目二-2 多边形叠合与泰森多边形应用2015年12月29日星期二。
在T2-416按照给定的步骤完成:项目三地表模型的生成项目四工程中的土方与纵坡2015年12月30日星期三。
在T2-416按照给定的步骤完成:项目四工程中的土方与纵坡项目五最短路径、最近设施项目六点、线、多边形要素输入和编辑项目七投影变换、坐标校正2015年12月31日星期四。
GIS实验报告一、实验目的本次 GIS 实验旨在深入了解地理信息系统(GIS)的基本原理和操作方法,通过实际操作和数据分析,掌握 GIS 在地理数据处理、空间分析和地图制作等方面的应用,提高对地理空间信息的理解和处理能力。
二、实验环境本次实验使用的软件为 ArcGIS 106,操作系统为 Windows 10。
实验数据包括地形数据、土地利用数据、道路数据等。
三、实验内容1、数据导入与预处理首先,将实验所需的各类数据导入 ArcGIS 中。
在导入过程中,需要注意数据格式的兼容性,并对数据进行必要的预处理,如坐标系的定义、数据的裁剪和拼接等。
通过这些操作,确保数据的准确性和完整性,为后续的分析和处理奠定基础。
2、空间数据编辑在 ArcGIS 中,使用编辑工具对空间数据进行修改和完善。
例如,对道路数据进行线段的添加、删除和修改,以使其更符合实际情况。
同时,对土地利用数据中的错误分类进行纠正,保证数据的质量。
3、空间分析运用 ArcGIS 的空间分析功能,进行缓冲区分析、叠加分析和网络分析等。
(1)缓冲区分析:以道路中心线为基础,创建一定宽度的缓冲区,用于评估道路对周边环境的影响范围。
(2)叠加分析:将土地利用数据与地形数据进行叠加,分析不同地形条件下的土地利用类型分布情况。
(3)网络分析:通过构建道路网络模型,计算最短路径、服务范围等,为交通规划和资源配送提供决策支持。
4、地图制作与输出根据分析结果,制作专题地图。
在地图制作过程中,合理选择地图符号、颜色和标注,以清晰直观地展示地理信息。
同时,添加图例、比例尺和指北针等地图要素,增强地图的可读性。
最后,将制作好的地图以多种格式输出,如图片格式(JPEG、PNG 等)和 PDF 格式,以便于分享和使用。
四、实验结果1、数据预处理后,各类数据的坐标系统一,数据完整性得到保障,为后续分析提供了可靠的数据基础。
2、空间数据编辑使得道路和土地利用数据更加准确和合理,提高了数据的质量。
实验一、矢量数据的空间分析练习1:市区择房分析操作步骤:首先打开ArcMap,打开E:\Chp7\Ex1\city。
mxd文件将文件加入到窗口中来,这时就将五个文件全部加入其中来了,如下图所示;(1)主干道噪音缓冲区的建立1)选择交通网络图层(network。
shp),打开图层的属性表,在右下角的打开option选项中,在菜单中选择select by attributes,在select by attributes对话框中,左边选择“TYPE”双击将其添加到对话框下面SQL算式表中,点中间“=",再单击Get unique values 将TYPE的全部属性值加入上面的列表框中,然后选择“ST”属性值,双击添加到SQL算式表中,单击APPL Y按钮,就将市区的主要道路选择出来了2)点击缓冲区按钮对选择的主干道进行缓冲区的建立,首先在缓冲区对象图层选择交通网络图层(network),然后将下面的Use Only the Selected Feature(仅对选择的要素进行分析)选中,单击next;3)确定尺寸单位,选择第一种缓冲区建立方法(At a specified distance),指定缓冲区半径为200米,单击next;4)由于不是分别考虑一个图层的各个不同的要素的目的,所以我们在这里选择的是第一种边界设定类型(Dissolve barriers between),然后指定好缓冲区文件的存放路径和文件名后,单击OK,完成主干道噪音污染缓冲区的建立。
(2)商业中心影响范围建立1)建立大型商业中心的影响范围。
首先点击缓冲区按钮,在缓冲区对象图层选择商业中心分布图层(network),单击next;2)确定尺寸单位,选择第一种缓冲区建立方法,以其属性字段YUZHI为缓冲区半径,单击next;后,单击OK,完成商业中心影响范围缓冲区的建立.(3)名牌高中的影响范围建立1)点击缓冲区按钮,在缓冲区对象图层选择名牌高中分布图层(school),单击next; 2)确定尺寸单位米,选择第一种缓冲区建立方法,指定750米作为半径,设置好后,单击next;后,单机OK,完成名牌高中的覆盖范围缓冲区的建立。
GIS实习报告在大学的学习生涯中,实习是一个重要的环节,它能够将我们在课堂上学到的理论知识与实际应用相结合,让我们更深入地理解专业知识,并为未来的职业发展打下坚实的基础。
在实习时间,我有幸在实习单位名称进行了为期实习时长的 GIS(地理信息系统)实习。
通过这次实习,我不仅学到了许多实用的技能和知识,还对 GIS 行业有了更全面的认识和理解。
一、实习单位及工作内容介绍我实习的单位实习单位名称是一家在地理信息领域具有丰富经验和卓越技术实力的公司。
公司的业务涵盖了城市规划、国土资源管理、环境保护、交通运输等多个领域,为客户提供高质量的地理信息数据处理、系统开发和技术咨询服务。
在实习期间,我主要参与了以下几个项目:1、城市地下管线信息系统建设这个项目旨在建立一个完整、准确的城市地下管线数据库,并开发相应的管理系统,以实现对地下管线的信息化管理。
我的工作是协助项目团队进行地下管线数据的采集、整理和录入,同时参与系统的测试和优化工作。
2、土地利用现状调查与分析该项目需要对某地区的土地利用情况进行全面调查,通过遥感影像解译和实地调查相结合的方式,获取土地利用现状数据,并进行分析和评价。
我在项目中负责遥感影像的处理和解译工作,以及相关数据的统计和分析。
3、交通规划辅助决策系统开发这个项目旨在开发一个基于 GIS 的交通规划辅助决策系统,为交通规划部门提供科学的决策支持。
我参与了系统需求分析和设计工作,以及部分功能模块的开发和测试。
二、实习收获与体会1、专业技能的提升通过参与实际项目,我熟练掌握了多种 GIS 软件的操作和应用,如ArcGIS、SuperMap 等。
我学会了如何进行地理数据的采集、编辑、处理和分析,如何制作专题地图和空间分析报告,以及如何开发简单的GIS 应用系统。
这些技能的提升将对我今后的学习和工作产生积极的影响。
2、团队协作能力的增强在实习过程中,我与项目团队的成员密切合作,共同完成各项任务。
MAPGIS实习报告
我于2021年7月开始在MAPGIS公司实习,实习期为两个月。
在这段时间里,我主要负责了地理信息系统(GIS)的开发、数据处理和技术支持工作。
首先,我学习了基本的GIS概念和应用。
我了解了GIS的工作流程,包括数据收集、数据处理、数据分析和地图制作。
我学习了如何使用ArcGIS Pro和QGIS等GIS软件进行数据处理和地图制作,并掌握了地图投影、坐标系、数据格式转换等GIS操作技巧。
其次,我参与了一个GIS应用的开发项目。
这个项目是为当地政府开发一个在线地图平台,方便市民查询公共设施、公共交通和各类地理信息。
我主要负责了前端界面的开发和数据可视化的实现。
我使用了WebGIS开发框架,如OpenLayers和Leaflet,实现了地图的显示、数据查询、缩放和平移等功能。
我还使用了D3.js数据可视化库将统计数据展示在地图上,增强了地图交互性和用户体验。
最后,我还提供了技术支持服务。
我解答了客户和同事们对GIS软件和数据处理的疑问,并对他们提出的问题进行了解答和调试。
同时,我了解了一些GIS工作中的实际问题和挑战,例如数据质量、精度问题和大数据管理等。
这些经历让我更好地理解了GIS应用的实际价值和发展方向。
总的来说,这次实习让我学到了很多GIS技术和应用方面的知识,同时也锻炼了我的技术能力和应变能力。
我感谢MAPGIS公司为我提供了这个机会,并期待能继续在GIS领域深入学习和发展。
gis地理信息系统实训报告一、实训目的地理信息系统(GIS)作为一门融合了地理学、计算机科学和测绘学等多学科知识的交叉学科,具有强大的数据处理、空间分析和可视化能力。
本次 GIS 地理信息系统实训的主要目的是通过实际操作和项目实践,深入了解 GIS 的基本原理和应用,熟练掌握常用 GIS 软件的操作技能,提高我们对地理空间数据的处理和分析能力,培养解决实际地理问题的思维和方法。
二、实训内容(一)GIS 软件的学习与操作在实训过程中,我们首先学习了一款主流的 GIS 软件,如 ArcGIS 或 SuperMap 等。
通过软件的安装和界面熟悉,逐步掌握了数据的导入与导出、地图的创建与编辑、图层的管理与操作等基本功能。
例如,在数据导入方面,我们学会了如何将不同格式的数据(如Shapefile、CSV 等)成功加载到软件中,并进行数据格式的转换和预处理。
在地图编辑过程中,我们能够运用绘图工具绘制点、线、面等地理要素,并对其属性进行编辑和赋值。
(二)地理空间数据的处理与分析地理空间数据是 GIS 应用的基础,因此数据的处理和分析是实训的重要内容。
我们学习了数据的投影变换、坐标转换、数据裁剪与合并等操作,以确保数据的准确性和一致性。
同时,还掌握了空间查询与分析的方法,如缓冲区分析、叠加分析、网络分析等。
通过这些分析方法,可以获取地理要素之间的空间关系和相互影响,为决策提供有力的支持。
例如,在进行城市规划时,利用缓冲区分析可以确定学校、医院等公共设施的服务范围;通过叠加分析可以判断不同土地利用类型的分布情况,为合理规划土地资源提供依据。
(三)地图制作与可视化表达地图是 GIS 成果展示的重要形式,因此学会制作精美、准确的地图是必不可少的技能。
在实训中,我们学习了地图符号的设计、地图布局的调整、图例的制作以及地图的输出等内容。
通过运用不同的颜色、符号和标注,将地理数据以直观、清晰的方式展现出来,使地图具有良好的可读性和美观性。
一、实习背景随着科技的飞速发展,地理信息系统(GIS)技术在各行各业的应用日益广泛。
为了更好地了解GIS软件在实际工作中的应用,提高自己的专业技能,我于20xx年x月至20xx年x月在XX公司进行了为期一个月的GIS软件实习。
二、实习目的1. 了解GIS软件的基本原理和功能,掌握常用的GIS软件操作。
2. 学习GIS数据采集、处理和分析的方法。
3. 培养实际应用GIS技术解决实际问题的能力。
4. 提高自己的团队协作和沟通能力。
三、实习内容1. GIS软件基本操作实习期间,我主要学习了ArcGIS软件的基本操作。
通过老师的讲解和实际操作,我掌握了以下内容:(1)ArcMap的基本界面和功能:地图创建、图层管理、地图符号化、坐标系统设置等。
(2)ArcToolbox的基本操作:空间分析、数据转换、数据管理等功能。
(3)ArcGIS Pro的高级功能:三维可视化、网络分析、空间统计等。
2. GIS数据采集与处理在实习过程中,我学习了GIS数据的采集与处理方法,包括:(1)野外数据采集:使用GPS设备采集地面控制点,进行地形测量等。
(2)遥感数据采集:利用遥感影像进行地表覆盖分类、土地调查等。
(3)数据处理:利用ArcGIS软件对采集到的数据进行编辑、拓扑检查、空间分析等。
3. GIS数据分析与应用实习期间,我参与了以下GIS数据分析与应用项目:(1)XX市土地利用现状调查:利用遥感影像和实地调查数据,分析土地利用现状,为土地利用规划提供依据。
(2)XX市交通网络分析:利用ArcGIS Pro进行网络分析,评估道路通行能力,为交通规划提供参考。
(3)XX市生态环境评价:利用GIS空间分析,评估生态环境质量,为环境保护提供依据。
4. 团队协作与沟通在实习过程中,我与团队成员密切配合,共同完成项目。
通过与同事的交流,我学会了如何更好地与他人沟通、协作,提高了自己的团队协作能力。
四、实习收获1. 专业知识方面:通过实习,我对GIS软件有了更深入的了解,掌握了ArcGIS软件的基本操作和高级功能,学习了GIS数据采集、处理和分析的方法,提高了自己的专业技能。
实验二网络分析实习报告一、实验目的网络分析是GIS空间分析的重要功能分。
有两类网络,一为道路(交通)网络,一为实体网络(比如,河流、排水管道、电力网络)。
此实验主要涉及道路网络分析,主要内容包括:●最佳路径分析,如:找出两地通达的最佳路径。
●最近服务设施分析,如:引导最近的救护车到事故地点。
●服务区域分析,如:确定公共设施(医院)的服务区域。
通过对本实习的学习,应达到以下几个目的:(1)加深对网络分析基本原理、方法的认识;(2)熟练掌握ARCGIS下进行道路网络分析的技术方法。
(3)结合实际、掌握利用网络分析方法解决地学空间分析问题的能力。
二、实验准备软件准备:ArcMap,要求有网络分析扩展模块的许可授权数据准备:Shape文件创建网络数据集(高速公路:Highways, 主要街道:Major Streets, 公园:Parks,湖泊:Lakes,街道:Streets)Geodatabase网络数据集:NetworkAnalysis.mdb:包含:街道图层:Streets仓库图层:Warehouses商店图层:Stores在ArcMap中加载启用NetWorkAnylyst网络分析模块:执行菜单命令[工具Tools]>>[Extensions], 在[Extensions]对话框中点击[NetworkAnalyst] 启用网络分析模块,即装入Network Analyst空间分析扩展模块。
道路网络分析步骤1. 创建分析图层2. 添加网络位置3. 设置分析选项4. 执行分析过程显示分析结果三、实验内容及步骤(一) 最佳路径分析根据给定的停靠点,查找最佳路径(最省时的线路)1.1 数据准备1.2 创建路径分析图层1.3 添加停靠点1.4 设置分析选项1.5 运行最佳路径分析得到分析结果1.6 设置路障(barrier)(二) 最近服务设施分析(查找最近的消防队)在这个实验中,当某个位置发生火灾时将找到距事故最近的四个消防队,并且可以进一步找到能够最快到达事故地点的路线.2.1 数据准备2.2 创建“最近服务设施分析图层”2.3 添加“服务设施”图层2.4 设定火灾事故发生地点2.5 设置分析选项四.实验感悟实验可以提高我的实践能力,我觉得我应该加强实验。
目录一、内容及要求说明 (1)1.1 内容介绍 (1)1.2 要求说明 (1)二、建立网络模型及网络分析 (1)2.1 构建网络要素集 (1)2.2 网络分析 (3)三、实习总结 (10)一、内容及要求说明1.1 内容介绍本课程实习主要是熟悉任意一个GIS平台,掌握建立网络模型的方法,熟悉GIS的网络分析(或路径分析功能)。
1.2 要求说明数据来源:全国主要道路数据、MapGIS或ArcGIS示范数据等其他来源。
根据数据建立网络要素集,在模型基础上进行网络分析,它包括路径分析、服务区分析、最近设施点分析、OD成本矩阵分析、多路径配送分析和位置分配分析等。
本次实习主要介绍路劲分析、服务区分析和最近设施点分析。
二、建立网络模型及网络分析网络分析是GIS空间分析的重要功能。
进行网络分析之前需要针对基础数据建立网络要素集,再对网络要素集进行网络分析。
2.1 构建网络要素集数据位于C:\Users\Administrator\Desktop\GIS软件工程网络分析,具体构建过程如下。
(1)启动ArcCatalog,建立文件夹连接,如图1所示;图1. 建立文件夹连接图2. 扩展模型对话框(2)点击菜单栏的【自定义】->【扩展模块】,打开扩展模型对话框,勾选Network Analyst模块,过程如图2所示;(3)文件夹连接成功后,新建【个人地理数据库】或【文件地理数据库】,命名为ecityGDB.gdb,过程如图3;(4)建立地理数据库之后,新建【要素数据集】,命名为ecityDataSet,如图4所示;建立的投影坐标选择为WGS-84,过程如图5所示,其他步骤默认即可;(5)创建的要素数据集此时没有数据,需要导入全国主要道路网数据,选择要素为全国的主要道路网数据,命名新生成的要素数据为ChinaRoad,过程如图6所示;图3. 新建文件数据库 图4. 新建要素数据集图5. 投影坐标选择 图6. 导入要素数据图7. 连通性选择 图8. 高程建模(6)依据导入的要素数据,进行【网络要素集】的新建,建立过程复杂,名称为ecityDataSet_ND,选择参与到网络数据集中的要素类为ChinaRoad,连通性选择策略选为【端点】,如图7;利用高程进行建模时【字段】选为GBCODE,如图8所示;在【为网络数据集指定属性】步骤时添加“RoadLength”属性,在“添加新属性”对话框选择类型为“成本”,单位为“米”,数据精度为“双精度”,确认后关闭该对话框,如图9所示;完成后出现新建的属性,双击Roadlength,弹出“赋值器”对话框,选择该属性的【类型】属性为“字段”,【值】为“LENGTH”,如图10所示;建立网络要素集,效果如图11所示。
gis专业实习报告gis专业实习报告三篇随着社会不断地进步,报告使用的频率越来越高,报告成为了一种新兴产业。
那么一般报告是怎么写的呢?下面是小编收集整理的gis 专业实习报告3篇,希望对大家有所帮助。
gis专业实习报告篇1GIS 实习报告一、实习目标强化ArcGIS的各种功能意义,掌握ArcGIS软件的使用和应用;理解ArcGIS在GIS技术中的作用,进一步提高学生分析问题、解决问题的能力,增强实践技能,并培养学生勇于动手、勤于动手、热爱本专业的思想。
在ArcGIS系统中,ArcMap、ArcCatalog与ArcT oolBox是ArcGIS最核心的三大基础模块。
其中尤其以ArcMap最为重要。
ArcMap作为构成ArcInfo桌面平台的一个重要的组成部分,它把传统的空间数据编辑、查询、显示、分析、报表和制图等GIS功能集成到一个简单的可扩展应用框架上,它在ArcGIS中承担以“地图为核心”的应用。
ArcMap既具有ArcView的易用性,有拥有ArcInfo的全部功能。
此外,ArcMap包含一个复杂的专业制图和编辑系统,它既是一个面向对象的编辑器,又是一个完整的数据报表生成器。
要使学生更加深刻地理解和巩固基本理论知识, 掌握基本技能和动手操作能力, 提高综合观察分析问题的能力, 获得理想的教学效果, 必须重视实习环节实习是ArcGIS课程教学中不可或缺的重要环节, 直接关系着教学的成败, 具有举足轻重的地位。
GIS实习采用上机与讲座相结合的方法进行。
二、实习要求要求学生在实习期间,做好实习日记、以及通过网络搜索一些有用资料。
实习结束时,写出实习报告并有实习作品。
实习报告内容详略得当,重点突出。
实习结束后,需要提交实习的最终结果,指导老师将根据学生的表现,对所有学生提交的作品进行审核、答辩,当场给出实习成绩。
三、实习内容本次实习要求每位同学完成以下任务:(一)通过网络上的搜索引擎,获取ArcGIS的发展现状与趋势、常用地图软件的功能、地图制图的流程等知识,并列举出至少十个与地图知识关联密切的网站地址。
AE开发之基于几何网络的最短路径分析1、实习目的本次实习目的在于熟练掌握ArcGIS Engine开发工具并能够通过C#语言在VS2010开发环境中完成查询几何网络的最短路径分析的功能。
2、实习时间2015年5月23日星期六3、实习内容3.1实验环境操作系统:Win dows 2007二次开发平台:VS 2010开发环境、ArcGIS Desktop10.0、AE开发组件3.2实验任务完成基于几何网络分析的最短路径查询功能,即实现通过在几何网络地图中指定起始点,能够查询经过起始点的最短路线,并能够通过缩放功能在地图窗口居中显示。
3.3实验步骤331新建项目选择文件新建项目,如图选择项目类型中Visual C#,再选择Win dows Application ,记为“ FindShortPath ”,点击确定。
Vi-5.u-ai BaskVtsual C?丄VTiual C#Wnd OWE Wet WPF.ES8®VtsuaJ C#思于宙ata育wirdow琵体泗户畀酝应用程序的:E目v^ ual aArcGJS CloudReporiEjng SharePoint Silwirliglhr WCFVkiuJ C#VrtualC# Fi ndShortP firth]ffiHCL):d:\doicurnervt或yi翼Idl studig 201D\Pr-pjcct5■翩WE3S3T绘兴方宝宕粗⑷:FindShortPisthWindow敷迪用邕了WPF窗览H应用呈甲WindoMrs 觀男WPF用户邮注WorkflowWPF自走:込陛ft黑Vkud C#*曲^方妄缠目云口"⑹•••332添加控件od rjdShDrtPjlh.-^n - MEkvnc^r Viuul-ME.i IWQ QIQ^l -adJBl Hltl ISUMl BfllAl IKlOl£WFl 勺RilN 』■口|W) ■场;F3.3.3控件绑定因为添加的控件只是单独存在,但是程序需要各控件间协同工作,因此要进 行控件绑定.3 RndUiprtPfltijaiA df 』IVc^pdTiifll!J n n^lirtMCJWCB W HndrMa^flaiqrMr.-EiP ijl Errt 呼*rtyt b *枫 J 卫曲㈣ dl 5uc« Ji 吟 Mg 丄 口R EFE L E .W F^nnLa^gnr 住f 魁 FormLj^iu切疥E ・fE ・EXE白 Mu PHmlndflAstxi^frdl A-ln^crdNar din atu 直 ncJ 利X £4 札fnEjuDwfaui^BH : JxTDC^irlJ-d IAmCilS LD J O FngriH Tunk/rCorfa 口IIS iCuO Enitii magag ■加jiSJMaipCArril'Oll(ilEzlid J334创建几何网络1.在ArcCataLog 中新建个人地理数据库一“甘地的个人地理数据库”,然后 新建要素数据集“ road ”,接着,鼠标右键选择要素数据集“ road ”,选择“导入 要素类”,导入需要创建几何网络的要素类 “主要公路”,输出要素类的名字改为 “road ”,如下图所示:2.鼠标右键选择要素数据集“ road ”,选择新建“几何网络”,贝U 出现“新建 几何网络”对话框,作如下图所示的一系列设置,最终得到几何网络“road Net ”。
云南.广西1斷龍如地酸枣列恥(j3ca_czcinrjpts.shp 应中 3B#.5hp 遛甲国嘶界月hp.画申西刻注・hp凹主甕耐hp 曰主豪旦蛰曲p且示沁主妥埜豁.出口已到也诰过歸。
k 庇NvAC#+.1♦)IftittaSC. \1T X «TS \JL^L ui ttziHy品J 轶甲血放攜县畀* L»b*r E 投窮) '申皿■:彌芒日*椿出事;fr 晳湖南贵州:U 凹福建 广东夕筋 香港.竽;e72fi学丘□■iSi 认工也目录“於咲星旳〒也至此,得到几何网络“ road_Net”,如下图所示:0 riwiMTupjnud 1- ArcMap - JUrlrha宜血聊H E U 凹柱im 补如酸icq <<a^®:ui •土:亦口 ■口㈣"MKi335代码实现最短路径分析① 设置 ToolStriplT 甘坦一实习:Xvf c n②添加代码private lActiveView m 」pActiveView;private IMap m_ipMap;〃 地图控件中地图 private IGraphicsCo ntai ner pGC;〃 图形对象private bool clicked = false; int clickedco unt = 0;private double m_dblPathCost = 0;private IGeometricNetwork m_ipGeometricNetwork; private IPoi ntCollection m 」pPoi nts;〃 输入点集合private IPoi ntToEID m_ipPo in tToEID;private lEnum NetEID m_ipE num NetEID_J un ctio ns;星迪吐出 ^-^44.C4K卜厂2- 4口己 J 吞 才“ 1 M.ata.uu" £ IH 3FS SB S« wd :g 种-"P :4ESS亀.耳 flO ■£» 驚 2 鬥佝|叩祁 ~ -|8U- ■■- irtf-上 *-a BK鬲 rcd»d,FlM_lunciiMc*w g gd■ 0 flttliKprivate lEnum NetEID m_ipE num NetEID_Edges;private IPolyli ne m_ipPolyli ne;private IMapC on trol3 map ctrlMai nMap = null;private void Form1_Load(object sen der, Eve ntArgs e) {// 对象初始化mapctrlMai nMap(IM apCon trol3)this.axM apCon troll.Object;m」pActiveView = axMapCo ntroll.ActiveView;m」pMap = m」pActiveView.FocusMap;clicked = false;pGC = m」pMap as IGraphicsC on tai ner;}private void Findpath_Click(object sender, EventArgs e) {mapctrlMa in Map.Curre ntTool = n ull;// 设置鼠标样式axMapCo ntroll.MousePoi nteresriC on trolsMousePoi nter.esriPoi nterCrosshair;if (axM apCo yerCou nt == 0)return; }m 」pActiveView = axMapCo ntroll.ActiveView; m 」pMap = m 」pActiveView.FocusMap; clicked = false;pGC = m 」pMap as IGraphicsC on tai ner; ILayer ipLayer = m_ipMap.get_Layer(O); IFeatureLayer ipFeatureLayer = ipLayer as IFeatureLayer;IFeatureDatasetipFDSipFeatureLayer.FeatureClass.FeatureDataset;Ope nF eatureDatasetNetwork(ipFDS); clicked = true; clickedco unt = 0;pGC.DeleteAIIEIeme nts();private void SolvePath_Click(object sender, EventArgs e) {axMapCo ntrol1.MousePoi nteresriCo ntrolsMousePoi nter.esriPoi nterDefault;MessageBox.Show (”请先加载几何网络数据!");if (SolvePathGa n("Weight"))〃{先解析路径IPolyline ipPolyResult =PathPolyLine();〃最短路径clicked = false;if (i pPolyResult.lsEmpty){MessageBox.Show(”没有路径可到!!");}else{IRgbColor color = new RgbColorClass(); color.Red = 255;color.Blue = 64;color.Green = 128;Lin eEleme ntClass eleme ntLin eEleme ntClass();ILin eSymbol lin esymbolSimpleLi neSymbolClass();li nesymbol.Color = color as IColor;lin esymbol.Width = 3;eleme nt.Geometry = m_ipPolyli ne;最后返回newneweleme nt.Symbol = lin esymbol;pGC.AddEleme nt(eleme nt, 0);m_ipActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics,null, null);axMapC on trol1.FlashShape(eleme nt.Geometry);MessageBox.Show(”路径经过”+ m」pEnumNetEID_Edges.Count + "条线"+ "\r\n" + "经过节点数为"+m」pEnumNetEID_Junctions.Count + "\r\n" + "路线长度为" + m」pPolyline.Length.ToString("#######.##") + "\r\n"," 几何路径信息");}// 路径缩放功能private void SuoFa ng_Click(object sen der, Eve ntArgs e)if (m_ipPolyli ne == nu II){MessageBox.Show(”当前没有执行路径查询!!!请确认! );else {this.axMapC on trolI.Exte nt = m」pPolyli ne.E nv elope;}}#region 自定义路径查询函数public void OpenF eatureDatasetNetwork(IFeatureDataset FeatureDataset){CloseWorkspace();if (!I nitializeNetworkA ndMap (FeatureDataset))Console.WriteLine(”打开network 出错");}// 关闭工作空间private void CloseWorkspace(){m_ipGeometricNetwork = nu II;m」pPoi nts = n ull;m_ipPo in tToEID = null;m_ipE num NetEID_J un ctio ns = nu II;m_ipE num NetEID_Edges = nu II;m_ipPolyli ne = n ull;// 初始化几何网络和地图bool In itializeNetworkA ndMap(IFeatureDatasetFeatureDataset)IFeatureClassC ontainer ipFeatureClassC ontainer; IFeatureClass ipFeatureClass; IGeoDataset ipGeoDataset; ILayer ipLayer;IFeatureLayer ipFeatureLayer;IEn velope ipE nvelope, ipMaxE nv elope; double dblSearchTol; INetworkCollect ionipNetworkCollecti on = FeatureDatasetas INetworkCollectio n;int count = ipNetworkCollectio n.GeometricNetworkCo unt;m_ipGeometricNetworkipNetworkCollecti on. get_GeometricNetwork(O);INetwork ipNetwork = m_work; if (m 」pMap != n ull)ipFeatureClassC ontainer = m_ipGeometricNetwork asIFeatureClassC ontainer;private // 获取第一个几何网络工作空间count = ipFeatureClassC ontain er.ClassCo unt;for (int i = 0; i < count; i++){ipFeatureClassipFeatureClassC on tai ner.get_Class(i);ipFeatureLayer = new FeatureLayerClass();ipFeatureLayer.FeatureClass = ipFeatureClass;for (int j = 0; j < m_yerCo un t; j++){if (m_ipMap.get_Layer(j).Name.ToUpper()== .ToUpper()){con ti nue;}}}}count = m_yerC ount;ipMaxE nv elope = new Env elopeClass();for (int i = 0; i < count; i++) ipLayer = m_ipMap.get_Layer(i);ipFeatureLayer = ipLayer as IFeatureLayer; ipGeoDataset =ipFeatureLayer as IGeoDataset; ipE nvelope = ipGeoDataset.Exte nt;ipMaxE nv elope.U nio n(ipE nv elope);}m_ipPo in tToEID = new Poi ntToEIDCIass(); m_ipPointToEID.SourceMap = m」pMap;m_ipPo in tToEID.GeometricNetwork m_ipGeometricNetwork;double dbIWidth = ipMaxE nv elope.Width;double dblHeight = ipMaxE nv elope.Height;if (dblWidth > dblHeight)dblSearchTol = dblWidth / 100;elsedblSearchTol = dblHeight / 100;m_ipPo in tToEID.S napTolera nee = dblSearchTol; return true; }// 返回路径的几何体public IPolyline PathPolyLine()IEIDI nfo ipEIDI nfo;IGeometry ipGeometry;if (m_ipPolyli ne != n ull) return m_ipPolyli ne;m_ipPolyli ne = new Polyli neClass();as IGeometryCollectio n ipNewGeometryColl = m_ipPolyli ne IGeometryCollectio n;〃引用传递ISpatialRefere nee ipSpatialRefere neem_ipMap.SpatialRefere nee;IEIDHelper ipEIDHelper = new EIDHelper();ipEIDHelper.GeometricNetwork = m_ipGeometricNetwork;ipEIDHelper.OutputSpatialRefere neeipSpatialRefere nee;ipEIDHelper.Retur nGeometries = true;lEnu mEIDI nfo ipE numEIDI nfoipEIDHelper.CreateE nu mEIDI nfo(m」pEnum NetEID_Edges);int count = ipE nu mEID In fo.Co unt;ipE nu mEIDI nfo.Reset();for (int i = 0; i < count; i++){stri ng[] info;info = new stri ng[co unt];ipEIDI nfo = ipE numEIDInfo.Next();ipGeometry = ipEIDIipNewGeometryColl.AddGeometryCollecti onasnfo.Geometry;(ipGeometry IGeometryCollectio n);in fo[i] = m_i pPolyli ne丄en gth.ToString();}return m_ipPolyli ne;}public bool SolvePathGa n(stri ngWeightName) {try{int intJun cti on UserClassID;int intJun cti on UserID;int intJun cti on UserSubID;int intJun cti on ID;IPo int ipF oundJunctionPoint;ITraceFlowSolverGENipTraceFlowSolver new TraceFlowSolver() as ITraceFlowSolverGEN;if (m_ipGeometricNetwork == nu II) { return false;INetwork ipNetwork = m_work; ipNetSolver.SourceNetwork = ipNetwork;Jun cti onF lag[]pJun cti onF lagList = JunctionF lag[i ntCo un t];for (i nt i = 0; i < in tCo unt; i++) { INetFlagipNetFlag = new JunctionFlag() INetFlag;INetSolver ipNetSolver ipTraceFlowSolver asINetSolver;INetEleme ntsipNetEleme nts = ipNetwork asINetEleme nts; if (m 」pPoi nts == nu II) { MessageBox.Show (” 请选择点!!"); return false; } int points 有值吗? Illiin tCo unt = m 」pPoi nts.Poi ntCou nt;〃 这定义一个边线旗数组最近点*************** IIIIIIIIIInewasm 」pPoi nts.get_Poi nt(i);//m 」pPoi ntToEID.GetNearestJ un ctio n(ipJ un ctio nPoi nt, out intJun cti on ID, out ipF oundJunctionPoin t);ipNetEleme nts.QueryIDs(i ntJ un ctio nID,esriEleme ntType.esriETJ un cti on,out intJunction UserClassID,intJun cti on UserID, out intJunction UserSubID);erClassIDintJun cti on UserClassID;erID = in tJu nctio nUserlD; erSublD = in tJu nctio nUserSublD; IJun cti onF lagpTemp= (IJ un ctio nF lag)(ipNetFlagas IJunctionF lag);pJun cti onF lagList[i] = pTemp; }ipTraceFlowSolver.PutJ un ctio nOrigi ns(refpJunctionF lagList);INetSchema ipNetSchema = ipNetwork as INetSchema; INetWeightipNetWeightipNetSchema.get_WeightByName(WeightName);IPoi ntipJunctionPoint查找输入点的最近的网络点outINetSolverWeights ipNetSolverWeights ipTraceFlowSolver as INetSolverWeights;ipNetSolverWeights.FromToEdgeWeightipNetWeight;// 开始边线的权重ipNetSolverWeights.ToFromEdgeWeightipNetWeight;// 终止边线的权重object]] vaRes = new object[intCount - 1];// 通过findpath得到边线和交汇点的集合ipTraceFlowSolver.Fi ndPath(esriFlowMethod.esriFMC onn ected, esriShortestPathObjF n.esriSPObjF nMin Sum,out m」pEnum NetEID_J un ctio ns, out m_ipE num NetEID_Edges, i ntCou nt - 1, ref vaRes);m_dblPathCost = 0;for (int i = 0; i < vaRes.Le ngth; i++){double m_Va = (double)vaRes[i];m_dblPathCost = m_dblPathCost + m_Va;}m_ipPolyli ne = n ull;return true;catch (Excepti on ex) {Console.WriteLine(ex.Message); return false;}#en dregi onprivate void axMapCo ntrol1_O nM ouseDow n(o bjectsen der, IMap Co ntrolEve nts2_ On MouseDow nEve nt e)if (clicked != true)return;IPoi nt ipNew;if (m」pPoi nts == n ull){m」pPoi nts = new Multipoi nt();ipNewm」pActiveView.Scree nDisplay.DisplayTra nsformatio n.ToMapPoi nt(e.x,e.y);object o = Type.Miss ing;m_ipPoi nts.AddPoi nt(ipNew, ref o, ref o);IEleme nt eleme nt;ITextEleme nt texteleme nt = new TextEleme ntClass();eleme nt = texteleme nt as IEleme nt;clickedco un t++;texteleme nt.Text = clickedcou nt.ToStri ng();eleme nt.Geometrym」pActiveView.Scree nDisplay.DisplayTra nsformatio n.ToMapPoi nt(e.x, e.y);pGC.AddEleme nt(eleme nt, 0);m_ipActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);3.4实验结果在得到的窗口中加载“甘地的个人地理数据库”(在压缩包中有)中的几何网络“ road_Net ”,将几何网络地图加载到地图显示窗口中,如下图所示:即1 —3融圉■Pha宜按豳:|申gdShapefiledDrUE.Nilsfi±服芬器颓攥集•显示粪3? |口1 gyppnrt显打开三]取消亘亘I亘LvnEvent e)点击图标添加起始点,效果如下图最后点击图标 得到最短路径的缩放,效果如下图:这样就完成了最短路径的查询分析和显示的功能4、实习总结在整个过程中所出现的问题较多,体现出个人基础的不足,程序的出错有时 候出现在标点符号以及英文字母的大小写上面等等问题, 这些都说明了不熟练的 问题。