Skip to main content

Network Analyst 图层属性

汇总

Describe 函数会返回 Network Analyst 图层的下述属性。

对于 Network Analyst 图层, Describe 函数的 dataType 属性将返回值 "NALayer" 。

Network Analyst 图层包含了通过 Network Analyst 扩展模块分析网络问题时使用的输入和参数的信息。

属性

属性 说明 数据类型

network

(只读)

Network Dataset 对象。

该对象可用于获取分析图层所使用的基础网络数据集的所有属性,例如 catalogPath 。

Object

nameString

(只读)

Network Analyst 图层的名称。

String

solverName

(只读)

图层所引用的 Network Analyst 求解程序。 每个图层仅能引用一个求解程序。 此属性返回以下关键字:

  • 最近设施点求解程序

  • 最后一公里配送求解器程序

  • 位置分配求解程序

  • OD 成本矩阵求解程序

  • 路径求解程序

  • 服务区求解程序

  • 车辆路线问题求解程序

  • 废弃物收集求解程序

String

impedance

(只读)

在分析过程中用作阻抗的网络成本属性。

String

accumulators

(只读)

累积为分析一部分的网络成本属性的,用分号分隔的列表。

String

restrictions

(只读)

适用于分析的限制属性的,用分号分隔的列表。

String

ignoreInvalidLocations

(只读)

指定求解程序是否忽略 Network Analyst 类中的无效网络位置。

True 值表明无效位置已被求解程序忽略。 False 值表明无效位置不会被求解程序忽略。

Boolean

uTurns

(只读)

指定求解程序如何处理交汇点处的 U 形转弯,在停靠点之间进行网络遍历时可能会出现该情况。 此属性返回以下关键字:

  • ALLOW_UTURNS

  • NO_UTURNS

  • ALLOW_DEAD_ENDS_ONLY

  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY

String

useHierarchy

(只读)

指定 Network Analyst 图层是否在使用等级。 此属性返回以下关键字:

  • USE_HIERARCHY

  • NO_HIERARCHY

String

hierarchyAttribute

(只读)

等级属性的名称。

String

hierarchyLevelCount

(只读)

用于定义等级属性的等级范围数。 最大值为 3。

Integer

maxValueForHierarchyX

(只读)

给定的等级属性具有可定义等级范围的值。 每个范围的最大值可从 maxValueForHierarchyX 属性中获取,其中 X 代表等级级别。 例如,第一个等级范围的最大值(用于定义主要道路)可从 maxValueForHierarchy1 属性中获取。

使用 hierarchyLevelCount 属性确定给定等级属性的 maxValueForHierarchy 属性的可能数量。 例如,如果 hierarchyLevelCount 属性返回 3,则 Describe 对象将支持 MaxValueForHierarchy1 和 MaxValueForHierarchy2 属性。

Integer

locatorCount

(只读)

为确定网络位置而搜索的类的总数。

Integer

locators

(只读)

Network Analyst Locator 对象。 该对象可用于获取用于查找网络位置的类的名称、捕捉类型以及搜索查询信息。

Object

findClosest

(只读)

指定定位网络分析对象时搜索网络源要素的方式。 此属性返回以下关键字:

  • MATCH_TO_CLOSEST

  • PRIORITY

String

searchTolerance

(只读)

用于指示查找网络位置时所用搜索容差和单位的,用空格分隔的字符串。

String

excludeRestrictedElements

(只读)

指定是否可将网络分析对象仅定位于网络源的可遍历部分。该属性会返回下列关键字:

  • INCLUDE

  • EXCLUDE

String

solverProperties

(只读)

Network Analyst Solver 对象。 该对象可用于确定 Network Analyst 图层中特定于求解程序的属性。

注:

最后一公里配送和废弃物收集分析图层没有此属性。

Object

children

(只读)

返回将各个网络分析类(例如停靠点和路线)引用为 图层 的 Describe 对象列表。

将网络分析图层作为图层文件存储于磁盘上时不能使用该属性。

List

parameterCount

(只读)

所有由 Network Analyst 图层所使用的基础网络数据集的网络属性定义的属性参数的总量。

Integer

parameters

(只读)

Network Attribute Parameter 对象。 可利用该对象确定用于网络分析的属性参数。

Object

SolverOverrides

(只读)
注:

此属性仅限内部使用。

String

代码示例

Network Analyst 图层属性示例

显示指定 Network Analyst 图层文件的属性。

# Name: NALayerProperties_ex01.py
# Description: Lists all the properties that can be derived by describing a
#              network analysis layer.

import arcpy

#Arguments..
#in_layer is the name of the Network Analysis layer file to be described.
in_layer = "C:/Data/Route.lyr"

#Get the description object using Describe.
desc = arcpy.Describe(in_layer)

arcpy.AddMessage(" ")
arcpy.AddMessage("== Description of network analysis layer " + in_layer + " ==")
arcpy.AddMessage(" ")

#Print general infomation.
justify = 35
nds = desc.network
solvername = desc.solverName
arcpy.AddMessage("---- General information:")
arcpy.AddMessage(" %*s: %s" % (justify, "Network" , nds.catalogPath))
arcpy.AddMessage(" %*s: %s" % (justify, "SolverName" , desc.solverName))
arcpy.AddMessage(" %*s: %s" % (justify, "Impedance" , desc.impedance))
arcpy.AddMessage(" %*s: %s" % (justify, "Accumulators" , desc.accumulators))
arcpy.AddMessage(" %*s: %s" % (justify, "Restrictions" , desc.restrictions))
arcpy.AddMessage(" %*s: %s" % (justify, "Ignore invalid locations?" ,
                str(desc.ignoreInvalidLocations)))
arcpy.AddMessage(" %*s: %s" % (justify, "UTurn policy" , desc.UTurns))
arcpy.AddMessage(" %*s: %s" % (justify, "Using hierarchy?" , desc.useHierarchy))
arcpy.AddMessage(" %*s: %s" % (justify, "Exclude Restricted Elements?" ,
                               desc.excludeRestrictedElements))
arcpy.AddMessage(" ")

#A note about the dynamic properties (indicated by X in the help system)
#In order to access the dynamic properties use Python's built in getattr()
#function. In order to find out if a dynamic property is supported by the
#describe object, use Python's built in hasattr() function.

# Print attribute parameter information
arcpy.AddMessage(" ---- Attribute Parameter information ----")
count = desc.parameterCount
if count == 0:
    arcpy.AddMessage(" ---- No Attribute Parameters defined ----")
else:
    parameters = desc.parameters
    for i in range(0, count):
        attributeName = getattr(parameters,"attributeName" + str(i))
        parameterName = getattr(parameters, "parameterName" + str(i))
        parameterValue = getattr(parameters, "parameterValue" + str(i))
        arcpy.AddMessage(" %*s: %s: %s" % (justify, attributeName,
                                           parameterName, parameterValue))

# Print hierarchy information
if desc.useHierarchy.lower() == "use_hierarchy":
    arcpy.AddMessage(" ---- Hierarchy information ----")
    arcpy.AddMessage(" %*s: %s" % (justify, "Hierarchy Attribute Name",
                                   desc.hierarchyAttribute))
    count = desc.hierarchyLevelCount
    arcpy.AddMessage(" %*s: %d" % (justify, "Hierarchy Level Count" , count))

    for i in range(0, count ):
        levelRange = ""
        if i == 0:
            levelUB = getattr(desc,"maxValueForHierarchy" + str(i+1))
            levelRange = "up to %s" % levelUB
        elif i == (count - 1):
            prevLevelUB = getattr(desc, "maxValueForHierarchy" + str(i))
            levelRange = "%s and higher" % (prevLevelUB + 1)
        else:
            prevLevelUB =  getattr(desc, "maxValueForHierarchy" + str(i))
            levelUB = getattr(desc,"maxValueForHierarchy" + str(i + 1))
            levelRange = "%s - %s" % ((prevLevelUB + 1), levelUB)

        arcpy.AddMessage(" %*s %d range: %s" % (justify, "level", (i + 1),
                                                levelRange))

    arcpy.AddMessage(" ")

# Print locator information.
arcpy.AddMessage("---- Locator information:")
count = desc.locatorCount
arcpy.AddMessage(" %*s: %d" % (justify, "Count" , count))
arcpy.AddMessage(" %*s: %s" % (justify, "Find Closest?" , desc.findClosest))
arcpy.AddMessage(" %*s: %s" % (justify, "Search Tolerance",
                               desc.searchTolerance))
arcpy.AddMessage(" %*s: %s" % (justify, "Exclude Restricted Elements",
                               desc.excludeRestrictedElements))
locators = desc.locators
for i in range(0, count):
    sourceName = getattr(locators, "source" + str(i))
    sourceType = getattr(locators, "snapType" + str(i))
    searchQuery = getattr(locators, "searchQuery" + str(i))
    arcpy.AddMessage(" %*s: %s" %(justify, sourceName, sourceType))
    arcpy.AddMessage(" %*s: %s" %(justify, sourceName, searchQuery))