geo_point_buffer()

计算包含地球上点的给定半径内的所有点的多边形。

语法

geo_point_buffer(longitude,latitude,radius,tolerance)

详细了解语法约定

参数

客户 类型​​ 必需 说明
longitude real 地理空间坐标经度值(度)。 有效值为 [-180, +180] 范围内的实数。
latitude real 地理空间坐标纬度值(度)。 有效值为 [-90, +90] 范围内的实数。
radius real 以米为单位的缓冲区半径。 有效值必须为正。
tolerance real 定义以米为单位的公差,用于确定多边形可以偏离理想半径的程度。 如果未指定,则使用默认值 10。 公差应不低于半径的 0.0001%。 指定大于半径的公差会将公差降低到半径以下的最大可能值。

返回

围绕输入点的多边形。 如果坐标、半径或公差无效,则查询会生成 null 结果。

注意

  • 对按照 WGS-84 坐标参考系统表示的地理空间坐标进行解释。
  • 用于测量地球上的距离的大地基准是一个球体。

示例

以下查询计算围绕 [-115.1745008278, 36.1497251277] 坐标的多边形,其半径为 20 公里。

print buffer = geo_point_buffer(-115.1745008278, 36.1497251277, 20000)
缓冲区
{"type": "Polygon","coordinates": [ ... ]}

以下查询计算围绕每个点的缓冲区并统一结果

datatable(longitude:real, latitude:real, radius:real)
[
    real(-80.3212217992616), 25.268683367546604, 5000,
    real(-80.81717403605833), 24.82658441221962, 3000
]
| project buffer = geo_point_buffer(longitude, latitude, radius)
| summarize polygons = make_list(buffer)
| project result = geo_union_polygons_array(polygons)
result
{"type": "MultiPolygon","coordinates": [ ... ]}

由于点无效,以下示例将返回 true。

print result = isnull(geo_point_buffer(200, 1,0.1))
result
True

由于半径无效,以下示例将返回 true。

print result = isnull(geo_point_buffer(10, 10, -1))
result
True