Dela via


geo_h3cell_rings()

Beräknar H3-cellringarna.

Läs mer om H3 Cell.

Syntax

geo_h3cell_rings(h3cell,Avstånd)

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Obligatorisk Beskrivning
h3cell string ✔️ Ett H3-celltokenvärde eftersom det beräknades av geo_point_to_h3cell().
Avstånd int ✔️ Definierar det maximala ringavståndet från den angivna cellen. Giltigt avstånd är inom intervallet [0, 142].

Returer

En ordnad matris med ringmatriser där den första ringen innehåller den ursprungliga cellen, den andra ringen innehåller angränsande celler och så vidare. Om H3-cellen eller avståndet är ogiltigt genererar frågan ett null-resultat.

Anteckning

  • Information om omgående grannar för H3-celler finns i geo_h3cell_neighbors().
  • En cell kanske inte finns i ringen om femhörningsförvrängning påträffades.

Exempel

I följande exempel skapas ringar upp till avstånd 2.

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

Resultat

Ringar
[
["861f8894fffffff"],
["861f88947ffffff","861f8895fffffff","861f88867ffffff","861f8d497ffffff","861f8d4b7ffffff","861f8896fffffffff"],
["861f88967ffffff","861f88977ffffff","861f88957ffffff","861f8882fffffff","861f88877ffffff","861f88847ffffffff",","861f8886fffffff","861f8d49fffffff","861f8d487ffffff","861f8d4a7ffffff","861f8d59fffffff","861f8d597ffffffff"]
]

I följande exempel skapas alla celler på nivå 1 (alla grannar).

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

Resultat

Grannar
["861f88947ffffff", "861f8895fffffff", "861f88867ffffff", "861f8d497ffffff", "861f8d4b7ffffff","861f8896fffffffff"]

I följande exempel skapas en lista över celler från alla ringar.

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

Resultat

Celler
["861f8894fffffff","861f88947ffffff","861f8895fffffff","861f88867ffffff","861f8d497ffffff","861f8d4b7ffffff","861f8896fffffffff"]

I följande exempel sammanställs GeoJSON-geometrisamlingen för alla celler.

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"))

Resultat

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

Följande exempel returnerar true på grund av den ogiltiga cellen.

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

Resultat

is_null
1

Följande exempel returnerar true på grund av det ogiltiga avståndet.

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

Resultat

is_null
1