最短路径求解

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

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

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

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

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

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

在这里不讨论最短路径的内部算法,似乎有大佛说过,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. 关于控制台输出 警告 log4j:WARN No appenders could be found for logger

    新建struts2项目时出现警告 log4j:WARN No appenders could be found for logger 于是上网搜查了解决方案 转自:最爱NBA 在src下面新建file ...

  2. ios协议和委托

    在iPhone开发协议和委托是常接触到的东西,到底什么是协议什么是委托,他们什么关系? 一 协议 (1)协议相当于没有与类相关联的接口,他申明一组方法,列出他的参数和返回值,共享给其他类使用,然后不进 ...

  3. TCP/IP 协议栈 -- 编写UDP客户端注意细节

    上节我们说到了TCP 客户端编写的主要细节, 本节我们来看一下UDP client的几种情况,测试代码如下: server: #include <stdio.h> #include < ...

  4. C++反汇编第三讲,反汇编中识别虚表指针,以及指向的虚函数地址

    C++反汇编第三讲,反汇编中识别虚表指针,以及指向的虚函数地址 讲解之前,了解下什么是虚函数,什么是虚表指针,了解下语法,(也算复习了) 开发知识为了不码字了,找了一篇介绍比较好的,这里我扣过来了,当 ...

  5. mysql 打开慢查询日志

    打开mysql的配置文件  my.ini或是my.cnf找到节点[mysqld]下添加下面这两行(默认可能不带这两行,直接手敲即可) [AppleScript] 纯文本查看 复制代码 ? 1 2 3 ...

  6. angularjs 给封装的模态框元素传值,和实现兄弟传值

    本例实现封装的元素所放的位置不同,而选择不同的传值,这里举例封装了bootstrap模态框,以后也方便大家去直接使用.方法举例如下:首先主页调用css/js有: <link rel=" ...

  7. Mysql服务器SQL模式 (官方精译)

    MySQL服务器可以在不同的SQL模式下运行,并且可以根据sql_mode系统变量的值对不同的客户端应用不同的模式.DBA可以设置全局SQL模式以匹配站点服务器操作需求,并且每个应用程序可以将其会话S ...

  8. C#设计模式之二十策略模式(Stragety Pattern)【行为型】

    一.引言   今天我们开始讲"行为型"设计模式的第七个模式,该模式是[策略模式],英文名称是:Stragety Pattern.在现实生活中,策略模式的例子也非常常见,例如,在一个 ...

  9. BFS求最短路 Abbottt's Revenge UVa 816

    本题的题意是输入起点,朝向和终点,求一条最短路径(多解时任意输出一个即可) 本题的主要代码是bfs求解,就是以下代码中的slove的主要部分,通过起点按照路径的长度来寻找最短路径,输出最先到终点的一系 ...

  10. 在Ubuntu14.04下安装Docker CE(1) - repository篇

    从2017年3月开始,Docker开始分为社区版本和企业版,也就是Docker CE和Docker EE, 原来Ubuntu14.04下,通过sudo apt-get install docker.i ...