摘要
返回指定为参数的网络分析图层中的网络分析类名称字典。字典关键字是网络分析类名称,值是从网络分析图层中引用的网络分析类的图层名称。图层名称在某些地理处理工具(例如添加位置和向分析图层添加字段)中作为输入信息使用。
讨论
网络分析图层由一个或多个网络分析类组成。每个网络分析类都是一个引用了要素类或表的要素图层或表视图。此函数返回这些要素类或表名称与对应的要素图层或表视图名称之间的映射。图层名称不是常量,因为最终用户可以对其进行编辑,也可以将其本地化为 ArcGIS 的其他语言版本。此函数有助于编写跨不同 ArcGIS 语言版本运行的便携脚本代码。字典关键字始终保持不变,可用于获取指定网络分析类的可变图层名称。
网络分析类具有各种特性,具体取决于网络分析图层。一些类用于存储分析期间使用的输入,一些类用于存储从求解分析图层过程中获得的输出。如果类用作网络位置并具有不同的形状类型(例如点、线或面或者无形状(换句话说,表)),则类还可以有位置字段或位置范围。naclass_edit_type、nalocation_type 和 shape_type 参数可用于进一步过滤网络分析类的列表。例如,添加位置工具中的 Sub Layer 参数仅列出支持输入编辑模式的网络分析类,因此可使用 INPUT 作为 naclass_edit_type 参数的值来获得此类列表。
语法
GetNAClassNames (network_analyst_layer, {naclass_edit_type}, {nalocation_type}, {shape_type})
参数 | 说明 | 数据类型 |
network_analyst_layer | 该变量引用一个从网络分析图层获取的 Layer 对象。该对象可以源自地图文档中的现有图层或向网络分析图层文件指定目录路径作为 Layer 类的参数。可以使用 Layer 对象上的 isNetworkAnalystLayer 属性来确认某个给定的 Layer 对象是否为网络分析图层。 | Layer |
naclass_edit_type | 字符串将指定基于其在网络分析图层中的编辑模式包含在输出目录的网络分析类。此参数值可以是下列任一字符串关键字:
(默认值为 ANY) | String |
nalocation_type | 字符串将指定基于其对位置字段的支持而包含在输出目录的网络分析类。此参数值可以是下列任一字符串关键字:
(默认值为 ANY) | String |
shape_type | 字符串将基于形状类型指定包含在输出目录的网络分析类。此参数值可以是下列任一字符串关键字:
(默认值为 ANY) | String |
返回值
数据类型 | 说明 |
Dictionary | 一个字典对象,其关键字是网络分析类名称,值是从网络分析图层中引用的网络分析类的图层名称。 |
代码示例
GetNAClassNames 示例(工作流)
该示例展示了如何在消防站周围生成 1 分钟、2 分钟和 3 分钟服务区域面,并将这些服务区域导出为地理数据库中的要素类。它说明了如何使用 GetNAClassNames 函数来获取可用作其他 ArcPy 函数输入的值。
import arcpy
#Set up the environment
arcpy.env.overwriteOutput = True
arcpy.CheckOutExtension("network")
#Set up variables
networkDataset = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
facilities = "C:/Data/SanFrancisco.gdb/Analysis/FireStations"
outputPolygons = "C:/Data/SanFrancisco.gdb/FireStationServiceAreas"
#Make a new service area layer
serviceAreaLayer = arcpy.na.MakeServiceAreaLayer(networkDataset, "FireStationServiceAreas",
"TravelTime", "TRAVEL_FROM",
"1 2 3").getOutput(0)
#Get the network analysis class names from the service area layer
naClasses = arcpy.na.GetNAClassNames(serviceAreaLayer)
#Load fire stations as facilities
arcpy.na.AddLocations(serviceAreaLayer, naClasses["Facilities"], facilities)
#Solve the service area layer
arcpy.na.Solve(serviceAreaLayer)
#Get the polygons sublayer from the service area layer
polygonsSublayer = arcpy.mapping.ListLayers(serviceAreaLayer,
naClasses["SAPolygons"])[0]
#Export the polygons sublayer as a feature class
arcpy.management.CopyFeatures(polygonsSublayer, outputPolygons)
arcpy.AddMessage("Completed")