geo_h3cell_rings()

计算 H3 单元格环。

详细了解 H3 单元格

语法

geo_h3cell_rings(h3cell,distance)

详细了解语法约定

参数

客户 类型​​ 必需 说明
h3cell string geo_point_to_h3cell() 算出的 H3 单元格令牌值。
distance int 定义与给定单元格的最大环距离。 有效距离在 [0, 142] 范围内。

返回

环形阵列的有序阵列,其中第一个环包含原始单元格,第二个环包含相邻单元格,依此类推。 如果 H3 单元格或距离无效,则查询生成 null 结果。

注意

  • 如果只是 H3 单元格直接邻域,请参阅 geo_h3cell_neighbors()
  • 如果遇到五角扭曲,则环中可能不存在单元格。

示例

以下示例生成距离为 2 的环。

print rings = geo_h3cell_rings('861f8894fffffff', 2)

输出

rings
[
["861f8894fffffff"],
["861f88947ffffff","861f8895fffffff","861f88867ffffff","861f8d497ffffff","861f8d4b7ffffff","861f8896fffffff"],
["861f88967ffffff","861f88977ffffff","861f88957ffffff","861f8882fffffff","861f88877ffffff","861f88847ffffff","861f8886fffffff","861f8d49fffffff","861f8d487ffffff","861f8d4a7ffffff","861f8d59fffffff","861f8d597ffffff"]
]

以下示例生成级别 1 的所有单元格(所有邻域)。

print neighbors = geo_h3cell_rings('861f8894fffffff', 1)[1]

输出

neighbors
["861f88947ffffff", "861f8895fffffff", "861f88867ffffff", "861f8d497ffffff", "861f8d4b7ffffff","861f8896fffffff"]

以下示例生成所有环的单元格列表。

print rings = geo_h3cell_rings('861f8894fffffff', 1)
| mv-apply rings on 
(
  summarize cells = make_list(rings)
)

输出

单元格
["861f8894fffffff","861f88947ffffff","861f8895fffffff","861f88867ffffff","861f8d497ffffff","861f8d4b7ffffff","861f8896fffffff"]

以下示例组合所有单元格的 GeoJSON 几何集合。

print rings = geo_h3cell_rings('861f8894fffffff', 1)
| mv-apply rings on 
(
  summarize make_list(rings)
)
| mv-expand list_rings to typeof(string)
| project polygon = geo_h3cell_to_polygon(list_rings)
| summarize polygon_lst = make_list(polygon)
| project geojson = bag_pack(
    "type", "Feature",
    "geometry", bag_pack("type", "GeometryCollection", "geometries", polygon_lst),
    "properties", bag_pack("name", "H3 polygons collection"))

输出

geojson
{ "type": "Feature", "geometry": { "type": "GeometryCollection", "geometries": [ ... ... ... ]}, "properties": { "name": "H3 polygons collection" }}

以下示例由于单元格无效而返回 true。

print is_null = isnull(geo_h3cell_rings('abc', 3))

输出

is_null
1

以下示例由于距离无效而返回 true。

print is_null = isnull(geo_h3cell_rings('861f8894fffffff', 150))

输出

is_null
1