NAClassFieldMap (arcpy.na)

摘要

用于映射网络分析图层内网络分析类的属性字段名称,或设置该属性的默认值。执行网络分析时,求解程序会将网络分析类的属性用作输入。

讨论

NAClassFieldMap 对象自身无法实例化。可通过实例化 NAClassFieldMappings 对象来实现该对象的实例化,这会返回一组 NAClassFieldMap 对象作为 Python 字典。字典关键字是网络分析类属性名称,值为 NAClassFieldMap 对象。

属性

属性说明数据类型
defaultValue
(读写)

用于获取或设置 NAClassFieldMap 对象表示的属性的默认值。该值可指定为值的字符串表示或属性数据类型的值。例如,可以将“路边通道”属性的默认值指定为数字 1 或字符串 "1"。不能为“线障碍”和“面障碍”子图层中的“位置”属性设置默认值,因为它们需要 BLOB 值。如果为某个属性指定了 mappedFieldNamedefaultValue 属性,则仅当与映射字段对应的要素属性值为空值时,才使用默认值。

Variant
mappedFieldName
(读写)

用于获取或设置输入要素类或表的字段名称,该名称用于获取属性值。如果与映射字段对应的要素属性值为空值,则使用为 defaultValue 属性指定的值。

String
propertyName
(只读)

属性名称,使用 NAClassFieldMap 对象为其指定默认值或映射字段名称。

String

代码实例

NAClassFieldMap 示例(Python 窗口)

以下脚本显示如何将消防站作为设施点载入到现有服务区图层中,并使用 NAClassFieldMappings 对象在加载设施点时指定 10 分钟的延迟。它假设已在现有地图文档中添加了名为 Fire Stations Coverage 的服务区网络分析图层(该图层依据旧金山地区教程网络数据集而创建),并添加了名为 FireStations 的要素图层。

#Get the service area layer called "Fire Stations Coverage" from the table of contents
saLayer = arcpy.mapping.Layer("Fire Stations Coverage")

#Get the list of fields from the FireStations feature layer in the table of contents
fields = arcpy.ListFields("FireStations")

#Get the facilities sublayer name from the service area layer. Note that we are not
#using a string called "Facilities" because the sublayer name can be
#different if using ArcGIS on a non-english operating system.
facilitiesSubLayerName = arcpy.na.GetNAClassNames(saLayer)["Facilities"]

#Create a field mappings object for facilities sublayer based on the fields from
#FireStations layer
fieldMappings = arcpy.na.NAClassFieldMappings(saLayer, facilitiesSubLayerName,
                                              False, fields)

#Get the field map corresponding to the "Attr_TravelTime" property of facilities
fieldMap = fieldMappings["Attr_TravelTime"]

#Set a delay of 10 minutes for the facilities
fieldMap.defaultValue = 10

#Load the fire stations as service area facilities using the field mappings
arcpy.na.AddLocations(saLayer, facilitiesSubLayerName, "FireStations", fieldMappings)
5/10/2014