创建网络数据集

需要 Network Analyst 许可。

在本教程中,您将根据加利福尼亚州圣地亚哥街道和公共景点的数据创建自定义的网络数据集。 您将首先使用创建网络数据集工具创建基本的网络数据集。 然后,您将浏览每个属性页面以设置其他出行属性(例如网络来源、成本、限制、描述符、出行方式和路线)

使用本教程创建的最终网络数据集可以生成路径和行驶方向,以供要游览圣地亚哥附近公共景点的游客使用。

教程数据以完整的网络数据集作为示例。

获取数据

本教程的数据可供下载。

  1. 请转至数据下载页面
  2. 单击下载按钮将文件保存到本地。
  3. 解压下载的文件。

创建地图

完成以下步骤以创建地图:

  1. 启动 ArcGIS Pro
  2. 通过单击地图模板创建一个新工程。 可以选择性地更改工程的名称和位置。

    随即出现具有地图的新工程。

检查源要素类

接下来,向地图添加 StreetsWalking_Pathways 要素类。

  1. 目录窗格(默认情况下,位于应用程序的右侧)上,右键单击文件夹,然后选择添加文件夹连接 添加文件夹连接

    随即出现添加文件夹连接对话框。

  2. 浏览到您放置了教程数据的文件夹,双击 Network Analyst,然后单击教程以选择该文件夹。
  3. 单击确定

    随即创建一个与教程文件夹之间的连接。

  4. 目录窗格中,展开文件夹 > Tutorial > CreateNetworkDataset > SanDiego.gdb > Transportation
  5. StreetsWalking_Pathways 拖动到地图上。

    两个要素类将被添加到内容窗格以及地图中。

  6. 内容窗格中,右键单击 Streets 图层并选择属性表
    1. 检查字段以及其中的值。 网络数据集将以某种容量使用许多字段。

      FT_MinutesTF_MinutesKPHMeters 等字段可用于设置成本属性,以告知网络数据集遍历每个边的成本。 这些字段通常为双精度型或浮点型字段。

      F_ZLEVT_ZLEV 字段将用于定义不同级别的街道。 这将有助于正确地建立立交桥和地下通道等结构;在这些结构中,由于高程不同,您无法直接从一条街道向另一条街道转弯。 将在稍后创建网络数据集和选择高程模型时介绍这些字段。

      FUNC_CLASS 字段是一个整数字段,用于为每个道路分配一个类别。 此字段将用于在网络数据集上设置等级属性。 同样,我们将在本教程的后续部分中继续介绍该字段和该等级。

      还存在诸如 PAVEDAR_PEDESTAR_BUSAR_AUTODIR_TRAVELTF_HeightLimit_MetersFT_HeightLimit_Meters 之类的字段。 这些字段将用于设置约束条件,以防止在某些情况下行驶到某些道路上。 大多数字段中具有 Y 或 N 值。 DIR_TRAVEL 字段中包含诸如 FT 和 TF 之类的值,这些值将用于设置单行线限制。 FT_HeightLimit_MetersTF_HeightLimit_Meters 字段中大多为空值,其中一些要素填充有数字。 这两个字段将用于设置一种名为参数化约束条件的特殊约束条件类型。 设置高度限制后,您将能够在分析设置中指定游览车的车辆高度,且如果游览车由于其高度原因而无法在某些道路上行驶,则网络数据集可以对其进行限制。

  7. 完成属性表检查后,将其关闭。

创建网络数据集

使用创建网络数据集地理处理工具创建基本的网络数据集。

  1. 分析选项卡上的地理处理组中,单击工具打开地理处理窗格。
  2. 单击地理处理窗格中的搜索栏并输入 Create Network Dataset
  3. 单击第一个结果以打开创建网络数据集地理处理工具。
  4. 对于目标要素数据集参数,单击浏览按钮 浏览
  5. 浏览到 SanDiego.gdb > Transportation,然后单击确定

    Transportation 要素数据集将填充到目标要素数据集参数中。

  6. 网络数据集名称参数中输入 NewSanDiego_ND
  7. 对于源要素类参数,仅选中 Streets 框。

    仅 Streets 要素类将作为网络数据集的一部分包含在内,Walking_Pathways 或 Signposts 要素类不会包含在内。 您将在本教程的后续部分中为网络数据集添加更多要素和功能。

  8. 保留高程模型参数的默认值 Elevation_Fields
  9. 单击窗格底部的运行 运行
    “创建网络数据集”地理处理工具对话框

    名为 NewSanDiego_ND 的新网络数据集将添加至地图。

  10. 右键单击地图中的 NewSanDiego_ND 图层,然后选择移除以从地图上移除网络数据集图层。

    当网络数据集图层在地图中时,将无法编辑网络数据集属性。 您必须从地图上移除图层才能继续本教程的其余部分。

添加网络源并设置连通性策略

最初仅使用 Streets 要素类将网络数据集创建为网络源。 现在,您需要将 Walking_Pathways 要素类添加到网络数据集,并为两个网络源设置适当的组和垂直连通性策略。

创建网络数据集之后,所有编辑都将通过网络数据集属性页面执行。

  1. 目录窗格中,右键单击 NewSanDiego_ND 网络数据集 网络数据集,然后选择属性以打开网络数据集属性对话框。
  2. 单击源设置 >

    此页面将显示当前参与网络数据集的所有源要素类。

  3. 单击位于该对话框右上角的添加/移除源按钮。

    此时已存在一个边源和一个交汇点源。 交汇点源为所创建的默认交汇点要素类,由网络数据集进行管理。

    将出现添加/移除源对话框。

  4. 添加/移除源对话框中,选中 Walking_Pathways 旁边的框,然后单击确定
    通过添加/移除源对话框添加源

    要素数据集中的其他折线和点要素类将在添加/移除源对话框上列出。 网络数据集可以具有许多可以发挥不同作用的边源和交汇点源。 目前,您仅需要选中 Walking_Pathways

    Walking_Pathways 将显示为网络数据集源。

  5. 单击垂直连通性选项卡。
    “网络数据集属性”窗口中的
    注:

    您无法为不同的源使用不同的高程模型。 您无法将 z 坐标用于 Walking_Pathways 且无法将高程字段用于 Streets。 所有网络数据集源都必须使用相同的高程模型。 有关将 z 坐标或高程字段与网络数据集搭配使用的详细信息,请参阅连通性

  6. 对于 Streets(起始节点)Walking_Pathways(起始节点),将下拉列表中的属性由更改为 F_ZLEV
  7. 对于 Streets(终止节点)Walking_Pathways(终止节点),将下拉列表中的属性由更改为 T_ZLEV

    起始节点和终止节点的概念是从线要素的数字化方向中派生出来的。 起始节点位于线的起点,终止节点位于线的终点。 同样,“沿”方向是指沿线的数字化方向行驶,而“相对”方向是指沿与线数字化方向相反的方向行驶。

  8. 网络数据集属性对话框上,单击确定以提交所做的更改并关闭对话框。

添加成本

在路径计算(也称为查找最佳路径)过程中,网络分析经常涉及到成本(也称为阻抗)最小化。 在本部分中,您将向网络数据集添加成本属性。 成本属性可用于对网络数据集上的阻抗进行建模。 这些属性是可以沿着边进行分配的,也就是说,可以将它们沿某边长度成比例划分。

了解有关成本属性的详细信息

  1. 目录窗格中,右键单击 NewSanDiego_ND 网络数据集 网络数据集,然后选择属性以打开网络数据集属性对话框。
  2. 单击出行属性页面,然后单击成本选项卡。

    创建网络数据集工具会根据网络源中的几何字段自动创建一个成本属性 Length

  3. 虽然“Length”较为正确地描述了成本属性所代表的意义,但仍然不是十分清楚。 另外,默认距离成本的单位基于源要素类的空间参考。 在本示例中,单位是米,但您需要以英里为单位。 您要对成本进行的第一个修改就是将默认距离属性重命名为米;确保为所有边源正确设置赋值器,并应用表达式将米转换为英里。
  4. 单击成本的距离部分中的长度属性。
  5. 单击菜单按钮 菜单,选择重命名
    重命名成本属性。
  6. 属性部分的名称文本框中输入 Miles,然后按 Enter 键以接受名称更改。
  7. 单位值更改为英里

    请注意,Streets(沿)行的值为 Shape 字段。 将 Shape 字段传递到赋值器中时,会将边的空间参考、单位和几何传递到赋值器中。 使用 Shape 字段时允许赋值器在计算边长度时使用空间参考。 相反,Shape_Length 字段仅以数字和单位的形式传递,这可能导致边长度的准确性降低,具体取决于数据的坐标系。

    当赋值器为成本使用常规数字字段时,如果要更改赋值器的单位,则需要在赋值器设置对话框上编写表达式,以将字段中的数字转换为新单位。 例如,要将英里转换为英尺,可以使用以下表达式:

    !Miles_Field!*5280

    在赋值器中使用 ShapeShape_Length 字段时,只需更改成本单位,赋值器即会在后台完成转换。

  8. 赋值器部分的组中,对于 Walking_Pathways(沿)行,将类型与默认值相同更改为字段脚本
    将 Walking_Pathways(沿)的赋值器更改为字段脚本
  9. 双击 Walking_Pathways(沿)列,以使字段脚本设置按钮可用,然后单击字段脚本设置按钮 设置表达式

    随即出现赋值器设置对话框。

  10. 结果框中输入 !Shape!,然后单击确定

    赋值器将告诉网络如何计算每个边的阻抗或成本。 它可以是基于字段、基于其他属性或通过脚本计算的常量。 上述每种都是不同类型的赋值器。

  11. 接下来,您将向网络数据集添加名为 Minutes 的时间成本。
  12. 单击菜单按钮 菜单,选择新建
  13. 输入 Minutes 作为新成本的名称。
  14. 赋值器部分的组中,对于 Streets(沿)行,将类型与默认值相同更改为字段脚本

    X 图标将出现在 Streets(沿)Streets(相对)行的旁边,但是在您选择了赋值器所基于的字段后,该图标将消失。

  15. 双击 Streets(沿)列,以使字段脚本设置按钮 设置表达式 可用,然后单击字段脚本设置按钮。

    您可能拥有一个字段,用于表示沿某一边任一方向行驶的成本。 例如,Minutes 字段(通过将线的长度除以速度限制计算得出)将适用于沿方向和相对方向。 如果可以将同一字段用于两个行驶方向,则可以将字段脚本赋值器用于 Streets(沿)行。 然后,无需为 Streets(相对)方向设置字段脚本赋值器,而是将赋值器类型更改为与沿方向相同

    针对此数据,存在用来表示沿方向和相对方向的不同字段,因此您需要设置这两个方向。

  16. 结果框中输入 !FT_Minutes!,然后单击确定
  17. Streets(相对)行重复步骤 12 和 13。
  18. 结果框中输入 !TF_Minutes!,然后单击确定
  19. Walking_Pathways(沿)Walking_Pathways(相对)行重复步骤 12 至 16。
    针对 Minutes 成本为字段脚本赋值器设置合适的字段
    注:

    存在多种类型的赋值器,可将其用于成本、约束条件和描述符中。 字段脚本赋值器最为常用,原因是它们可使用单个字段或基于字段的简单表达式来确定遍历边的成本。

    了解有关网络所使用的赋值器类型的详细信息

  20. 还是在赋值器部分的转弯组中,将 <默认> 行的类型值更改为转弯类别
  21. 双击 <默认>列,以使转弯类别设置按钮 设置表达式 可用,然后单击转弯类别设置按钮。

    随即出现转弯类别赋值器对话框。

    了解有关转弯类别赋值器的详细信息

  22. 左转弯反向转弯的秒数更改为 5
    将转弯类别赋值器中的左转弯和反向转弯更改为具有 5 秒延迟

    当遇到左转弯或反向转弯时,任何使用“Minutes”成本属性的分析都会增加 5 秒的延迟。

  23. 单击确定接受所做更改并关闭转弯类别赋值器对话框。
    注:

    将出现有关“Minutes”成本的警告,提示由于没有等级属性,“转弯类别赋值器”无法使用道路类来区分转弯。 可以忽略此警告。 您将在本教程的后续部分中添加等级属性时解决该问题。

  24. 网络数据集属性对话框上,单击确定以提交所做的更改并关闭对话框。

网络数据集现已具备长度成本和时间成本。 接下来要做的就是添加约束条件,例如驾驶汽车、步行和车辆高度限制。

添加约束条件和描述符

在本部分中,您将添加约束条件,以对步行、驾驶汽车、驾驶公共汽车以及车辆高度限制进行建模。 您还将添加用于车辆高度的描述符,该描述符将与车辆高度限制一起使用。

在分析过程中,约束条件可以确定是否完全禁止、避免甚至首选使用具有特定特征的遍历道路。 例如,约束条件可用于防止行人走上高速公路,或防止过高的卡车在没有足够净空高度的道路上行驶。

描述符是用于描述网络或网络元素特征的属性。 不同于成本属性,描述符属性是不可分配的。 这意味着描述符数值不取决于边元素的长度。 使用描述符将不打算分配和用于成本的属性带入网络数据集中,以将其用于等级和约束条件。 本教程将使用描述符将车辆高度从 TF_HeightLimit_MetersFT_HeightLimit_Meters 字段带到 Streets 要素类上,以将其用于高度约束条件。

了解有关限制属性的详细信息

了解有关描述符属性的详细信息

首先,您将面向驾驶汽车、驾驶公共汽车和步行建模创建基本的约束条件。

  1. 目录窗格中,右键单击 NewSanDiego_ND 网络数据集 网络数据集,然后选择属性以打开网络数据集属性对话框。
  2. 单击出行属性页面,然后单击约束条件选项卡。
  3. 单击位于约束条件选项卡右上角的菜单按钮 菜单 然后选择新建
  4. 输入 Driving an Automobile 作为新约束条件的名称。
  5. 使用类型设置为禁止
  6. 赋值器部分的组中,对于 Streets(沿)行,将类型值由与默认值相同更改为字段脚本

    X 图标将出现在 Streets(沿)Streets(相对)行的旁边,但是在您选择了赋值器所基于的字段后,该图标将消失。

  7. 双击 Streets(沿)行的禁止列以使字段脚本设置按钮 设置表达式 处于可用状态,然后单击字段脚本设置按钮。

    随即出现赋值器设置对话框。

  8. 结果框中输入 !AR_AUTO!="N",然后单击确定

    此字段用于指示汽车是否可以在道路上合法行驶。 值 Y 表示汽车可以在该道路上行驶,而值 N 表示汽车无法在该道路上行驶。

    约束条件始终为布尔型。 当您为约束条件定义字段脚本、元素脚本或函数时,您需要为约束条件明确将表达式、脚本或函数返回的哪些值计为 True,这会对该边产生影响。 任何其他值都将被解释为 False,且不会对边产生影响。 在此例中,一旦约束条件对边产生影响,这将该边被遍历。

  9. Streets(相对)设置为与沿方向相同
  10. 对于 Walking_Pathways(沿),将类型更改为常量,并将禁止更改为 True
  11. Walking_Pathways(相对)设置为与沿方向相同

    切勿允许机动车辆在人行道上行驶,这样您就可以设置一个常量值,从而在该约束条件处于活动状态时使机动车辆一直受到限制。

  12. 重复步骤 4 至 11,添加新的约束条件以禁止公共汽车穿越某些道路,将该约束条件命名为 Driving a Bus 并使用 AR_BUS 字段。
    “网络数据集属性”窗口中的约束条件页面,其中显示了“Driving a Bus”约束条件
  13. 添加一个名为 Walking 的新约束条件。
  14. 对于 Streets(沿),将赋值器类型更改为字段脚本
  15. 双击 Streets(沿)行的禁止列以使字段脚本设置按钮处于可用状态,然后单击字段脚本设置按钮 设置表达式
  16. 在赋值器设置对话框的结果框中,键入 !AR_PEDEST! == "N"

    这将限制州际公路或其他交通流量大的道路,当 Walking 约束条件处于活动状态时将禁止行人通行。

  17. 保留 Walking_Pathways 边的默认赋值器设置。
  18. 接下来,您将创建一个避免未铺设道路的约束条件。 在之前的约束条件中,您将使用类型约束条件设置为禁止,此举将允许或不允许对边进行遍历。 Avoid Unpaved Roads 约束条件将使用避免使用类型。
  19. 创建一个名为 Avoid Unpaved Roads 的约束条件。
  20. 使用类型值由禁止更改为避免
  21. 对于 Streets(沿),将赋值器类型更改为字段脚本
  22. 在赋值器设置的结果框中,键入 !PAVED! == "N"

    这样,任何在 PAVED 字段中具有值 N 的边都将被适度避免。

  23. 接下来,您将添加对单行道的约束条件。
  24. 添加名为 Oneway 的新约束条件。
  25. 对于 Streets(沿),将赋值器类型更改为字段脚本
  26. 双击 Streets(沿)禁止列以使字段脚本设置按钮处于可用状态,然后单击字段脚本设置按钮 设置表达式

    单行道通常在街道的一个行驶方向上受到限制。 在此例中,您希望沿某边的不同行驶方向具有不同的值。 您将为 Streets 的每个行驶方向设置相似但略有不同的字段表达式。

  27. 结果框中输入 SetOneway(!DIR_TRAVEL!),并在代码块框中输入以下表达式:

    def SetOneway(value):
     if value and value.upper() in ('N', 'TF', 'T'):
      return True
     return False

    此 Python 表达式将查找 NTFT 值,并在该边具有上述任一值的情况下对其进行限制。 它将被写成一个不区分大小写的表达式。

    TFT 值通常分别代表“至-自”和“至”。 这些值用于指示边上的哪个行驶方向受到限制。 根据表达式,将禁止沿“至-自”或“相对”方向行驶,而允许沿“自-至”或“沿”方向行驶。 N 将用于顺方向和逆方向的表达式中。 将在路径中禁止使用任何具有 N 值的线。

    “字段脚本:单向”对话框,其中显示应将何种“单向”约束的脚本用于“沿”方向
  28. 单击赋值器设置对话框中的确定,以接受更改。
  29. 对于 Streets(相对),将赋值器类型更改为字段脚本
  30. 打开 Streets(相对)行的赋值器设置对话框。
  31. 结果框中输入 SetOneway(!DIR_TRAVEL!),并在代码块框中输入以下表达式:

    def SetOneway(value):
     restricted = False
     if value and value.upper() in ('N', 'FT', 'F'):
      restricted = True
     return restricted

    此表达式与上一个表达式相同,只是该表达式不具备 TFT,而是使用 FTF。 此表达式会将相反的一组街道限制为另一种表达式,这也是单行线限制的另一半所需要的。

  32. 单击赋值器设置对话框中的确定,以接受更改。
  33. 您将要添加新的参数化约束条件,以对某些街道上的车辆高度限制进行建模。 您首先要创建一个描述符,以便从 Streets 要素类中获取车辆高度。
  34. 单击描述符选项卡。
  35. 单击菜单按钮 菜单,然后单击新建
  36. 输入名字的高度限制(英尺)
  37. 对于 Streets(沿)行,将赋值器类型更改为字段脚本
  38. 打开 Streets(沿)行的赋值器设置对话框。
  39. 结果框中输入 MetersToFeet(!FT_HeightLimit_Meters!),并在代码块框中输入以下表达式:

    def MetersToFeet(value):
     if value is None:
      return value
     return value / 0.3048

    此表达式从 FT_HeightLimit_Meters 字段中获取值,并将其从米转换为英尺。

  40. 对于 Streets(相对)行,将赋值器类型更改为字段脚本
  41. 打开 Streets(相对)行的赋值器设置对话框。
  42. 结果框中输入 MetersToFeet(!TF_HeightLimit_Meters!),并在代码块框中输入以下表达式:

    def MetersToFeet(value):
     if value is None:
      return value
     return value / 0.3048

  43. 单击确定以接受表达式。
    带有完整的
  44. 单击位于顶部的约束条件选项卡。
  45. 添加一个名为 Height Restriction 的新限制属性。
  46. 如有必要,请展开参数部分。
  47. 参数部分中,在格网中单击以添加新行。
  48. 将新参数的名称更改为车辆高度(英尺)

    有时,网络分析取决于变量条件。 在这种情况下,您可以使用参数。 参数的行为类似于占位符变量。 除非默认值被其他内容覆盖,否则参数将使用默认值。 该参数将呈现在分析图层中的出行模式设置中,您可以在其中更改该分析的车辆高度。

    将参数添加到约束条件、成本或描述符会使约束条件、成本或描述符成为参数化属性。 参数化属性可以对许多内容进行建模,包括高度、重量、车轴计数限制或按比例调整的行程成本。

    了解有关参数的详细信息

  49. 类型列设置为双精度,并将默认值设置为 0。
    注:

    对于此参数,双精度是合适的类型,因为车辆的高度可能为 4 米或 4.5 米。 默认值设置将用作车辆高度占位符,直到您根据分析图层属性对其进行更改为止。

  50. Streets(沿)行的类型值更改为函数,然后打开赋值器设置对话框。

    对于函数赋值器,您可以创建一个简单的数学函数。 对于成本或描述符等数值类型属性,可以执行乘法、除法、减法和加法。 布尔属性(例如约束条件)将使用比较操作数,例如大于或小于。

  51. 属性名称设置为高度限制(英尺),这是您先前创建的描述符。
  52. 参数名称设置为车辆高度(英尺),这是您刚刚添加到此约束条件中的参数。
  53. 对于运算符,请选择小于或等于 (<=)。

    表达式显示为:Height Limit (Feet) <= Vehicle Height (Feet)

    如果边上的 Height Limit (Feet) 小于或等于分析图层中的 Vehicle Height (Feet) 输入,则边将受到限制。

  54. 单击确定以接受函数。
  55. 保留 Walking_Pathways 行的默认值。

    步行路径上没有高度限制,且无论如何都不允许车辆通行,因此您无需为步行路径设置此约束条件。

  56. 网络数据集属性对话框上,单击确定以提交所做的更改并关闭对话框。

添加时区属性

时区属性支持网络数据集管理时区,从而保证当前时间值的明确性,并且启用流量的网络数据集也可以根据当前的正确时间获取准确的行驶时间。 一些类型的网络分析(如最后一公里配送分析)需要时区属性。 您将设置时区属性,以便使用此网络数据集运行所有类型的分析。

了解有关时区属性的详细信息

  1. 目录窗格中,右键单击 NewSanDiego_ND 网络数据集 网络数据集,然后选择属性以打开网络数据集属性对话框。
  2. 单击出行属性页面,然后单击时区选项卡。
  3. 选中添加时区属性复选框。
  4. 时区表下拉列表中,确保已选择 TimeZones 表。
  5. 确保已填写赋值器格网中的值,其中 <默认> 赋值器的类型设置为常量设置为 (UTC-08:00) 太平洋时间(美国和加拿大),其他赋值器使用默认值。
    赋值器格网

    TimeZones 表包含一个条目:太平洋标准时间。 此值对应于 Windows 注册表中的值,网络数据集根据该值确定要使用的时区。 由于只有一个条目,因此网络数据集将该值填充为默认值,并且是唯一要使用的值。 如果网络数据集跨多个时区,则可以使用字段赋值器进行设置。 时区属性文档对该过程以及时区属性的更多相关信息进行了介绍。

  6. 网络数据集属性对话框上,单击确定以提交所做的更改并关闭对话框。

添加等级属性

等级是指分配给网络元素的次序或级别。 通常会有 3 至 5 类道路,但可供使用的道路种类要更多。 在三级等级中,这些类为主要,次要和地方。 地方道路包括小型居住区街道等等。 次要道路可能包括穿过城镇或州道的主要道路,而主要道路可能包括州际公路和高速公路。

了解有关等级属性的详细信息

  1. 目录窗格中,右键单击 NewSanDiego_ND 网络数据集 网络数据集,然后选择属性以打开网络数据集属性对话框。
  2. 单击出行属性页面,然后单击等级选项卡。
  3. 选中添加等级属性框。

    范围赋值器的等级设置随即出现。

  4. 主要道路的范围上限更改为 2
  5. 次要道路的范围上限更改为 4
    注:

    这些就是此数据的范围,但是您的数据分类方式可能有所不同。

  6. 对于 Streets(沿)行,将赋值器类型更改为字段脚本,然后打开赋值器设置对话框。
  7. 结果框中,输入以下表达式:
    int(!FUNC_CLASS!)

    等级属性需要大于 0 的整数输入。 因为 FUNC_CLASS 字段是文本字段,所以您需要使用一种方法将字段值转换为整数。

    将字段值转换为整数。
  8. 单击确定以接受表达式。
  9. Walking_Pathways(沿)行重复步骤 6 到 8。
    将 Walking_Pathways(沿)的字段值转换为整数。
  10. 网络数据集属性对话框上,单击确定以提交所做的更改并关闭对话框。

添加出行模式

出行模式本质上是由一长串出行设置构成的模板,这些出行设置可以定义车辆或行人的物理特征。 当执行网络分析以定义车辆或行人的出行方式和位置时会考虑这些特征。 有了预定义出行模式,您可以快速将预定义设置应用于网络分析,而不必手动选择每个设置。

出行模式可以为常规模式(例如驾驶汽车或步行)建模,或者可以为特定模式(例如驾驶不会超过速度限制的牵引式挂车或驾驶可以忽略某些交通法规的救护车)建模。

出行模式存储在网络数据集中,且可以根据需要在分析图层中进行修改。

您将为三种出行模式创建五种出行模式:驾驶汽车、驾驶游览车和步行。 对于驾驶汽车和驾驶游览车,您将创建基于距离和基于时间的出行模式。 对于步行,您将仅创建基于距离的出行模式。

  1. 目录窗格中,右键单击 NewSanDiego_ND 网络数据集 网络数据集,然后选择属性以打开网络数据集属性对话框。
  2. 单击出行属性页面和出行模式选项卡。
  3. 单击位于该对话框右上角的菜单按钮 菜单 然后选择新建
  4. 将出行模式命名为 Automobile Time
  5. 描述输入一些内容,以提示您该出行模式代表用于驾驶汽车的基于时间的出行模式。
  6. 类型设置为驾驶
  7. 成本部分中,请确保将阻抗值设置为分钟
  8. 确保距离成本设置为英里
  9. 约束条件部分,选中“避免未铺设道路”、“驾驶汽车”和“单向”限制框,如下图所示:
    避免在“Automobile Time”模式下选中“避免未铺设道路”、“驾驶汽车”和“单向”约束条件

    在设置出行模式时,请仅选中一种交通方法(“驾驶汽车”、“驾驶公共汽车”或“步行”)。 这些约束条件将指示每种交通模式可以在何处合法遍历。 选中一种以上的方法会不恰当地限制或允许某些边。

    您无需选中高度限制属性,原因是通常汽车在道路上不会遇到高度限制的问题。

  10. U 形转弯部分中,将设置更改为死角和交叉点
  11. 如果高级部分处于折叠状态,则请将其展开。
  12. 高级部分中,选中使用等级旁边的框。

    等级通常可以减少对大型网络进行求解分析时所要花费的时间。 它还可以模拟人们偏好的驾驶方式,因为它像人一样喜欢较宽敞的道路(例如州际公路和高速公路),这些道路比地方道路更容易预测和简单。

  13. 单击菜单按钮 菜单,选择复制
  14. 将新出行模式的名称更改为 Automobile Distance
  15. 阻抗值更改为英里
  16. 高级部分中,取消选中使用等级旁边的框。

    对于基于时间的成本属性,使用等级最有意义。 如果阻抗并非基于时间,则在求解过程中使用等级并不能产生实际的结果。

  17. 现在,您已经创建了两种用于驾驶汽车的出行模式。 接下来,您将创建用于驾驶公共汽车的出行模式。
  18. 创建一个名为 Tour Bus Time 的出行模式。
  19. 阻抗值更改为分钟
  20. 约束条件部分中,单击避免未铺设道路
  21. 约束条件用法参数的值更改为避免(高)
    将“避免未铺设道路”约束条件的值由“避免”更改为“避免高”

    游览车无法很好地行驶在未铺设道路上。 将此出行模式的约束条件用法参数设置为避免(高)可确保仅在必要时使用未铺设道路。

  22. 确保选中避免未铺设道路复选框。
  23. 单击驾驶公共汽车
  24. 确保选中驾驶公共汽车复选框。
  25. 单击高度限制
  26. 车辆高度(英尺)参数的值更改为 11

    此处填充的任何值都将成为用于根据道路的高度限制评估车辆高度的默认值。 最佳的默认车辆高度值为 11 英尺,原因是大多数单层游览车的平均高度在 10 到 11 英尺之间。

  27. 确保选中高度限制复选框,并将约束条件用法设置为禁止
  28. 确保选中单向复选框,并将约束条件用法设置为禁止
  29. U 形转弯部分中,将策略更改为
  30. 高级部分中,选中使用等级旁边的框。
  31. 复制此出行模式并将新的出行模式重命名为 Tour Bus Distance
  32. 保留所有属性不变,只是将阻抗值更改为英里并取消选中使用等级框。
  33. 您将为本教程添加的最后一种出行模式为针对步行距离的模式。
  34. 添加一个名为 Walking Distance 的新出行模式。
  35. 将出行模式的类型设置更改为步行
    将出行模式类型更改为步行
  36. 阻抗值更改为英里
  37. 仅选中 Walking 约束条件。

    行人不必考虑单行道、高度限制或未铺设道路的问题,因此无需启用这些约束条件。

  38. U 形转弯策略保留为所有
  39. 取消选中使用等级复选框。

    Walking 约束条件可防止行人在多种主要道路(例如州际公路和高速公路)上行进,这种情况应优先使用等级。

  40. 网络数据集属性对话框上,单击确定以提交所做的更改并关闭对话框。

更新成本属性

由于网络数据集上存在一个等级属性,“转弯类别赋值器”将具有更多可用于定义转弯延迟的类别。 您将返回至 Minutes 成本,从而使用新的延迟时间来更新“转弯类别赋值器”。

了解有关转弯类别赋值器的详细信息

  1. 目录窗格中,右键单击 NewSanDiego_ND 网络数据集 网络数据集,然后选择属性以打开网络数据集属性对话框。
  2. 单击出行属性页面,然后单击成本选项卡。
  3. 选择 Minutes 成本。
  4. Minutes 成本中向下滚动,以查看 转弯部分。
  5. 双击<默认>列以使转弯类别设置按钮 设置表达式 处于可用状态。

    请注意,“值”现在表示存在 20 个转弯类别,而非您在设置转弯类别赋值器时显示的 5 个。

  6. 单击转弯类别设置按钮 设置表达式 以打开转弯类别赋值器对话框。
    使用分类道路进行了更新的转弯类别赋值器

    转弯方位角范围部分将保持不变,但现在有了一个名为“道路类”的部分。 该部分允许您针对“转弯类别赋值器”更改将哪些等级值视为主要、次要或地方道路。

    默认情况下,它将使用等级属性中定义的范围。 除非需要出于特殊原因更改范围,否则请保留默认范围不变。

    由于可以按等级对道路进行分类,转弯类别行驶时间部分可显示更多的转弯类别。

  7. 左转弯组中,将本地:本地:任何值由 5 更改为 7。

    这些列将用来指示转弯开始时所处道路的类、转弯结束时所处道路的类,是否有任何道路相交(例如正常的交叉路口)以及该道路的类。 例如,如果您需要越过主要街道以便继续在本地小巷上行驶,则需要等待几秒钟才能理清交通信息。 默认情况下,这种行进策略会有 15 秒的延迟。 但是,如果您只需要越过另一条小路以继续在小巷上行驶,则您不需要等待那么长时间。 此行进策略会有 2 秒的延迟。

  8. 单击确定接受所做更改并关闭转弯类别赋值器对话框。
  9. 网络数据集属性对话框上,单击确定以提交所做的更改并关闭对话框。

设置方向

方向是如何通过路径的转弯说明。 网络数据集能够支持方向的最低要求如下:

  • 具有长度单位的长度属性
  • 至少一个边源
  • 边源上至少有一个文本字段

可将基本方向设置为最低要求,但是部分方向要素的要求可能更高。

了解有关设置方向的详细信息

  1. 目录窗格中,右键单击 NewSanDiego_ND 网络数据集 网络数据集,然后选择属性以打开网络数据集属性对话框。
  2. 单击方向页面。
  3. 选中支持方向旁边的复选框。

    方向页面和字段映射选项卡将被标记为无效状态(红色虚线下划线)。 您现在可将其忽略。 转至字段映射选项卡后,您将修正这个问题。

  4. 单击常规选项卡。
  5. 保留属性映射部分中的所有默认设置。

    属性映射部分中的属性将是网络数据集上的属性。

    要素类别行进策略类驾驶侧属性用于对方向进行更为精细的优化。 了解有关这些属性的详细信息

  6. 辅助数据源部分中,设置以下属性:

    • 路标要素设置为 Signposts
    • 路标连接表设置为 Signposts_Streets
    • 缩写表设置为 Abbreviations

    辅助数据源部分中的属性将为与网络数据集或地理数据库表相同的要素数据集中的其他要素类。

    路标要素路标连接表属性提供可在高速公路道路标志中看到的一类指示信息,例如出口编号、所连接的道路以及沿连接的道路可到达的主要目的地。 这些属性成对存在,且如果希望方向使用路标信息,则必须同时指定两个属性。

    要素类别行进策略类驾驶侧属性类似,道路分叉口表用于对特定类型的转弯进行更为精细的指示。

    书面指示经常包括常用词的缩写。 但是,将书面指示转换为语音导航时,必须展开缩写。 缩写表用于存储有关展开这些缩写的规则。

  7. 保留本地化名称的默认设置。

    网络数据集源可提供多种语言的街道名称和路标文本。 例如,部分欧洲国家/地区使用多种官方语言,且在某些地区,街道名称可能用两种或两种以上的语言表示。 此项设置用于确定方向是应报告所有可用语言的街道名称,还是仅以“方向”语言报告街道名称。

    在选择首选输出方向语言之前,需要满足一些数据要求。

    了解有关本地化名称的详细信息

  8. 单击字段映射选项卡。

    可为网络中的每个边源设置街道名称字段。 它们是用于报告方向的名称。

  9. 对于备用名称,增加 Streets(边)源的数量。

    单个边源可以有多个名称。 例如,两条高速公路可能在数英里内共享同一段道路。 代表该段道路的边将具有两个名称。 要在方向上表示这种情况,可以在边源上使用备用名称。

  10. 对于备用名称,减少 Streets(边)源的数量。

    教程数据不使用备用名称,因此您无需进行相关设置。

  11. 填充 Streets(边)Walking_Pathways(边)源的主要名称属性,如下图所示:

    方向中边源的字段映射

    名称源字段

    前缀方向

    ST_NM_PREF

    前缀类型

    ST_TYP_BEF

    基本名称

    ST_NM_BASE

    后缀类型

    ST_TYP_AFT

    后缀方向

    ST_NM_SUFF

    高速公路方向

    DIRONSIGN

    全名

    ST_NAME

    语言

    语言

    名称类

    NameClass

    方向中边源的字段映射
    注:

    基本名称属性为必填项。 所有其他字段均为可选字段。

    方向支持以多种语言报告街道名称。 语言字段将指示以哪种语言表示名称。 主要名称可能使用一种语言,而备用名称使用另一种语言表示。

  12. 辅助属性部分,对于 Streets(边)Walking_Pathways(边),将国家/地区代码设置为 CountryRegionCode,并将其他属性设置为默认值。

    行政区域字段将按名称列出边所在的行政区域。 行政区域的任何变化都将在方向中报告出来,例如,在穿越州界线时会显示“进入加利福尼亚州”。

    楼层(自)楼层(至)楼层名称(自)楼层名称(至)字段函数与行政区域类似,但适用于设置室内路径。 这些函数可分别报告楼层编号和楼层名称的变化。

    国家/地区代码设置可与缩写表搭配使用。 它包含一个 ISO 3166-2 代码,用于确定在语音导航指示中使用的缩写扩展。 与行政区域字段中的值不同,国家/地区代码设置中的值不会直接显示在指示中。

  13. 单击地标选项卡。

    提供了两个组:空间地标参考地标。 空间地标是要素类,而参考地标是表。 空间地标依赖于求解时的空间搜索,用于确定应参考地标的时机。 参考地标将其在网络上的位置内置于行中,以便仅需表格搜索即可在方向中使用地标。 空间搜索要比常规表搜索慢,因此参考地标的速度性能要强于空间地标。

    空间地标使用简单的空间搜索来确定其位置,因此可以快速进行设置。 您需要至少包含一个文本字段的点要素类,以用作地标的标注。 其他字段可用于定义其他特征,例如通常用于设置室内路径的楼层,或每个点要素的自定义搜索容差。

    参考地标需要更多的工作方可完成设置。 该地标需要特定的方案,且必须手动配置网络位置和其他必填字段。

    您将同时设置空间地标和参考地标。

  14. 首先,您将设置空间地标。
  15. 单击添加/移除空间地标按钮。

    随即出现添加/移除空间地标对话框,且其中将存在两个组。 确认引导地标会通知驾驶员当前的行驶方向正确;例如,“行驶到东湖公园,目的地位于道路左侧。”转向引导地标可帮助驾驶员通过路口。;例如,“在 1 号大街高大的白色圆柱形建筑前左转。”

    地标要素类必须与网络数据集位于同一个要素数据集中。 可以将单个地标要素类注册为确认引导和转向引导地标。

  16. 展开确认引导组下的 MajorAttractions 树视图。

    将地标要素类注册为每个边源的确认引导或转向引导地标。 在大多数情况下,您需要将所有边源的地标要素类注册为确认引导地标和/或转向引导地标。

  17. 选中确认转向引导部分中顶级 MajorAttractions 要素类旁边的框。

    MajorAttractions 要素类代表了圣地亚哥市的主要景点。 这些景点可能毗邻 StreetsWalking_Pathways 要素。 也可将其用于转向引导和确认引导。 您需要为两组地标的所有边源注册 MajorAttractions 要素类。

    请注意,选中顶级框后,所有子级复选框也会被选中。

  18. 单击确定以接受空间地标的注册。
    注册为转向和确认引导空间地标的 MajorAttractions 要素类。

    空间地标标题下的格网中将填充地标注册内容。

  19. 单击字段映射按钮。

    随即出现空间地标字段映射对话框。

    默认情况下,系统已将地标的标注字段选为 Name 字段,且级别字段被设置为 <无>

  20. 单击标注字段级别字段下拉列表并注意选择内容。
    具有“标注字段”下拉列表的“空间地标字段映射”对话框,其中显示 MajorAttractions 要素类中的所有文本字段

    标注字段下拉列表将显示 MajorAttractions 要素类中的所有文本字段;级别字段下拉列表将显示所有整型字段。

    在此对话框上进行更改将为所有引导类型和边源设置字段映射。

  21. 现在,不要更改任何字段,然后单击取消以关闭空间地标字段映射对话框。
  22. 接下来,您将设置参考地标。
  23. 单击添加/移除参考地标按钮。

    将出现添加/移除参考地标对话框。

  24. 选中 Reference_Landmarks 旁边的复选框。
    表 Reference_Landmarks 在“方向”中注册为地标表。

    只有具备所需参考地标方案的表才会在此对话框中显示为候选项。

  25. 单击确定以接受参考地标的注册。

    完整的地标选项卡应与下图相似:

    具有已注册的空间和参考地标的“地标”选项卡
  26. 网络数据集属性对话框上,单击确定以提交所做的更改并关闭对话框。

构建网络数据集

现在,您已经对网络数据集设置完成了所有更改,接下来需要构建网络。 构建网络时将创建和更新网络边,并确保其具有来自源要素的最新信息。

了解有关网络数据集构建时间的详细信息

  1. 分析功能区上的地理处理组中,单击工具以打开地理处理窗格。
  2. 单击地理处理窗格中的搜索栏并输入 Build Network
  3. 单击第一个结果以打开构建网络工具。
  4. 对于输入网络数据集参数,请单击浏览按钮 浏览 并浏览到 NewSandiego_ND 网络数据集,然后单击确定
  5. 单击位于底部的运行按钮 运行
  6. 或者,在地图中添加网络数据集,然后在内容窗格中,右键单击网络数据集,然后在出现的上下文菜单中单击构建

    构建网络地理处理工具将运行以构建网络。

浏览网络数据集

针对网络数据集设置属性并对其进行构建后,可以使用探索网络工具检查元素和属性。

  1. 将新创建的网络数据集 NewSanDiego_ND 拖动到地图上,并确保在内容窗格中选择网络数据集图层。
  2. 在功能区上,单击网络数据集图层组中的数据探索网络工具应该可用。
    功能区中的“探索网络”工具变为可用。
  3. 单击该工具以将其激活并在地图上拖出一个方框,以从网络数据集中选择元素。

    探索网络窗口随即显示。 该窗口会显示在地图上标识的网络元素以及与其关联的元素和属性。

    了解有关探索网络的详细信息