什么是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. 【子集或者DFS】部分和问题

    题目: 给定整数序列a1,a2,...,an,判断是否可以从中选出若干数,使它们的和恰好为k.1≤n≤20   -108≤ai≤108   -108≤k≤108 输入: n=4 a={1,2,4,7} ...

  2. [Swift]LeetCode798. 得分最高的最小轮调 | Smallest Rotation with Highest Score

    Given an array A, we may rotate it by a non-negative integer K so that the array becomes A[K], A[K+1 ...

  3. 小程序自定义pick(日期加时间组合)

    最近小程序有个需求要使用日期加时间的pick组件  翻了小程序文档似乎没有符合的 手写一个 新建组件picker.js: Component({ properties: { disabled: { t ...

  4. 【Redis篇】初始Redis与Redis安装

    一.前述 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括st ...

  5. python 菱形继承问题究极版

    如果只是正常的菱形继承,经典类(python2中最后一个父类不继承object类)是深度优先,即会从左边父类开始一路走到底 新式类(最后一个父类继承了object类)是广度优先,即从左边父类开始继承, ...

  6. asp.net mvc学习(Vs技巧与Httpcontext)

    模型绑定分析 博客模拟的表单已经可以包含网站开发过程中遇到的大部分的表单格式了,包含一些数组.对象等等. 1.直接拼接字符串 $.ajax({ url: "/XXX", type: ...

  7. Linux系统打开文件最大数量限制(进程打开的最大文件句柄数设置)

    ulimit  [-HSTabcdefilmnpqrstuvx  [limit]] 利用ulimit命令可以对资源的可用性进行控制. -H选项和-S选项分别表示对给定资源的硬限制(hard limit ...

  8. Shiro中的授权问题

    在初识Shiro一文中,我们对Shiro的基本使用已经做了简单的介绍,不懂的小伙伴们可以先阅读上文,今天我们就来看看Shiro中的授权问题. Shiro中的授权,大体上可以分为两大类,一类是隐式角色, ...

  9. Solr 05 - Solr Web管理界面的基本使用

    目录 1 Dashboard - 仪表盘 2 Logging - 日志信息 3 CoreAdmin - Solr核心 4 Java Properties - Java参数 5 Thread Dump ...

  10. Java基础11:Java泛型详解

    本文对java的泛型的概念和使用做了详尽的介绍. 本文参考https://blog.csdn.net/s10461/article/details/53941091 具体代码在我的GitHub中可以找 ...