最短路径求解

【如果看到此博客还没有网络数据集的,请参考第一章的内容,点击我,看目录】

最短路径,是什么最短?时间最短?距离最短?什么距离?路程距离?

考虑到拥堵问题,限速问题,换乘问题,在现实的最短路径远远比计算机中的最短路径要复杂,因为要考虑的因素太多了。

这些因素就叫作最短路径求解过程中的“阻抗”,和电阻阻碍电流类似。

最短路径是后面几个分析类型的基础,只有求得了最短路径,才知道能覆盖多大地方(服务区)、事故点与最近设施的路径怎么走(最近设施)等。

在上一章,就已经有了最简单的路径分析:单一的道路网,阻抗仅仅为公路网的长度。

在这里不讨论最短路径的内部算法,似乎有大佛说过,ESRI是用的Dijkstra算法的变种算法。

最短路径中有什么元素呢?换句话说,最短路径要什么东西才能分析?

途径点、障碍。

最短路径输出了什么?

当然就是最短路径的那条线啊!

输入元素 输出元素

途径点

障碍

最短路径

换成图的形式,就是这样子。

输入必选参数[途径点],可选参数:充当障碍的[点线面],基于连通策略和阻抗,就能计算出最短路径。

什么是障碍呢?例如,某条路正在封闭施工,那施工的那个地方就是障碍,这里是不能通行的,就代表最短路径是不会走过障碍的。

路径分析常用设置

在这里打开网络分析图层的属性窗口

找到分析设置选项卡,就会有如下图:

经常会使用到的设置是:阻抗、限制、方向、交汇点的U形转弯、这几个。

阻抗

很简单,分析的时候经过这条路的花费成本,可以这么简单的理解。可以是时间、平均消耗体力、道路长度等。

限制

限制主要有两种:转弯限制和单行线限制。

有的十字路口会有禁止转向左边或者右边,或者十字路口等红绿灯的时间比较长的情况,这个就是转弯限制。转弯限制怎么来的呢?

当网络数据集中加入了转弯要素类的时候,这个复选列表就可以选择了。有关如何制作转弯要素类,请跳到第四章。

单行线,有的道路只能一个方向走,不能来回走,这也是很常见的。

方向

这个是导航设置。主要设置导航的显示单位和导航的属性(长度或者时间成本)。

交汇点的U形转弯

交汇点,就是线与线相交并且连通的地方。什么是连通?就是这个点的所有道路都能畅通无阻通过这个点。

交汇点可以是线的折点,也可以是两条线的公共交点。

这个点能否U形转弯,换句话,这个交汇点是否能掉头,在这里就有4种选项:

[允许]:在任何交汇点处均允许调头。

[仅在交点和死角处允许]:当两条相邻边恰好相交于交汇点时,禁止掉头。

[仅在死角处允许]:除仅有一条相邻边的交汇点(死角)外,其他交汇点均禁止掉头。

[不允许]

什么地方都不允许掉头。

ps:这里仅仅对交汇点所言,要是在道路上,一般也可以掉头的,除非有中央路障。那这个怎么设置呢?只需设置以下属性:

如果设置了最后一个禁止U形转弯,那么在非交汇点也不能掉头了。

输出Shape类型

有的时候为了节约显示资源,提高显示速度,可以设置为点与点之间的直线:

不过一般最短路径都是看效果的,除非只看导航,否则这个设置一般都默认。

分析示例

如上图,阻抗用的是道路的长度,其余均为默认设置。

在以后,通过添加各种限制条件,如转弯、掉头策略,复杂的阻抗策略,连通性组策略,产生的结果就不同。

ArcGIS 网络分析[2.1] 最短路径的更多相关文章

  1. ArcGIS 网络分析[0] 介绍与博文目录【更新中】

    网络分析是个热点,理论上是属于计算机图形学和数据结构的,GIS以此为基础做出应用. 以下列举本人在学习中遇到的网络分析问题与经验总结. 1. 软件平台及数据准备 平台:Windows 10 操作系统, ...

  2. ArcGIS网络分析之Silverlight客户端最近设施点分析(四)

    原文:ArcGIS网络分析之Silverlight客户端最近设施点分析(四) 在上一篇中说了如何实现最近路径分析,本篇将讨论如何实现最近设施点分析. 最近设施点分析实际上和路径分析有些相识,实现的过程 ...

  3. ArcGIS网络分析之Silverlight客户端路径分析(三)

    原文:ArcGIS网络分析之Silverlight客户端路径分析(三) 首先贴上最终的效果图: a.路径查询 2.最近设施点查询 3.服务区分析 说明: 1.以上的示例使用的数据是随意在ArcMap中 ...

  4. ArcGIS 网络分析[1] 介绍与博文目录【更新中】

    网络分析是个热点,理论上是属于计算机图形学和数据结构的,GIS以此为基础做出应用. 以下列举本人在学习中遇到的网络分析问题与经验总结. 平台:Windows 10操作系统,ArcGIS for Des ...

  5. ArcGIS 网络分析[2] 在ArcMap中使用网络数据集进行五大网络分析[最短路径/服务区/最近设施点/OD成本矩阵/车辆分配]

    上一章花了大篇幅介绍网络数据集的创建,也简单说了下点线的连通性问题. 那么可以试试刀锋不锋利啦! 网络分析呢,ArcGIS提供了5个基本分析类型: 最短路径求解 服务区(服务覆盖范围) 事故突发地的最 ...

  6. ArcGIS 网络分析[2] 利用自定义基础数据创建网络数据集

    前言 似乎除了官方介绍的例子,我还没有在网上见过一篇介绍如何"使用自己的数据"创建"网络数据集"的文章. 有介绍几何网络的,有介绍如何用官方SanFrancis ...

  7. ArcGIS 网络分析[1.2] 利用1.1的线shp创建网络数据集/并简单试验最佳路径

    上篇已经创建好了线数据(shp文件格式)链接:点我 这篇将基于此shp线数据创建网络数据集. 在此说明:shp数据的网络数据集仅支持单一线数据,也就是说基于shp文件的网络数据集,只能有一个shp线文 ...

  8. ArcGIS 网络分析[3] 发布NAServer到ArcGIS for Server(以Server 10.4为例)

    前阵子对ArcGIS API For JavaScript的网络分析有兴趣,但是不知道其数据是如何获取的. 查阅API知道,AJS的网络分析只有三个功能:最短路径(RouteTask).最近设施点(C ...

  9. ArcGIS 网络分析[2.5] VRP(车辆配送)

    什么是VRP? VRP就是车辆配送. 大家有没有想象过一个城市的某个快递营业点,是怎么让各个快递员配送快递的? 每个快递员针对那片区域的客户,如何走路线才最省时间? 也许你会说,最短路径分析可以做到— ...

随机推荐

  1. AndroidStudio中各种常见快捷键记录

    AndroidStudio中各种常用操作快捷键记录 简单方法 直接设置AS的快捷键与eclipse相同,方便直接从eclipse切到AS的人. 常用的AS的默认快捷键 ctrl + N 根据类名查找J ...

  2. Windows系统重装

    http://www.ishuo.cn/show/76437.htmlhttp://jingyan.baidu.com/article/d8072ac45d4f60ec95cefdaa.html

  3. MFC中小笔记

    主要记录下一些有啊没啊的MFC东西. 1.单文档 去掉 无标题:在玩的时候用于FindWindow(class,title) BOOL CMainFrame::PreCreateWindow(CREA ...

  4. 认识 var、let、const

    我们通过声明.初始化.值的可变性.作用域.变量提升以及在工作中如何使用等多个方面来详细了解var.let.const等关键字功能与特点. 声明 var,let:可以先声明,后赋值(初始化),默认值是 ...

  5. Lonlife 1000 - Spoon Devil's 3-D Matrix

    1000 - Spoon Devil's 3-D Matrix Time Limit:1s Memory Limit:32MByte Submissions:208Solved:65 DESCRIPT ...

  6. linux运维、架构之路-Zabbix监控应用及分布式

    一.Zabbix监控集群应用 1.监控端口 net.tcp.listen[port] 检查 TCP 端口 是否处于侦听状态.返回 0 - 未侦听:1 - 正在侦听 net.tcp.port[<i ...

  7. mysql left join 几个意思

    left join 用于多表  >1个表比如select a.*,b.* from ta as a left join tb as b on a.aid=b.bid咱们就以实际的代码来查看一下. ...

  8. constructor 属性,判断是否为数组

    <!--你可以使用 constructor 属性来查看是对象是否为数组 (包含字符串 "Array"):--><p>constructor属性返回变量或对象 ...

  9. C/C++筛选法算素数

    什么是求素数 )i在2到n-1之间任取一个数,如果n能被整除则不是素数,否则就是素数 普通枚举法: #include <iostream> #include <string> ...

  10. Netty4 学习笔记之二:客户端与服务端心跳 demo

    前言 在上一篇Netty demo 中,了解了Netty中的客户端和服务端之间的通信.这篇则介绍Netty中的心跳. 之前在Mina 中心跳的使用是通过继承 KeepAliveMessageFacto ...