注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

几何缓冲区

支持:批处理,流处理

计算几何对象的缓冲区,可以为正缓冲距离和负缓冲距离。返回所有在给定距离内的点的近似表示(对于负缓冲区,返回所有点减去在边界缓冲距离内的点)。缓冲区会丢弃任何 z 坐标,线和点的零/负距离缓冲区将返回 null。

表达式类别:地理空间

声明的参数

  • 缓冲距离 - 以给定投影坐标系统的单位表示的缓冲距离。对于单边几何,非正缓冲将返回一个 null 值。对于多边形几何,负双边缓冲将缩小几何。对于线性或点几何,非正缓冲将返回 null。
    Expression<Double>
  • 几何列 - 需要缓冲的几何。
    Expression<String>
  • 投影坐标系统 - 执行缓冲的投影坐标系统,决定了"缓冲距离"参数的单位。几何将被转换为此坐标系统,缓冲后再转换回 WGS 84。格式为 "authority",例如,UTM 第 18N 区可以用 EPSG:32618 标识。
    Literal<String>
  • 非必填 缓冲端盖样式 - 缓冲端盖的样式,默认是圆形。如果设置为平面,则端盖在线端被截断为平面,而方形则在缓冲距离超出线端的地方将端盖方形化。
    Enum<Flat, Round, Square>
  • 非必填 缓冲连接样式 - 缓冲连接的样式,默认是圆形。锥形将导致“尖锐”角,而斜角将导致角被斜切(切掉)。
    Enum<Bevel, Mitre, Round>
  • 非必填 每象限的线段数 - 对于圆形端盖和连接样式,定义用于近似四分之一圆的线段数。合理的默认值是 8,这会导致最大误差为 2%。更高的值会导致更复杂的几何,可能降低性能。较低的值会导致结果几何的平滑度降低。
    Literal<Integer>
  • 非必填 单边或双边 - 缓冲是否为单边或双边。单边选项仅适用于线性几何(线字符串和多线字符串)和正缓冲距离。它们仅缓冲几何的左/右侧,就像沿着线从第一点到最后一点旅行一样。如果选择了单边缓冲,非线性几何(多边形和点)将被丢弃。
    Enum<Double sided, Single sided: left, Single sided: right>

输出类型: Geometry

示例

示例 1:基本情况

参数值:

  • 缓冲距离: distance
  • 几何列: geometry
  • 投影坐标系统: EPSG:32618
  • 缓冲端盖样式: ROUND
  • 缓冲连接样式: ROUND
  • 每象限的线段数: 8
  • 单边或双边: DOUBLE_SIDED
geometrydistance输出
{"type":"Point","coordinates":[-77.07368071728229,38.83040844313318]}10.0{"type":"Polygon","coordinates":[[[-77.07356558299462, 38.83041048767274],[-77.07356728534256, 38.83...
{"type":"LineString","coordinates":[[-77.07368071728229,38.83040844313318, 1],[-77.0725293738795,38.83042888342659, 1]]}10.0{"type":"Polygon","coordinates":[[[-77.07253198637027, 38.83051894052714],[-77.07250947453703, 38.83...
{"type":"Polygon","coordinates":[[[-77.07368071728229,38.83040844313318, 1],[-77.0725293738795,38.83...10.0{"type":"Polygon","coordinates":[[[-77.07379585155829, 38.83040639848026],[-77.07382199292853, 38.83...

示例 2:基本情况

参数值:

  • 缓冲距离: distance
  • 几何列: geometry
  • 投影坐标系统: EPSG:32618
  • 缓冲端盖样式: ROUND
  • 缓冲连接样式: ROUND
  • 每象限的线段数: 8
  • 单边或双边: DOUBLE_SIDED
geometrydistance输出
{"type":"Point","coordinates":[-77.07368071728229,38.83040844313318]}-1.0null
{"type":"LineString","coordinates":[[-77.07368071728229,38.83040844313318],[-77.0725293738795,38.83042888342659]]}-1.0null
{"type":"Polygon","coordinates":[[[-77.07368071728229,38.83040844313318],[-77.07370685720375,38.83130901341597],[-77.0725293738795,38.83042888342659],[-77.07368071728229,38.83040844313318]]]}-1.0{"type":"Polygon","coordinates":[[[-77.07366946524603, 38.830417653295896],[-77.07369471254682, 38.83128747619332],[-77.07255743103391, 38.83043739579778],[-77.07366946524603, 38.830417653295896]]]}
{"type":"Polygon","coordinates":[[[-77.07331719760555, 38.83072458211154],[-77.07331719760555, 38.83...-500.0null

示例 3:基本情况

参数值:

  • 缓冲距离: distance
  • 几何列: geometry
  • 投影坐标系统: EPSG:32618
  • 缓冲端盖样式: ROUND
  • 缓冲连接样式: ROUND
  • 每象限的线段数: 8
  • 单边或双边: SINGLE_SIDED_LEFT
geometrydistance输出
{"type":"LineString","coordinates":[[-77.07368071728229,38.83040844313318],[-77.0725293738795,38.83042888342659]]}5.0{"type":"Polygon","coordinates":[[[-77.0725293738795, 38.83042888342659],[-77.07368071728229, 38.830...
{"type":"Polygon","coordinates":[[[-77.0725293738795, 38.83042888342659],[-77.07368071728229, 38.830...5.0null
{"type":"Point","coordinates": [-77.0725293738795, 38.83042888342659]]}5.0null

示例 4:基本情况

参数值:

  • 缓冲距离: distance
  • 几何列: geometry
  • 投影坐标系统: EPSG:32618
  • 缓冲端盖样式: ROUND
  • 缓冲连接样式: ROUND
  • 每象限的线段数: 8
  • 单边或双边: SINGLE_SIDED_RIGHT
geometrydistance输出
{"type":"LineString","coordinates":[[-77.07368071728229,38.83040844313318],[-77.0725293738795,38.83042888342659]]}5.0{"type":"Polygon","coordinates":[[[-77.07368071728229, 38.83040844313318],[-77.0725293738795, 38.830...

示例 5:空值情况

参数值:

  • 缓冲距离: distance
  • 几何列: geometry
  • 投影坐标系统: EPSG:32618
  • 缓冲端盖样式: ROUND
  • 缓冲连接样式: ROUND
  • 每象限的线段数: 8
  • 单边或双边: DOUBLE_SIDED
geometrydistance输出
null10.0null

示例 6:空值情况

参数值:

  • 缓冲距离: distance
  • 几何列: geometry
  • 投影坐标系统: EPSG:32618
  • 缓冲端盖样式: ROUND
  • 缓冲连接样式: ROUND
  • 每象限的线段数: 8
  • 单边或双边: SINGLE_SIDED_LEFT
geometrydistance输出
{"type": "GeometryCollection","geometries": [{"type":"LineString","coordinates":[[-77.0736807172822...5.0{"type":"Polygon","coordinates":[[[-77.0725293738795, 38.83042888342659],[-77.07368071728229, 38.830...

示例 7:边缘情况

参数值:

  • 缓冲距离: distance
  • 几何列: geometry
  • 投影坐标系统: EPSG:32618
  • 缓冲端盖样式: ROUND
  • 缓冲连接样式: BEVEL
  • 每象限的线段数: 8
  • 单边或双边: DOUBLE_SIDED
geometrydistance输出
{"type":"Polygon","coordinates":[[[-77.07368071728229,38.83040844313318],[-77.0725293738795,38.83042888342659],[-77.07370685720375,38.83130901341597],[-77.07368071728229,38.83040844313318]]]}5.0{"type":"Polygon","coordinates":[[[-77.07373828442175, 38.83040742082089],[-77.0737644250676, 38.831...

示例 8:边缘情况

参数值:

  • 缓冲距离: distance
  • 几何列: geometry
  • 投影坐标系统: EPSG:32618
  • 缓冲端盖样式: FLAT
  • 缓冲连接样式: ROUND
  • 每象限的线段数: 8
  • 单边或双边: DOUBLE_SIDED
geometrydistance输出
{"type":"LineString","coordinates":[[-77.07368071728229,38.83040844313318],[-77.0725293738795,38.83042888342659]]}5.0{"type":"Polygon","coordinates":[[[-77.07253068012344, 38.830473911977066],[-77.07252806763852, 38.8...

示例 9:边缘情况

参数值:

  • 缓冲距离: distance
  • 几何列: geometry
  • 投影坐标系统: EPSG:32618
  • 缓冲端盖样式: ROUND
  • 缓冲连接样式: ROUND
  • 每象限的线段数: 12
  • 单边或双边: DOUBLE_SIDED
geometrydistance输出
{"type":"Point","coordinates":[-77.07368071728229,38.83040844313318]}10.0{"type":"Polygon","coordinates":[[[-77.07356558299462, 38.83041048767274],[-77.0735662268165, 38.830...

示例 10:边缘情况

参数值:

  • 缓冲距离: distance
  • 几何列: geometry
  • 投影坐标系统: EPSG:32618
  • 缓冲端盖样式: ROUND
  • 缓冲连接样式: MITRE
  • 每象限的线段数: 8
  • 单边或双边: DOUBLE_SIDED
geometrydistance输出
{"type":"Polygon","coordinates":[[[-77.07373697742014, 38.830362392304345],[-77.07376758060177, 38.83141669950616],[-77.072389088204, 38.83038632146655],[-77.07373697742014, 38.830362392304345]]]}5.0{"type":"Polygon","coordinates":[[[-77.07379323748556, 38.830316341450036],[-77.0738283041888, 38.83152438555785],[-77.07224880268927, 38.83034375933304],[-77.07379323748556, 38.830316341450036]]]}

示例 11:边缘情况

参数值:

  • 缓冲距离: distance
  • 几何列: geometry
  • 投影坐标系统: EPSG:32618
  • 缓冲端盖样式: ROUND
  • 缓冲连接样式: ROUND
  • 每象限的线段数: 8
  • 单边或双边: SINGLE_SIDED_LEFT
geometrydistance输出
{"type":"Point","coordinates":[-77.07368071728229,38.83040844313318]}-1.0null
{"type":"LineString","coordinates":[[-77.07368071728229,38.83040844313318],[-77.0725293738795,38.83042888342659]]}-1.0null
{"type":"Polygon","coordinates":[[[-77.07368071728229,38.83040844313318],[-77.07370685720375,38.83130901341597],[-77.0725293738795,38.83042888342659],[-77.07368071728229,38.83040844313318]]]}-1.0null

示例 12:边缘情况

参数值:

  • 缓冲距离: distance
  • 几何列: geometry
  • 投影坐标系统: EPSG:32618
  • 缓冲端盖样式: SQUARE
  • 缓冲连接样式: ROUND
  • 每象限的线段数: 8
  • 单边或双边: DOUBLE_SIDED
geometrydistance输出
{"type":"LineString","coordinates":[[-77.07368071728229,38.83040844313318],[-77.0725293738795,38.83042888342659]]}5.0{"type":"Polygon","coordinates":[[[-77.07253068012344, 38.830473911977066],[-77.0724731128864, 38.83...

示例 13:边缘情况

参数值:

  • 缓冲距离: distance
  • 几何列: geometry
  • 投影坐标系统: EPSG:32618
  • 缓冲端盖样式: ROUND
  • 缓冲连接样式: ROUND
  • 每象限的线段数: 8
  • 单边或双边: DOUBLE_SIDED
geometrydistance输出
{"type":"Point","coordinates":[-77.07368071728229,38.83040844313318]}0.0null
{"type":"LineString","coordinates":[[-77.07368071728229,38.83040844313318],[-77.0725293738795,38.83042888342659]]}0.0null
{"type":"Polygon","coordinates":[[[-77.07368071728229,38.83040844313318],[-77.07370685720375,38.83130901341597],[-77.0725293738795,38.83042888342659],[-77.07368071728229,38.83040844313318]]]}0.0{"type":"Polygon","coordinates":[[[-77.07368071728229,38.83040844313318],[-77.07370685720375,38.83130901341597],[-77.0725293738795,38.83042888342659],[-77.07368071728229,38.83040844313318]]]}