geo_point_to_s2cell()

Berechnet den Wert der S2-Zellentokenzeichenfolge eines geografischen Standorts.

Die S2-Zelle kann ein nützliches Geoclustering-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 verfügen über maximal 31 Ebenen, die von null bis 30 reichen und definieren, wie oft eine Zelle unterteilt wird. Die Ebenen reichen von der größten Abdeckung auf Ebene 0 mit einer Flächenabdeckung von 85.011.012,19 km² 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 sehr nahe beieinander liegen, weisen jedoch unterschiedliche S2-Zelltoken auf.

Hinweis

Wenn Sie die geo_s2cell_to_central_point() -Funktion 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.

Syntax

geo_point_to_s2cell(Länge,Breitengrad, [ Ebene ])

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Typ Erforderlich BESCHREIBUNG
longitude real ✔️ Geokoordinate, Längengradwert in Grad. Gültiger Wert ist eine reelle Zahl und im Bereich [-180, +180].
latitude real ✔️ Geokoordinate, Breitengradwert in Grad. Gültiger Wert ist eine reelle Zahl und im Bereich [-90, +90].
level int Definiert die angeforderte Zellenebene. Unterstützte Werte liegen 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 Flächenabdeckung der S2-Zelle pro Pegelwert

Für jede Ebene ist die Größe der S2-Zelle ähnlich, aber nicht genau gleich. In der Nähe befindliche Zellgrößen sind in der Regel gleich.

Ebene Minimale zufällige Zellrandlänge (UK) Maximale zufällige Zellrandlänge (US)
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

Vergleiche mit anderen verfügbaren Rastersystemen finden Sie unter Geoclustering mit Kusto-Abfragesprache.

Beispiele

US-Sturmereignisse, aggregiert nach S2-Zelle

Im folgenden Beispiel werden US-Storm-Ereignisse nach S2-Zellen aggregiert.

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)

Ausgabe

Screenshot: Kartenrendering von US-Sturmereignissen, aggregiert durch S2-Zelle.

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

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

Ausgabe

s2cell
88d9b

Suchen einer Gruppe von Koordinaten

Im folgenden Beispiel werden Koordinatengruppen gefunden. Jedes Koordinatenpaar in der Gruppe befindet sich in der S2-Zelle 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

Ausgabe

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)

Ausgabe

s2cell

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

print s2cell = geo_point_to_s2cell(1,1,35)

Ausgabe

s2cell

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

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

Ausgabe

s2cell