ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

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

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

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

ArcGIS Solutions

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

ArcGIS Marketplace

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

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

ArcMap

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

CheckIntersectingFeatures

  • 描述
  • 说明
  • 语法
  • 代码示例

描述

返回一个布尔值,指示指定的网络数据集内与指定的要素图层中的要素相交的边源要素的数量是小于还是等于指定中断。如果相交要素的数量小于或等于允许限制,则函数将返回 True。如果相交要素的数量超过允许限制,则函数将返回 False。对于可作为线障碍或面障碍加载到网络分析图层中的要素,该函数有助于限制其数量。

说明

该函数用于限制可加载到网络分析图层子图层中的要素(尤其是线障碍和面障碍)数量。加载面障碍时,软件需要确定面要素与网络数据集中边源的交点。如果面要素与很多边源(例如州或县边界)相交,此过程可能很慢。例如,当创建一个执行路径分析的地理处理服务时,您可能希望限制加载为面障碍的要素数。为了实现合理的服务响应时间,如果面障碍与超过 5,000 个来自网络数据集的边源要素相交,可以限制面障碍的加载。使用该函数可以轻松地执行此类检查。

语法

CheckIntersectingFeatures (network_dataset_path, feature_layer, {cutoff})
参数说明数据类型
network_dataset_path

引用网络数据集目录路径的变量。执行检查时,将覆盖该网络数据集中的每个边源。网络数据集的目录路径可从网络数据集图层的 dataSource 属性或网络分析图层对象中获取。也可从网络数据集 Describe 对象的 catalogPath 属性中获取。

该参数还接受网络数据集图层对象。

String
feature_layer

此变量可用于引用目录路径、要素集、图层对象或图层名称,其中包含要测试的与网络数据集边相交的要素。支持 Layer 对象上存在的所有选择集或定义查询,且仅可用于指定要素的某个子集。

Layer
cutoff

执行检查时,将使用整数值作为中断。

(默认值为 5000)

Long

返回值

数据类型说明
Boolean

如果指定与网络数据集中的边源要素相交的要素数小于或等于中断值,则该函数返回 True;否则返回 False。

代码示例

CheckIntersectingFeatures 示例(工作流)

该示例显示了在考虑将天气条件作为减速障碍的情况下,如何找到一些商店位置之间的最佳路径。它说明了如何使用 CheckIntersectingFeatures 函数检测要用做面障碍的天气面是否与超过指定数量的来自网络数据集的边源要素相交。如果条件不符,脚本将生成标准错误消息。

import arcpy

#Set up the environment
arcpy.env.overwriteOutput = True
arcpy.CheckOutExtension("network")

#Set up variables
networkDataset = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
polygonBarriers = "C:/Data/WeatberSlowDownAreas.shp"
stops = "C:/Data/SanFrancisco.gdb/Analysis/Stores"
cutoff = 3000
impedanceAttribute = "TravelTime"
outputLayer = "C:/Data/WeatherRoute.lyr"

#Make a feature layer from the catalog path to the shapefile
barriersLayer = arcpy.management.MakeFeatureLayer(polygonBarriers,
                                                  "PolygonBarriersLayer").getOutput(0)
#Check if edge features intersected by barrier features are less than 3000
if arcpy.na.CheckIntersectingFeatures(networkDataset, barriersLayer, cutoff):
    #Proceed with creating a new route layer and loading the barriers
    routeLayer = arcpy.na.MakeRouteLayer(networkDataset, "WeatherRoute",
                                         impedanceAttribute).getOutput(0)
    #Get na class names based on the layer
    naClasses = arcpy.na.GetNAClassNames(routeLayer, "INPUT")
    #Create field mappings for loading barriers as scaled cost polygon barriers
    #with a slow down of 40%
    fieldMappings = arcpy.na.NAClassFieldMappings(routeLayer,
                                                  naClasses["PolygonBarriers"])
    fieldMappings["BarrierType"].defaultValue = 1
    fieldMappings["Attr_" + impedanceAttribute].defaultValue = 1.4
    #Load weather polygons as slow down barriers
    arcpy.na.AddLocations(routeLayer, naClasses["PolygonBarriers"],
                          polygonBarriers, fieldMappings)
    #Load stops
    arcpy.na.AddLocations(routeLayer, naClasses["Stops"], stops)
    #Solve the route
    arcpy.na.Solve(routeLayer)
    #Save the solved layer as a layer file
    arcpy.management.SaveToLayerFile(routeLayer, outputLayer)
else:
    #Return a standard error message if the test fails.
    arcpy.AddIDMessage("ERROR", 30095, "Polygon Barriers", cutoff)

arcpy.AddMessage("Completed")

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

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

关于 Esri

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