描述
用于映射网络分析图层内网络分析类的属性字段名称,或设置该属性的默认值。执行网络分析时,求解程序会将网络分析类的属性用作输入。
讨论
NAClassFieldMap 对象自身无法实例化。可通过实例化 NAClassFieldMappings 对象来实现该对象的实例化,这会返回一组 NAClassFieldMap 对象作为 Python 字典。字典关键字是网络分析类属性名称,值为 NAClassFieldMap 对象。
属性
属性 | 说明 | 数据类型 |
defaultValue (可读写) | 用于获取或设置 NAClassFieldMap 对象表示的属性的默认值。该值可指定为值的字符串表示或属性数据类型的值。例如,可以将“路边通道”属性的默认值指定为数字 1 或字符串 "1"。不能为“线障碍”和“面障碍”子图层中的“位置”属性设置默认值,因为它们需要 BLOB 值。如果为某个属性指定了 mappedFieldName 和 defaultValue 属性,则仅当与映射字段对应的要素属性值为空值时,才使用默认值。 | Variant |
mappedFieldName (可读写) | 用于获取或设置输入要素类或表的字段名称,该名称用于获取属性值。如果与映射字段对应的要素属性值为空值,则使用为 defaultValue 属性指定的值。 | String |
propertyName (只读) | 属性名称,使用 NAClassFieldMap 对象为其指定默认值或映射字段名称。 | String |
代码示例
以下脚本显示如何将消防站作为设施点载入到现有服务区图层中,并使用 NAClassFieldMappings 对象在加载设施点时指定 10 分钟的延迟。它假设已在现有地图文档中添加了名为 Fire Stations Coverage 的服务区网络分析图层(该图层依据旧金山地区教程网络数据集而创建),并添加了名为 FireStations 的要素图层。
#Get the service area layer called "Fire Stations Coverage" from the map
doc = arcpy.mp.ArcGISProject('current')
map_obj = doc.listMaps()[0]
sa_layer = map_obj.listLayers("Fire Stations Coverage")[0]
#Get the list of fields from the FireStations feature layer in the map
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.
facilities_sublayer_name = arcpy.na.GetNAClassNames(sa_layer)["Facilities"]
#Create a field mappings object for facilities sublayer based on the fields from
#FireStations layer
field_mappings = arcpy.na.NAClassFieldMappings(sa_layer,
facilities_sublayer_name, False, fields)
#Get the field map corresponding to the "Attr_TravelTime" property of facilities
field_map = field_mappings["Attr_TravelTime"]
#Set a delay of 10 minutes for the facilities
field_map.defaultValue = 10
#Load the fire stations as service area facilities using the field mappings
arcpy.na.AddLocations(sa_layer, facilities_sublayer_name, "FireStations",
field_mappings)