什么是VRP?

VRP就是车辆配送。

大家有没有想象过一个城市的某个快递营业点,是怎么让各个快递员配送快递的?

每个快递员针对那片区域的客户,如何走路线才最省时间?

也许你会说,最短路径分析可以做到——那么,这可不能一个一个分开来分析呀?而且与最短路径有个最大的区别就是,VRP问题,车子出去走一圈最短的线路,还是要回来起点的。

VRP就是讲究一个“一次设置”,全部计算的效率,而且还支持一些最短路径分析中不支持的特性,如停靠时间等,这是这几个网络分析里比较复杂的一个了。

创建VRP图层所必须的——网络数据集的时间属性

VRP图层比较特殊,特殊在哪里呢?

以之前的网络数据集为例,新建一个VRP图层时提示:

需要时间单位存在于网络数据集中的成本属性?

其实,就是需要一个以时间为单位的属性,那么我们就设置一个时间属性:

因为没有其他复杂的限制,其实时间=长度/速度,如果速度恒定,时间和长度没什么两样,都是线性变换,所以可以直接设置为Length字段。

ps:假如道路对应时速不同,那么时间计算结果就不一样,那时候就不能这么设置了。

作为示范,希望大家能看懂。

这样,就能创建VRP图层了:

输入

VRP比较复杂,输入元素很多。为了演示最少需求元素,我画了一张图:

基于网络数据集,才能创建VRP图层,创建了VRP图层,又需要最少设置途径点、站点、路径及路径的两个必备属性才能进行分析。

什么意思呢?以快递配送举例:

  • 途经点:一个快递员一趟跑下来经过的快递地址;可以理解为:路过的地方。
  • 站点:快递配送中心;可以理解为:大本营。
  • 路径项目:可以认为一个路径项目就是一个快递员/一辆快递员的车。

为了统一,我就以路径项目为名称继续写完VRP问题。

————————

一个路径项目(快递员)总得知道从哪里出发,又回到哪里。一般起始点、终止点都会一样,当然也可以不一样。快递员可以配送完了回到配送点报道,也可以直接回家。

分析举例

手工添加途经点和站点

首先,人工打点的方式设置15个途经点,5个站点。

一般使用VRP的项目不会这样做,一般会用准备好的点要素数据(就是预先打好的点,点属性里有VRP所需的信息),直接用加载位置功能添加。

创建路径项目并设置属性

创建完后自动弹出路径属性,也可以在Network Analyst窗口双击路径项目。

设置好起始点和终止点,起始点和终止点的类型是站点(大本营)。在这里,均选为第30号点。

执行分析

分析结果如下:

当然,可以有多条路径,就意味着可以拥有n个快递员进行n条路线规划,这就是“车辆配送问题”了。不再赘述。

如果提示分析需要时间属性,则打开图层属性中的分析设置,将时间属性选择为网络数据集的时间属性:

结语

VRP的复杂程度远远超过此例,还可以为其设置路径项目的成本、最大经过途经点个数、配送时间范围等属性。

还可以为其添加障碍。

还可以为其添加货物补给点。

还可以为所有的元素添加他们可以设置的属性等,在此就请各位按需而设~

ArcGIS 网络分析[2.5] VRP(车辆配送)【较难】的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. ArcGIS 网络分析[8] ArcObjects二次开发之底层网络分析开发

    基于现有的线要素类.转弯要素类(在地理数据库的要素数据集中),要用AO做两件事: 1. 创建网络数据集(使用Geodatabase类库) 2. 执行网络分析(使用NetworkAnalyst类库) 在 ...

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

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

随机推荐

  1. 算法与数据结构(四) 图的物理存储结构与深搜、广搜(Swift版)

    开门见山,本篇博客就介绍图相关的东西.图其实就是树结构的升级版.上篇博客我们聊了树的一种,在后边的博客中我们还会介绍其他类型的树,比如红黑树,B树等等,以及这些树结构的应用.本篇博客我们就讲图的存储结 ...

  2. 七种经典排序算法及Java实现

    排序算法稳定性表示两个值相同的元素在排序前后是否有位置变化.如果前后位置变化,则排序算法是不稳定的,否则是稳定的.稳定性的定义符合常理,两个值相同的元素无需再次交换位置,交换位置是做了一次无用功. 下 ...

  3. [Swift]LeetCode639. 解码方法 2 | Decode Ways II

    A message containing letters from A-Z is being encoded to numbers using the following mapping way: ' ...

  4. [Swift]LeetCode821. 字符的最短距离 | Shortest Distance to a Character

    Given a string S and a character C, return an array of integers representing the shortest distance f ...

  5. Markdown语法及html内嵌

    目录 1.Markdown介绍 2.Markdown语法介绍 3.内嵌html语法   之前看到很多大佬博客写的特别漂亮,非常羡慕,他们是怎么排版的呢?作为一个小白,学习使我快乐....终于在不断摸索 ...

  6. [武汉集训] Cliquers

    题意 设把\(n\)个不同元素分成若干个大小相等的集合的方案个数为\(res\),求\(m^{res}\)模\(10^9-401\)后的余数. (n,m不超过2*10^9) 分析 可以知道,所求答案为 ...

  7. Spring Boot @ControllerAdvice 处理全局异常,返回固定格式Json

    需求 在构建RestFul的今天,我们一般会限定好返回数据的格式比如: { "code": 0,  "data": {},  "msg": ...

  8. .NET Core 使用 HttpClient SSL 请求出错的解决办法

    问题 使用 HTTP Client 请求 HTTPS 的 API 时出现 The certificate cannot be verified up to a trusted certificatio ...

  9. Python内置函数(44)——next

    英文文档: next(iterator[, default]) Retrieve the next item from the iterator by calling its __next__() m ...

  10. RabbitMQ学习笔记(二) 工作队列

    什么是工作队列? 工作队列(又名任务队列)是RabbitMQ提供的一种消息分发机制.当一个Consumer实例正在进行资源密集任务的时候,后续的消息处理都需要等待这个实例完成正在执行的任务,这样就导致 ...