ArcGIS Desktop

  • 文档
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

GetNAClassNames

  • 摘要
  • 说明
  • 语法
  • 代码示例

摘要

返回指定为参数的网络分析图层中的网络分析类名称字典。字典关键字是网络分析类名称,值是从网络分析图层中引用的网络分析类的图层名称。图层名称在某些地理处理工具(例如添加位置和向分析图层添加字段)中作为输入信息使用。

说明

网络分析图层由一个或多个网络分析类组成。每个网络分析类都是一个引用了要素类或表的要素图层或表视图。此函数返回这些要素类或表名称与对应的要素图层或表视图名称之间的映射。图层名称不是常量,因为最终用户可以对其进行编辑,也可以将其本地化为 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 —包含来自网络分析图层的所有类。这是默认值。
  • INPUT —仅包含那些在网络分析图层中支持输入模式的类。此选项将包含支持输入和输出模式的类。
  • OUTPUT —仅包含那些在网络分析图层中支持输出模式的类。此选项将包含支持输入和输出模式的类。

(默认值为 ANY)

String
nalocation_type

字符串将指定基于其对位置字段的支持而包含在输出目录的网络分析类。此参数值可以是下列任一字符串关键字:

  • ANY —包含网络分析图层中的类,而无论它们是否支持位置字段。这是默认值。
  • LOCATION —仅包含网络分析图层中支持位置字段或位置范围的那些类。
  • NOT_LOCATION —仅包含网络分析图层中不支持位置字段或位置范围的那些类。

(默认值为 ANY)

String
shape_type

字符串将基于形状类型指定包含在输出目录的网络分析类。此参数值可以是下列任一字符串关键字:

  • ANY —包含网络分析图层中的所有形状类型类。这是默认值。
  • POINT —仅包含网络分析图层中的点类。
  • LINE —仅包含网络分析图层中的线类。
  • POLYGON —仅包含网络分析图层中的面类。
  • NULL —仅包含网络分析图层中的表。

(默认值为 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")

相关主题

  • 什么是网络分析类?

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • 内部人员博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2018 Esri. | 隐私政策 | 法律声明