ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

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

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

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

ArcGIS Solutions

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

ArcGIS Marketplace

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

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

ArcMap

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

3D 邻近

  • 描述
  • 使用方法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

描述

计算每个输入要素到一个或多个邻近要素类中的最近要素的三维距离。

使用方法

  • 所有输入要素必须有 Z 值,且所有几何类型均受支持。也可将输入要素指定为邻近要素以确定同一要素类中的最近要素。

  • 可将以下字段添加到输入要素的属性表中:

    • NEAR_FID - 最近要素的 FID。值 -1 表示在指定的搜索半径范围内未找到匹配项。
    • NEAR_DIST - 输入要素上的最近点与最近要素上的最近点之间的 2D 距离(水平距离)。
    • NEAR_DIST3 - 输入要素上的最近点与最近要素上的最近点之间的 3D 距离(斜距)。
    • NEAR_DELTX - 在 X 轴方向上,输入要素上的最近点与最近要素上的最近点之间的距离。
    • NEAR_DELTY - 在 Y 轴方向上,输入要素上的最近点与最近要素上的最近点之间的距离。
    • NEAR_DELTZ - 在 Z 轴方向上,输入要素上的最近点与最近要素上的最近点之间的距离。
    • NEAR_FROMX - 输入要素上距离最近要素最近的点的 X 坐标。
    • NEAR_FROMY - 输入要素上距离最近要素最近的点的 Y 坐标。
    • NEAR_FROMZ - 输入要素上距离最近要素最近的点的 Z 坐标。
    • NEAR_X - 最近要素上最近点的 X 坐标。
    • NEAR_Y - 最近要素上最近点的 Y 坐标。
    • NEAR_Z - 最近要素上最近点的 Z 坐标。
    • NEAR_ANG_H - 相对最近点的算术水平角,以度表示。
    • NEAR_ANG_V - 相对最近点的高程角,以度表示。水平为零;垂直向上为 90;垂直向下为 -90。
    • NEAR_FC - 包含最近要素的要素类的路径。仅当指定了多个“邻近要素”时,才会添加此字段。
    注:

    如果前面提及的字段已存在,则将更新这些字段的值。

语法

arcpy.ddd.Near3D(in_features, near_features, {search_radius}, {location}, {angle}, {delta})
参数说明数据类型
in_features

输入要素类,将使用有关最近要素的信息设置其要素属性。

Feature Layer
near_features
[near_features,...]

将计算到输入要素邻近性的一个或多个要素。如果指定了多个要素类,则将向输入要素类额外添加一个名为 NEAR_FC 的字段,以识别包含最近要素的邻近要素类。

Feature Layer
search_radius
(可选)

将根据给定输入为其确定最近要素的最大距离。如果未指定值,则将确定在任意距离处的最近要素。

Linear Unit
location
(可选)

确定是否将输入要素和邻近要素上的最近点的坐标添加到输入属性表。

  • NO_LOCATION —不会向输入要素添加坐标。这是默认设置。
  • LOCATION —向输入要素添加坐标。
Boolean
angle
(可选)

确定是否将输入要素与最近要素之间的算术水平角和垂直角添加到输入属性表中。

  • NO_ANGLE —不会向输入属性表添加角。这是默认设置。
  • ANGLE —会向输入属性表中的 NEAR_ANG_H 和 NEAR_ANG_V 字段添加算术水平角和垂直角。
Boolean
delta
(可选)

确定是否向输入属性表添加输入要素与最近要素之间沿 X、Y 和 Z 轴的距离。

  • NO_DELTA —不会向输入属性表添加距离。这是默认设置。
  • DELTA —会计算 NEAR_DELTX、NEAR_DELTY 和 NEAR_DELTZ 字段中沿 X、Y 和 Z 轴的距离。
Boolean

派生输出

名称说明数据类型
out_feature_class

更新后的输入要素。

要素图层

代码示例

Near3D 示例 1(Python 窗口)

下面的示例演示了如何在 Python 窗口中使用此工具。

import arcpy
from arcpy import env

arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.Near3D_3d("points_3D.shp", "buildings_multipatch.shp", "30", "LOCATION", "ANGLE", "DELTA")
Near3D 示例 2(独立脚本)

下面的示例演示了如何在独立 Python 脚本中使用此工具。

'''****************************************************************************
Name: Near 3D Example
Description: This script demonstrates how to use 
             the Near 3D tool to identify the nearest z-aware features
             that satisfy the results from a queried feature.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env

try:
    # Obtain a license for the ArcGIS 3D Analyst extension
    arcpy.CheckOutExtension('3D')
    # Set environment settings
    env.workspace = 'C:/data'
    # Set Local Variables
    inFC = 'homes.shp'
    nearFC = 'radiotowers.shp'
    # See the 'Building an SQL expression' topic for more information
    # Query the field 'MATERIAL' for the string 'Reinforced Concrete'
    SQL_Expression = "'"'MATERIAL'"' = 'Reinforced Concrete'" 
    #Execute Make Feature Layer
    arcpy.MakeFeatureLayer_management(nearFC, 'Near Layer', SQL_Expression)    
    result = arcpy.GetCount_management('Near Layer')
    if int(result.getOutput(0)) == 0:
        arcpy.AddMessage('{0} has no features that satisfy the query: {1}'\
             .format(nearFC, SQL_Expression))
    else:
        #Execute Near3D
        arcpy.Near3D_3d(inFC, 'nearLayer', '', 'LOCATION', 'ANGLE')

except arcpy.ExecuteError:
    print arcpy.GetMessages()
except:
    # Get the traceback object
    tb = sys.exc_info()[2]
    tbinfo = traceback.format_tb(tb)[0]
    # Concatenate error information into message string
    pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
          .format(tbinfo, str(sys.exc_info()[1]))
    msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
    # Return python error messages for script tool or Python Window
    arcpy.AddError(pymsg)
    arcpy.AddError(msgs)

环境

  • 当前工作空间
  • 范围

许可信息

  • Basic: 需要 3D Analyst
  • Standard: 需要 3D Analyst
  • Advanced: 需要 3D Analyst

相关主题

  • 3D 要素工具集概览
  • 关于 3D 要素
  • 有关使用 ArcGIS 3D Analyst 扩展模块进行地理处理的基础知识
  • 使用 3D 集合运算符
  • 如何将现有 3D 模型导入到多面体要素类中
  • 多面体 (Multipatch)
  • 导入 3D 文件

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

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