# Geospatial-Funktionen
# greatCircleDistance
Berechnet die Entfernung zwischen zwei Punkten auf der Erdoberfläche mithilfe der Großkreisformel.
greatCircleDistance(lon1Deg, lat1Deg, lon2Deg, lat2Deg)
Eingabeparameter
lon1Deg
— Längengrad des ersten Punktes in Grad. Bereich:[-180°, 180°]
.lat1Deg
— Breitengrad des ersten Punktes in Grad. Bereich:[-90°, 90°]
.lon2Deg
— Längengrad des zweiten Punktes in Grad. Bereich:[-180°, 180°]
.lat2Deg
— Breitengrad des zweiten Punktes in Grad. Bereich:[-90°, 90°]
.- Positive Werte entsprechen dem nördlichen Breitengrad und dem östlichen Längengrad, negative Werte entsprechen dem südlichen Breitengrad und dem westlichen Längengrad.
Rückgabewert
- Die Entfernung zwischen zwei Punkten auf der Erdoberfläche in Metern.
- Generiert eine Ausnahme, wenn die Eingabeparameterwerte außerhalb des Bereichs liegen.
Beispiel
SELECT greatCircleDistance(55.755831, 37.617673, 55.755831, 37.617673) AS greatCircleDistance
┌─greatCircleDistance─┐
│ 0 │
└─────────────────────┘
# geoDistance
Ähnlich wie greatCircleDistance
, berechnet jedoch die Entfernung auf dem WGS-84-Ellipsoid anstelle einer Kugel. Dies ist eine genauere Annäherung an das Erdgeoid. Die Leistung ist die gleiche wie bei greatCircleDistance
(kein Leistungsnachteil). Es wird empfohlen, geoDistance
zur Berechnung von Entfernungen auf der Erde zu verwenden.
Technische Anmerkung: Für nahe genug beieinander liegende Punkte berechnen wir die Entfernung unter Verwendung einer planaren Näherung mit der Metrik auf der Tangentialebene in der Mitte der Koordinaten.
geoDistance(lon1Deg, lat1Deg, lon2Deg, lat2Deg)
Eingabeparameter
lon1Deg
— Längengrad des ersten Punktes in Grad. Bereich:[-180°, 180°]
.lat1Deg
— Breitengrad des ersten Punktes in Grad. Bereich:[-90°, 90°]
.lon2Deg
— Längengrad des zweiten Punktes in Grad. Bereich:[-180°, 180°]
.lat2Deg
— Breitengrad des zweiten Punktes in Grad. Bereich:[-90°, 90°]
.- Positive Werte entsprechen dem nördlichen Breitengrad und dem östlichen Längengrad, negative Werte entsprechen dem südlichen Breitengrad und dem westlichen Längengrad.
Rückgabewert
- Die Entfernung zwischen zwei Punkten auf der Erdoberfläche in Metern.
- Generiert eine Ausnahme, wenn die Eingabeparameterwerte außerhalb des Bereichs liegen.
Beispiel
SELECT geoDistance(38.8976, 77.0366, 39.9496, 75.1503) AS geoDistance
┌─geoDistance─┐
│ 212458.73 │
└─────────────┘
# H3
Index abrufen: https://wolf-h3-viewer.glitch.me (opens new window)
- (8831aa5039fffff)16 = (613363270285262847)10
Überprüfen, ob h3IsValid(h3index)
gültig ist
SELECT h3IsValid(613363270285262847) AS h3IsValid;
┌─h3IsValid─┐
│ 1 │
└───────────┘
H3-Index in Längen- und Breitengrad umwandeln h3ToGeo(h3Index)
SELECT h3ToGeo(613363270285262847) AS coordinates;
┌─coordinates───────────────────────────┐
│(116.29523629955709,39.984633235997315)│
└───────────────────────────────────────┘
In Array von Eckpunkten umwandeln h3ToGeoBoundary
SELECT h3ToGeoBoundary(613363270285262847) AS coordinates;
┌─coordinates──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [(39.98791325592796,116.2925333574096),(39.98386803718472,116.29020686993137),(39.98058822646115,116.29290984546513),(39.98135339622932,116.297938782017),(39.98539816328819,116.30026548576008),(39.98867821224181,116.29756303675612)] │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
# h3IsValid
Überprüft, ob die Nummer ein gültiger H3 (opens new window)-Index ist.
h3IsValid(h3index)
Parameter
h3index
— Hexagon-Indexnummer. Typ: UInt64.
Rückgabewerte
- 1 — Die Nummer ist ein gültiger H3-Index.
- 0 — Die Nummer ist kein gültiger H3-Index.
- Typ: UInt8.
Beispiel
SELECT h3IsValid(617301318803390464) AS h3IsValid;
┌─h3IsValid─┐
│ 1 │
└───────────┘
# h3ToGeo
Gibt den Zentrums-Längen- und Breitengrad für den angegebenen H3 (opens new window)-Index zurück.
h3ToGeo(h3Index)
Argumente
h3Index
— H3-Index. UInt64.
Rückgabewerte
Ein Tupel bestehend aus zwei Werten: tuple(lon,lat)
. lon
— Längengrad. Float64. lat
— Breitengrad. Float64.
Beispiel
SELECT h3ToGeo(617301318803390464) AS coordinates;
┌─coordinates───────────────────────────┐
│ (35.537867206326645,54.20746993771632)│
└───────────────────────────────────────┘
# h3ToGeoBoundary
Gibt ein Array von Paaren (lon, lat)
zurück, das der Begrenzung des angegebenen H3-Index entspricht.
h3ToGeoBoundary(h3Index)
Argumente
h3Index
— H3-Index. Typ: UInt64.
Rückgabewerte
Array von Paaren '(lon, lat)'. Typ: Array(Float64, Float64).
Beispiel
SELECT h3ToGeoBoundary(617301318803390464) AS coordinates;
┌─coordinates───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [(54.20668646205218,35.53529359582246),(54.20566163343774,35.537605905213915),(54.20644505711934,35.54017955058831),(54.208253376128475,35.54044097223983),(54.209278241418595,35.53812853031426),(54.20849475102178,35.535554799273164)] │
└────────────────────────────────────────────────────────────────