指定赋值器
网络元素由源要素创建而成;网络属性值(例如成本和等级属性)取自于网络元素的值;赋值器用于计算由特定源要素类创建的元素的属性值。这意味着一个网络元素可以具有若干个赋值器;例如,对于多模式网络中的成本属性来说,每个源要素类(例如,街道、铁路、人行道、转弯以及交汇点)可能分别对应一个赋值器。
本主题说明如何设置赋值器。
- 打开网络数据集属性 对话框。
-
单击属性选项卡。
下图中的网络数据集具有四种网络属性:Meters、Minutes、Oneway 和 RoadClass。
-
选择需要修改赋值器的属性,然后单击赋值器。
将打开赋值器 对话框。
-
按照以下子步骤为某个源指定字段赋值器,或者直接跳到下一步以了解有关如何将表达式添加到字段赋值器的说明:
- 在类型列中,单击源要素所在的行,然后单击字段。
- 在值列中,单击源要素所在的行,然后在列表中单击相应的字段。
下图显示的是“Streets”要素类在源要素的“至-自”数字化方向上的字段赋值器:
提示:您可以同时为类型列和值列指定值。要指定类型的值,请在属性值表中单击行时,按下 Ctrl 或 Shift 键。右键单击某一选中的行,再单击类型,然后选择所需的赋值器类型。
类似地,您也可以同时为多个行的值列指定相同的值。要执行此操作,请选择两个或两个以上的行;右键单击某一选中的行,指向值;然后单击属性。您在弹出的对话框中指定的设置将被指定给赋值器 对话框的“属性值”表中所有选定的行。
-
按照以下子步骤为某个源指定字段表达式赋值器,或者直接跳到下一步以了解有关其他赋值器的说明:
- 在类型列中,单击源要素所在的行,然后单击字段。
- 单击赋值器属性按钮 。
- 在字段赋值器 对话框中,选择要使用 VBScript 还是 Python 来编写表达式。建议使用性能更高的 VBScript;然而,如果您打算使用 ArcGIS for Server (Linux) 构建网络数据集,则需要用到 Python。
- 输入表达式。
- 单击确定。
-
按照以下子步骤为某个源要素指定常量赋值器,或者直接跳到下一步以了解有关其他赋值器的说明:
- 在类型列中,单击源要素所在的行,并从下拉列表中选择常量。
-
在值列中,单击源要素所在的行,然后为约束属性选择忽略约束条件或使用约束条件,或者输入成本、描述符和等级属性的数值。
下图显示的是“转弯”源要素类中约束属性的常量赋值器:
-
按照以下子步骤为某个源要素指定脚本赋值器,或者直接跳到下一步以了解有关其他赋值器的说明:
- 在类型列中,单击源要素所在的行,然后单击脚本。
- 单击赋值器属性按钮 。
- 在脚本赋值器 对话框中,选择要使用 VBScript 还是 Python 来编写脚本。建议使用性能更高的 VBScript;然而,如果您打算使用 ArcGIS for Server (Linux) 求解网络分析,则需要用到 Python。
- 输入脚本。
- 单击确定。
在此示例中,约束网络属性使用 VBScript 赋值器来阻止路径分析及其他网络分析跨越桥梁。
以下为使用 Python 编写的类似脚本的屏幕截图。请注意函数在预逻辑脚本代码中进行定义,并且以关键字 def 开头。函数从值 = 中进行调用。
-
按照以下子步骤为某个源要素指定函数赋值器,或者直接跳到下一步以了解有关其他赋值器的说明:
- 在类型列中,单击源要素所在的行,然后单击函数。
- 单击赋值器属性按钮 。
- 在函数赋值器 对话框中,输入函数。
- 单击确定。
在此示例中,约束属性 (HeightRestriction) 引用描述符属性 (MaxHeight) 和参数 (Vehicle Height) 来禁止最小通过高度小于车辆高度的道路。
- 要指定通用转弯延迟赋值器,请参阅下列主题:建立通用转弯。
- 要指定边流量赋值器,请参阅下列主题:什么是流量数据?
在网络数据集中设置了流量的属性后,将自动创建边流量赋值器。
-
单击确定。
网络数据集属性 对话框关闭。
- 在目录 窗口中,右键单击网络数据集,然后单击构建。
为网络属性设置赋值器之后,如有必要,可以关闭其余对话框并构建网络。
仅当所做的更改要求网络数据集访问其源要素类时,才有必要重新构建网络数据集。例如,创建从源要素类中提取时间成本的字段赋值器时,需要重新构建网络。更改源要素的几何形状也需要重新构建网络数据集。不过,在创建函数、脚本或通用转弯延迟赋值器时,并不需要重新构建网络,因为这些赋值器不直接从源要素类中提取信息。