Skip To Content

创建缓冲区

注:

目前,此功能仅在 Map Viewer 经典版(之前称为 Map Viewer)中受支持。 该功能将在新 Map Viewer 的未来版本中提供。

创建缓冲区 创建缓冲区工具可围绕输入点、线或面要素以指定距离为半径来创建区域。

工作流示意图

创建缓冲区工作流示意图

使用 GeoAnalytics Tools 进行的分析

通过跨多个 ArcGIS GeoAnalytics Server 计算机和核心组件的分布式处理来运行使用 GeoAnalytics Tools 进行的分析。GeoAnalytics ToolsArcGIS Enterprise 中标准要素分析工具的参数和功能不同。要了解有关这些差别的详细信息,请参阅要素分析工具差别

术语

术语描述

测地线

是指在球体上绘制的线。 在地球上绘制的测地线表示地球大地水准面的曲率。

平面

在平面上(即笛卡尔平面)上测量的直线距离。 这也被称为欧氏距离。

地图投影

使用数学公式将地球上的球面坐标与平面坐标关联起来。

有关详细信息,请参阅关于地图投影

多部件

具有多个部分(具有一组属性)的要素。 例如在州图层中,可将夏威夷州看作是一个多部分要素,因为其单独的几何部分均划分为单个州。

示例

以下为工具的使用示例:

  • 某市议会已注意到城市中人均酒类商店数量较高。 为了让儿童远离酒类,议会决定对以学校、公园和图书馆为中心半径为 1000 英尺的范围内的酒类商店发布广告颁布法规。 议会还想要限制距离学校、公园和图书馆超过 1000 英尺的建筑物的新酒类执照。

  • 开发公司希望通过在城区中心打造新型综合性开发项目来盈利。 该开发项目必须位于距商店、饭店或轻轨站点 0.25 英里内的便利区域。

用法说明

可通过以下三个选项之一输入缓冲区大小:

  • 距离 - 使用常数值(所有缓冲区大小都将相同)
  • 字段 - 使用字段中的值(不同要素缓冲区的大小可以不同)
  • 表达式 - 向各个要素应用表达式(不同要素的基于表达式的值可以不同)

了解有关应用缓冲区表达式的详细信息

默认情况下,创建缓冲区工具会在缓冲区相交位置创建重叠缓冲区。 如果输入要素为面,则缓冲区内将包括输入区域。 您可以使用融合和多部分参数来控制重叠缓冲区的处置方式。 以下三种融合选项可供使用:

  • - 该选项为默认选项。 缓冲区将在其相交位置重叠。
  • 全部 - 融合所有要素。 多部分参数可用于确定是将所有要素融合为一个要素(多部分为 true),还是仅融合重叠要素(多部分为 false)。
  • 字段 - 根据字段值融合要素。 您可以选择一个或多个字段,并将类值融合在一起。 多部分参数可用于确定是将所有匹配字段要素融合为一个要素(多部分为 true),还是仅融合重叠匹配字段要素(多部分为 false)。

在使用全部字段进行融合时,您可以计算统计数据。 统计数据仅适用于融合所有要素或字段值,无法(使用多部分参数)按地理位置进行应用。 下表将解释这些选项将如何通过下方屏幕截图中所示的六个要素发挥作用。 颜色用于表示字段融合所使用的字段值(蓝色或橙色)。

用于缓冲区融合的输入点示例

融合选项多部分为 false(默认)多部分为 true
未应用融合的缓冲区选项

当没有融合应用于缓冲要素时,系统将创建六个要素。 这是默认设置。 与此相同的还有标准分析工具的重叠选项。

如果融合选项为,则多部分无法为 true。

全部
多部分为 false 时融合的所有要素

在融合了所有值且多部分为 false 时,系统将创建三个要素。 系统仅会融合重叠要素。 与此相同的还有标准分析工具的融合选项。

多部分为 true 时融合的所有要素

在融合了所有值且多部分为 true 时,系统将创建一个要素。 如果选中了此选项,则结果将始终为一个要素。

字段
多部分为 false 时融合的具有类值的要素

当根据字段应用融合时,系统将创建四个要素(此处字段为输入点的颜色)。 系统仅会融合指定字段值相同的重叠要素。

多部分为 true 时融合的具有类值的要素

当根据字段应用融合且允许多部分时,系统将创建两个要素(此处字段为输入点的颜色)。 字段值相同的值将始终为单个要素。

如果选中使用当前地图范围,则仅对当前地图范围中可见的要素进行分析。如果未选中,则将分析输入图层中的所有输入要素,包括超出当前地图范围的要素。

局限性

如果您使用距离选项或采用了线性单位的表达式,则您的数据必须位于投影坐标系内。

创建缓冲区的工作原理

创建缓冲区工具使用测地线或平面方法构建缓冲区。 测地线缓冲区表示地球的实际形状(即椭圆体,更准确地说是大地水准面)。 并会计算曲面(大地水准面)上而不是平坦表面(笛卡尔平面)上两点间的距离。 平面(或欧氏)缓冲区为平面上两点间算得的直线距离。 欧氏缓冲区在投影平面地图上绘制时显示为正圆,而测地线缓冲区仅在地球上显示为正圆。 测地线缓冲区在平面地图上可能会显示异常,但当显示在地球上时,这些缓冲区的外观将正常。

以下示例在人口超过 1 千万的城市周围使用 300 英里的缓冲区。 更接近赤道的缓冲区看起来要比靠北的缓冲区小,因为用于显示 Web 地图的 Web 墨卡托投影会使相对于对象到赤道的距离的物体大小发生改变。

显示在世界不同地区的 300 英里缓冲区
300 英里测地线缓冲区将显示为不同大小,具体取决于缓冲要素的纬度。

在大多数情况下,尤其在您的数据满足以下条件的情况下,适合使用测地线缓冲区:

  • 您希望将缓冲区延伸至国际日期变更线之外。
  • 您的数据集覆盖多个 UTM 带。

了解有关使用平面和测地线缓冲区的详细信息

计算

当使用全部字段选项融合图层时,系统将根据字段计算统计数据。 无论多部分为 true 还是 false,计算结果都将相同。 数值统计数据共有八个选项(计数总和最小值最大值范围平均值标准差方差),字符串统计数据有两个选项(计数任意)。 系统始终会计算所融合要素数量的计数。

计数统计(针对字符串和数值字段)用于计算非空值的数量。以下值的计数等于 5:[0, 1, 10, 5, null, 6] = 5。该组值的计数等于 3:[Primary, Primary, Secondary, null] = 3

ArcGIS API for Python 示例

可通过 ArcGIS API for Python 获取创建缓冲区工具。

本示例可通过感觉到震颤的预测距离缓冲所有地震,并将它们融合为一个要素。

# Import the required ArcGIS API for Python modules
import arcgis
from arcgis.gis import GIS
from arcgis.geoanalytics import use_proximity

# Connect to your ArcGIS Enterprise portal and confirm that GeoAnalytics is supported
portal = GIS("https://myportal.domain.com/portal", "gis_publisher", "my_password", verify_cert=False)
if not portal.geoanalytics.is_supported():
    print("Quitting, GeoAnalytics is not supported")
    exit(1)   

# Find the big data file share dataset you'll use for analysis
search_result = portal.content.search("", "Big Data File Share")

# Look through the search results for a big data file share with the matching name
bdfs_search = next(x for x in search_result if x.title == "bigDataFileShares_NaturalDisaters")

# Look through the big data file share for Earthquakes
earthquakes = next(x for x in bdfs_search.layers if x.properties.name == "Earthquakes")

# Set the tool environment settings
arcgis.env.verbose = True
arcgis.env.defaultAggregations = True

# Run the Create Buffers tool 
output = use_proximity.create_buffers(input_layer = earthquakes, 
                                      field = "TremorDistance", 
                                      method = "Geodesic", 
                                      dissolve_option = "All", 
                                      output_name = "Earthquake_impacts")

# Visualize the tool results if you are running Python in a Jupyter Notebook
processed_map = portal.map('USA')
processed_map.add_layer(output)
processed_map

类似工具

使用创建缓冲区可围绕输入要素创建区域。 其他工具或许在解决略有差异的类似问题时十分有用。

Map Viewer 经典版 分析工具

如果要在输的距离范围内计算图层的统计数据,请使用连接要素工具。

如果要在使用标准分析工具的区域中创建缓冲区,请使用创建缓冲区工具。

ArcGIS Desktop 分析工具

可在 ArcGIS Pro 中获取创建缓冲区工具。

创建缓冲区可执行缓冲区融合工具的功能。