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 |