zoukankan      html  css  js  c++  java
  • ArcGIS 网络分析[1.4] 制作点线要素时需要注意的地方

     

     

    有很多同学虽然成功做好了网络数据集,但是分析时会出现这样的问题:

    这是为什么呢?

    这有三个可能的原因:

    1. 两个点之间所有的道路没有连通(问题出在点、线数据上)。

    2. 网络数据集出现了孤立的点位置。

    3. 网络数据集的连通性有问题。

    我就从这三个方面说说,如何避免这些问题。因为标题起的是点线要素的制作情况,我就着重讲第一点了,后两个情况简单说说,在第四章网络数据集的连通性会详细说。

    1. 问题出在点线数据上

    还分两个简单的情况:

    一个是点不在线上;

    另一个比较复杂:线之间二维没有由折点连通。

    这里的由,用专业的说法就是"via",或者"by"。

    点不在线上很容易,初中数学都说过的,想必证明点在线上的问题已经让各位头疼了吧。

    那么,什么是“线之间二维没有由折点连通”

    我们暂时假定道路数据是没有高程数据的,也就是说,所有的道路均在二维平面上。

    伟大的数学家华罗庚说过,“数有形时可直观,形有数时能入微”。我们画图吧!

    我们知道,ArcGIS里的线是Polyline,一个Polyline数据集有多条折线,一条折线由n个折点(也叫结点、节点、端点)和n-1条线段组成,例如下图:

    这个三折线就包括了3条线段和4个折点。

    那么熟悉了折点的概念,我们往下看看,什么是二维间没有折点连通?

    我又画了一条三折线,用绿色的折点表示:

    现在,我将绿色的三折线挪动,与红色的线相交,只会有这样的三种情况:

    A、B、C三种情况有什么不同?

    在ArcGIS中,如果不显示折点,是根本看不出是如何相交的。

    A:线相交,但是存在上下的关系

    B:线相交,虽然存在上下关系,但是有一条线的一个折点在另一条线的边上

    C:线相交,虽然存在上下关系,但是一条线的一个点与另一条线的折点重合

    现在我们再来看看“线之间二维没有经过折点连通”,就十分容易了:A、B两个情况均为此情况,只要是这样的情况

    构建的网络数据集都不会在线的交点处连通。

    ——————————那么,说清楚了,如何画线是最科学的呢?——————————

    1. 十字路口、岔路口处设置折点。
    2. 立交桥处不设置折点(这样就不连通了)。
    3. 立交桥的匝道出入口设置折点。

    如果涉及立交桥,那么就需要设置高程字段了,而且是涉及了三维线数据的端点连通问题,更为复杂。

    在此我暂时不解释,有兴趣的同学可以参考官方的帮助文档,说的很详细。(其实就是画起来和解释起来比较麻烦,篇幅原因,怕读者拍砖看不懂、说我写的复杂,就不继续写了,从我的二维情况可以推广到三维的情况)

    说实话,A和B完全就可以看作有一条线在另一条线的上空,你想想,两条路如果不相交,而是上下的关系,车子怎么切换道路呢?当然也就不连通咯。

    但是,在二维世界里没有第三个维度,所以看起来“叠合”在一起了而已。

    plus:还记得1.2用shp创建网络数据集中那张图吗:

    为什么不按红线走呢?

    因为紫色圈的地方根本没有“二维按折点连通”。可以看到,蓝色的点即为网络数据集的连通点,紫色圈的地方没有连通的折点,说明相交的两条线确实没有“二维按折点连通”。

    见Route.shp编辑下的状态:

    是没有绿色的折点的,难怪不能连通了。

    在我的编辑下,Route.shp已经全部实现了每条线交叉的地方都有折点。见新的网络数据集的Junctions:

    每个交叉点都是连通的,所以道路也就畅通无阻(当然这是假定交点都是十字路口,不是立交桥)

    2. 网络数据集出现了孤零零的点(我好孤单!)

    这个点类似于岛屿,其实就是上面提及的点不在线上,构建网络网络数据集的时候就成了孤立的点。

    (这个问题一直困扰着我,最近才解决)

    还是画图更直观吧!

    红色的点假设是点要素类中的一个点要素,并不在任何一条线上,虽然可以创建网络数据集,但是在网络数据集中是孤零零的一个点:

    然而,在网络数据集中孤立的点并不会显示,端点也不会显示,例如有这样的一幅网络数据集:

    我们是看不到端点的,也看不到孤立的点。上上个图我只是把端点和孤立点“画”了出来。

    所以如果存在这样的路网数据和点数据:

    两个点是孤立点,一个点在线的折点上(而不是在线上) (为啥这样说,下一篇会写到如果有点数据,网络数据集又如何创建)

    构建网络数据集时,点数据选择依边线连通:

    完成时会提示:

     

    这样就存在了孤立点。

    虽然不影响,但是如果精确地添加了网络位置到这些独立的点上,自然就会出现文章开头的无法分析的情况。

    网络位置是可以用这个工具添加的:

    可以简单理解网络位置为最短路径中的起点终点,最近设施点等。

    当使用构建网络数据集的点要素添加为网络位置点时,就说精确重合了,那当然是不连通的,没法分析咯。

    3. 网络数据集的连通性问题

    这个属于以后的内容,在这里就不细说了,等以后写完第四章的连通性问题,就会在这里跟进超链接。

    ArcGIS 网络分析[1.5] 使用点线数据一起创建网络数据集(如何避免孤立点/点与线的连通性组合结果表)

     

    ArcGIS中最基本的三种矢量数据是什么?点线面。

    网络中除了路网之外,还会有地物点。

    如上图,我们在建立网络数据集的时候,作为实验,当然可以只是公路网。但是在大型的决策任务中,网络数据集就不只是公路网那么简单了。

    在城市与城市之间,有高速公路,国道,高铁,普铁,甚至还有水路。

    如此复杂的网络模型是如何连通的呢?他们之间的交点又有什么样的连通方式呢?在这里,我仍然卖个关子,在以后的连通性一章,会详细说明。在文末,就会看到点作为网络数据集中十分强大而关键的一员出现,其意义是多连通组的时候,作为媒介,使得多组网络在其位置连通。

    读者可以继续使用上几节提到的道路数据(修改后的),这节会新建一个点数据。

    给个目录:

    1. 点与线的拓扑关系

    2. 用不同的点线连通方式创建网络数据集(读者可以一起操作,也可以直接看3的结论)

    3. 单连通组中,点线连通策略不同而产生不同的结果

    4. 什么样的点适合参与构建网络数据集

    1. 点与线的拓扑关系

    拓扑关系就是点与线的位置关系。

    情况一:

    情况二:

    情况三:

    情况一是点是孤立点,上一节有说,即不在线上。

    情况二,点在线上,却不在线的折点上。

    情况三,点在线上,也在线的折点上。

    ——————假设在这里都是二维的道路,即高程=0———————

    上一篇提到,前两种情况会产生孤立的点。

    2. 用不同的点线连通方式创建网络数据集

    上两图为画点时开启捕捉的提示,我们分别在线外、线上、线折点上点一个点。

    紫色为点,红绿色的是折线的折点。

    创建网络数据集时,点的连通性就有了“依边线连通”、“交点处连通”两种选项:

    2.1 交点处连通(边线是按任意节点)

    依边线连通就是“按照边线连通的方式来连通”。

    构建完成后如上图提示,提示第一个点和第三个点是孤立的点。符合上文提及的三个情况。

    网络数据集是这样的:

    交汇点在网络数据集中是默认不显示的。(对网络数据集的图层进行符号显示-交汇点打勾,就能看到了)

    2.2 依边线连通(边线是按任意节点)

    如果边线连通策略是“任意节点”,那么情况同2.1,如下图:

    因为第二个点在边线的折点上。

    如果边线连通连通策略是“端点”,那么:

    这样三个点都是孤立的点了,因为第二个点虽然在折点上,但是依旧被识别为独立的点。

    原因就是第二个点不在折线的端点上,而点的连通策略是根据边线的连通策略定的——“依边线连通”。

    2.3 假如组合方式是点【依边线连通】,线【任意节点】呢?

    稍加思考,有点烧脑。

    结果当然是第2个点连通,1、3点因为边线的连通策略,不在折点上而成为了孤立点。

    3. 所以点尽量还是画在边线的折点上(点在一个连通组中的不同情况)

    如果不按标题行事

    ——画在了线外,那么肯定是孤立点

    ——画在了线上而不是折点上,那么非常大可能性还是孤立点

    在网络数据集中,孤立点是很讨厌的一个东西,应该最大程度避免。

    最后给出不同情况的点情况

    A点在线外:必为孤立点,最好别参与网络数据集构建;

    B点在线上:

    ——BA点不在线的折点上

      此时无论连通性如何组合,点都为孤立点//解决方法:在点处编辑线,添加一个折点。

    ——BB点在线的折点上:

      ——BBA点在线的端点上:

        组合方式:此时无论连通性如何组合,点不是孤立点。即该点处是连通的。

      ——BBB点在线的非端点折点上:

        组合方式:线[端点]+点[任意],点必为孤立点

             线[任意节点]+点[任意],点不是孤立点,点处连通。

    看文字太烦?看下面的网络图:

    在实际地理事物中,道路曲曲折折很正常,直到下一个道路时才算结束一条折线。那么这条道路上就会有n个折点,这些折点有可能是交通路口等。

    或许有读者想问了,如果我需要分析并不在道路上而在道路旁的位置(如公园),到另一个地方,那岂不是在公园点这个地方是孤立点?

    我的提议就是,这种作为分析的点,必须将其绘制在线的折点上。

    否则,就不要让其参与构建网络数据集,仅让它作为网络位置点即可。

    因为孤立的点是无法到其他的位置的,也就是所谓的分析失败(见上一篇开头的错误提示截图)

    4. 那么什么样的点合适参与网络数据集的构建呢?

    在第四章,有多个连通性组的时候,点作为每一个不同的路网系统的中转媒介,就有着十分重要的作用。

    到第四章,我就会详细介绍多连通性组的连通问题。这一篇博客和上一篇博客仅仅是热身。

    【举个例子】

    地铁站出口,既连通地铁网,又连通公路网。

    公路网就不能与地铁网放在一个组里头了,不然小车会在交叉的地方开到轨道上吗?明显不现实。

    但是又必须在地铁口处连通,使得人们方便换乘,那么地铁口就作为他们的连通点,连接着两个路网。

  • 相关阅读:
    POJ 2756 Autumn is a Genius 大数加减法
    RoboGuice注入框架简单应用
    Android 从相冊获取近期拍摄的多张照片(获取相机拍照所存储的照片)
    不可不知的DIP、IoC、DI以及IoC容器
    Codeforces Round #156 (Div. 2)---A. Greg's Workout
    zend framework将zip格式的压缩文件导入并解压到指定文件
    TreeSet排序
    Bee Framework_百度百科
    duck
    anglehack参赛总结
  • 原文地址:https://www.cnblogs.com/lihaijia/p/14543180.html
Copyright © 2011-2022 走看看