Freigeben über


geo_point_to_s2cell()

Berechnet den Wert der S2-Zellentokenzeichenfolge eines geografischen Standorts.

S2-Zelle kann ein nützliches Geospatialclustering-Tool sein. Eine S2-Zelle ist eine Zelle auf einer kugelförmigen Oberfläche und hat geodätische Kanten. S2-Zellen sind Teil einer Hierarchie, die die Erdoberfläche teilt. Sie haben maximal 31 Ebenen, von Null bis 30, die die Anzahl der Unterteilungen einer Zelle definieren. Die Ebenen reichen von der größten Abdeckung auf Ebene Null mit Flächenabdeckung von 85.011.012,19km² bis zur niedrigsten Abdeckung von 0,44 cm² auf Ebene 30. Da S2-Zellen auf höheren Ebenen unterteilt werden, bleibt das Zellzentrum gut erhalten. Zwei geografische Standorte können sich sehr nahe beieinander befinden, aber sie haben unterschiedliche S2-Zelltoken.

Hinweis

Wenn Sie die funktion geo_s2cell_to_central_point() für eine S2-Zelltokenzeichenfolge aufrufen, die für Längengrad x und Breitengrad y berechnet wurde, gibt die Funktion nicht unbedingt x und y zurück.

Weitere Informationen zur S2-Zellhierarchie.

Syntax

geo_point_to_s2cell(Längengrad,, [ Ebene ])

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Type Erforderlich Beschreibung
longitude real ✔️ Geospatialkoordinate, Längengradwert in Grad. Der gültige Wert ist eine reelle Zahl und im Bereich [-180, +180].
latitude real ✔️ Geospatialkoordinate, Breitenwert in Grad. Der gültige Wert ist eine reelle Zahl und im Bereich [-90, +90].
level int Definiert die angeforderte Zellenebene. Unterstützte Werte befinden sich im Bereich [0, 30]. Wenn nichts angegeben wird, wird der Standardwert 11 verwendet.

Gibt zurück

Der Wert der S2-Zellentokenzeichenfolge eines bestimmten geografischen Standorts. Wenn die Koordinaten oder Ebenen ungültig sind, erzeugt die Abfrage ein leeres Ergebnis.

Ungefähre Bereichsabdeckung der Zelle S2 pro Levelwert

Für jede Ebene ist die Größe der Zelle S2 ähnlich, aber nicht genau gleich. Zellengrößen in der Nähe sind tendenziell gleich.

Ebene Minimale zufällige Zellenrandlänge (UK) Maximale Zufällige Zellenrandlänge (USA)
0 7842 km 7842 km
1 3921 km 5004 km
2 1825 km 2489 km
3 840 km 1310 km
4 432 km 636 km
5 210 km 315 km
6 108 km 156 km
7 54 km 78 km
8 27 km 39 km
9 14 km 20 km
10 7 km 10 km
11 3 km 5 km
12 1699 m 2 km
13 850 m 1225 m
14 425 m 613 m
15 212 m 306 m
16 106 m 153 m
17 53 m 77 m
18 27 m 38 m
19 13 m 19 m
20 7 m 10 m
21 3 m 5 m
22 166 cm 2 m
23 83 cm 120 cm
24 41 cm 60 cm
25 21 cm 30 cm
26 10 cm 15 cm
27 5 cm 7 cm
28 2 cm 4 cm
29 12 mm 18 mm
30 6 mm 9 mm

Die Tabellenquelle finden Sie in dieser statistischen Ressource der S2-Zelle.

Vergleich mit anderen verfügbaren Rastersystemen finden Sie unter Geospatialclustering mit Kusto-Abfragesprache.

Beispiele

US-Sturmereignisse, aggregiert von der Zelle S2

Im folgenden Beispiel werden US-Sturmereignisse gefunden, die von S2-Zellen aggregiert werden.

StormEvents
| project BeginLon, BeginLat
| summarize by hash=geo_point_to_s2cell(BeginLon, BeginLat, 5)
| project geo_s2cell_to_central_point(hash)
| render scatterchart with (kind=map)

Output

Screenshot eines Kartenrenderings von US-Sturmereignissen, aggregiert von der Zelle S2.

Im folgenden Beispiel wird die S2-Zell-ID berechnet.

print s2cell = geo_point_to_s2cell(-80.195829, 25.802215, 8)

Output

s2cell
88d9b

Suchen einer Gruppe von Koordinaten

Im folgenden Beispiel werden Gruppen von Koordinaten gefunden. Jedes Koordinatenpaar in der Gruppe befindet sich in der Zelle S2 mit einer maximalen Fläche von 1632,45 km².

datatable(location_id:string, longitude:real, latitude:real)
[
  "A", 10.1234, 53,
  "B", 10.3579, 53,
  "C", 10.6842, 53,
]
| summarize count = count(),                                        // items per group count
            locations = make_list(location_id)                      // items in the group
            by s2cell = geo_point_to_s2cell(longitude, latitude, 8) // s2 cell of the group

Output

s2cell count locations
47b1d 2 ["A","B"]
47ae3 1 ["C"]

Leere Ergebnisse

Im folgenden Beispiel wird aufgrund der ungültigen Koordinateneingabe ein leeres Ergebnis erzeugt.

print s2cell = geo_point_to_s2cell(300,1,8)

Output

s2cell

Im folgenden Beispiel wird aufgrund der ungültigen Eingabeebene ein leeres Ergebnis erzeugt.

print s2cell = geo_point_to_s2cell(1,1,35)

Output

s2cell

Im folgenden Beispiel wird aufgrund der ungültigen Eingabeebene ein leeres Ergebnis erzeugt.

print s2cell = geo_point_to_s2cell(1,1,int(null))

Output

s2cell