问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求最短路径的分析过程

发布网友 发布时间:2022-04-21 23:53

我来回答

1个回答

热心网友 时间:2023-10-15 16:31

最短路径分析属于ArcGIS的网络分析范畴。而ArcGIS的网络分析分为两类,分别是基于几何网络和网络数据集的网络分析。它们都可以实现最短路径功能。下面先介绍基于几何网络的最短路径分析的实现。以后会陆续介绍基于网络数据集的最短路径分析以及这两种方法的区别。

几何网络是一种特殊的特征要素类,由一系列不同类别的点要素和线要素(可以度量并能图形表达)组成的,可在FeatureDataset下面创建,可进行图形与属性的编辑。包括流向分析和追踪分析两大功能。主要接口是ITraceFlowSolver。我们先在一幅地图上做出一个几何网络才能进行最短路径分析。下面是主要的一些步骤(ArcMap帮助中琐碎的说明有三四十项,被我省略很多):

1、打开ArcCatalog,连接到包含地图的文件夹。

2、在空白处,右键新建一个“Personal GeoDatabase”。

3、在生成的Personal GeoDatabase上右键新建一个feature dataset。

4、双击Personal GeoDatabase进去,找到刚才new出的feature dataset,右键Import导入Feature Class(Single),选择要建立几何网络的图层或者shape文件。

5、然后再右键新建一个Geometric Network,选择从已存在的图元中建立几何网络。

6、打开ArcMap,把刚才建立的“Personal GeoDatabase Feature Class”添加到地图中,这样几何网络就建立好了。

这样我们就建立好一个几何网络了。我们现在要通过编程来实现最短路径,用到的接口主要有INetworkCollection,IGeometricNetwork,IPointToEID,ITraceFlowSolverGEN(它实现了ITraceFlowSolver的接口),INetSchema,IEIDHelper等。主要步骤如下:

1、获取几何网络工作空间

2、定义一个边线旗数组,把离点串最近的网络元素添加进数组

3、设置开始和结束边线的权重

4、进行路径分析

5、得到路径分析的结果

1/9页

上面介绍了用几何网络实现的“最短路径”,这次用网络数据集实现真正的最短路径功能,跟上次一样,先处理下数据。

1、先打开ArcCatalog,连接到目标文件夹,假定该文件下有一个名为road的道路图层。

2、在road图层上右键新建一个网络数据集,并按照其默认设置直至完成。

2/9页

3、打开该地图的工作空间,把刚才新建的网络数据集添加工作空间中。

4、在网络分析菜单中选择新建最近设施点。

3/9页

这时在工作空间里,可以看到多了一个名为“Closest Facility”的图层。它下面还有4个子图层,名字分别为“Facilities”,“Incidents”,“Barriers”,“Routes”。“Facilities”就是设施点图层,也就是目的点,“Incidents”的意思就是出发点,“Barriers”是障碍点,意思就是地图某条道路附近有一个障碍点,如果障碍点与道路距离在容限范围内,则表示此道路不通,“Routes”就是最终的结果。这样我们编程实现最短路径的思路就出现了:

1、添加出发点。

2、添加目的点。

3、生成最优路径,获取结果。

4/9页

这里的添加出发点或者目的点,是往“Facilities”或“Incidents”图层上添加元素。获

取结果也是从“Routes”中获取Polyline。往“Facilities”或“Incidents”图层上添加元素用

到的主要方法是INALocator的QueryLocationByPoint函数,生成路径主要接口是INASolver和它的Solve方法。获取结果是按属性查找,因为“Routes”类其实就是一个图层类,只不

过只是存在于内存。

CMapControlDefault m_map;

IPointCollectionPtr m_ipPointCollection;

ILayerPtr ipLayer = m_map.GetLayer(0); // 网络数据集

INALayerPtr ipNaLayer = ipLayer;

if (NULL == ipNaLayer)

{

return;

}

INAContextPtr ipNaContext;

HRESULT hr = ipNaLayer->get_Context(&ipNaContext);

INAClassLoaderPtr ipNAClassLoader(CLSID_NAClassLoader);

INALocatorPtr ipNALocator = NULL;

hr = ipNaContext->get_Locator(&ipNALocator);

ipNALocator->put_SnapToleranceUnits(esriMeters);

ipNALocator->put_SnapTolerance(200);

ipNaContext;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
奥迪a6l怎么用手机连接音响放歌,我的是华为 奥迪a6l蓝牙连接了,听歌没声音 2009年6月在农业银行办理30万等额本息为10年的商业房贷,7折,现在月供... 存量房贷七折七折政策 ...在农业银行贷款27万,等额本息打七折利率按揭20年,现在的利率每月应还... 我是第一套房,在农业银行不是公积金贷款27万元20年付清利息怎么算法... 在成都交通违章网上怎么办理的 成都违章罚款网上怎么交 成都交通违章罚款在哪里交 成都违章停车可以网上交罚款吗 如何做用户行为路径分析 脸老出油是怎么回事 天气太热脸总是出油,怎么办啊 路径分析的步骤 我的脸上经常出油,就像抹了一层油.怎么解决? 脸上出油量特别大,应该怎么改善? 大富科技(安徽)股份有限公司电话是多少? 深圳沙井英才人力资源怎么样?那里是深渊陷阱! 深圳市石岩镇同富裕工业园的“大富科技” 大富科技的成长历程 深圳沙井镇大富科技工资标准是多少? 大富科技为什么在国家政务服务平台查不到? 300134大富科技是不是创业板 大富科技股票为何表现如此差? 大富科技这只股票怎么样 大富科技股份有限公司,部门搬安徽,要求员工停工... 大富科技这只股票怎么样? 大富科技后市如何? 有谁知道深圳大富科技有限公司怎么样啊?里面的福... 沙井大富科技怎么样?包吃住吗?工资待遇怎么样? 脸上总是出油怎么办? 如何在路径分析中设置多元分类变量 如何对文件路径进行分析的最好方法 脸上总爱出油是怎么回事 如何用Photoshop做分析路径图 脸上老是出油怎么办? 雕刻机路径分析过程中,如何设置毛坯面? 脸上一直出油是怎么回事? 路径分析的最优路径分析方法 为什么脸上总是那么容易出油? 网站分析之如何分析用户的访问转换路径 脸上总是出油是什么原因 gis网络路径分析怎么设置方向 脸上老是出油怎么回事哦? 求助:workbench线性分析时路径如何准确设定 GIS二次开发中怎样实现最短路径分析 软件测试中路径分析法是什么 路径分析的介绍 做路径分析之前必须做什么分析? 路径分析影响因素只选取一个指标可以吗