geo_point_buffer()
计算包含地球上点的给定半径内的所有点的多边形。
语法
geo_point_buffer(
经度,
纬度,
半径,
公差)
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
longitude | real |
✔️ | 地理空间坐标经度值(度)。 有效值为 [-180, +180] 范围内的实数。 |
latitude | real |
✔️ | 地理空间坐标纬度值(度)。 有效值为 [-90, +90] 范围内的实数。 |
radius | real |
✔️ | 以米为单位的缓冲区半径。 有效值必须为正。 |
tolerance | real |
定义以米为单位的公差,用于确定多边形可以偏离理想半径的程度。 如果未指定,则使用默认值 10 。 公差应不低于半径的 0.0001%。 指定大于半径的公差会将公差降低到半径以下的最大可能值。 |
返回
围绕输入点的多边形。 如果坐标、半径或公差无效,则查询会生成 null 结果。
示例
以下查询计算围绕 [-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 |