Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
ST_ GeoSquare
ST_ unterteilt die Domäne ([-180, 180], [-90, 90]) GeoSquare rekursiv bis zu einer bestimmten Tiefe in gleiche quadratische Bereiche, die als Geosquare bezeichnet werden. Die Unterteilung basiert auf der Position eines angegebenen Punkts. Eines der GeoSquares, das den Punkt enthält, wird bei jedem Schritt unterteilt, bis die maximale Tiefe erreicht ist. Die Auswahl dieses GeoSquares ist stabil, das heißt, das Funktionsergebnis hängt nur von den Eingabeargumenten ab. Die Funktion gibt einen eindeutigen Wert zurück, der das endgültige GeoSquare identifiziert, in dem sich der Punkt befindet.
ST_ GeoSquare akzeptiert einen PUNKT, wobei die X-Koordinate den Längengrad und die Y-Koordinate den Breitengrad darstellt. Der Längen- und der Breitengrad sind auf [-180, 180] bzw. [-90, 90] begrenzt. Die Ausgabe von ST_ GeoSquare kann als Eingabe für die ST_ GeomFromGeoSquare Funktion verwendet werden.
Der Bogen des äquatorialen Umfangs der Erde beträgt 360° und ist in zwei Hemisphären (Ost- und Westhalbkugel) unterteilt, von denen jede vom 0°-Meridian aus 180°-Längslinien (Meridiane) aufweist. Konventionell sind die östlichen Längengrade „+“-Koordinaten (positiv), wenn sie auf der kartesischen Ebene auf eine X-Achse projiziert werden, und die westlichen Längengrade sind „-“-Koordinaten (negativ), wenn sie auf der kartesischen Ebene auf eine X-Achse projiziert werden. Es gibt 90°-Breitengrade nördlich und südlich des 0°-Äquatorialumfangs der Erde, die jeweils parallel zum 0°-Äquatorumfang der Erde verlaufen. Konventionell kreuzen die nördlichen Breitengrade die (positive) „+“-Y-Achse, wenn sie auf die kartesische Ebene projiziert werden, und die südlichen Breitengrade kreuzen die (negative) „-“-Y-Achse, wenn sie auf die kartesische Ebene projiziert werden. Das Kugelraster, das durch die Kreuzung von Längs- und Breitengraden entsteht, wird in ein auf die kartesische Ebene projiziertes Raster mit positiven und negativen X-Koordinaten sowie positiven und negativen Y-Koordinaten auf der kartesischen Ebene umgewandelt.
Der Zweck von ST_ besteht GeoSquare darin, nahe gelegene Punkte mit gleichen Codewerten zu kennzeichnen oder zu markieren. Punkte, die sich auf demselben GeoSquare befinden, erhalten den gleichen Codewert. Ein GeoSquare wird verwendet, um geografische Koordinaten (Breitengrad und Längengrad) in eine Ganzzahl zu codieren. Eine größere Region wird in Raster unterteilt, um ein Gebiet auf einer Karte mit unterschiedlichen Auflösungen abzugrenzen. Ein GeoSquare kann für die räumliche Indexierung, die räumliche Aufteilung, die Umkreissuche, Standortsuche und die Erstellung eindeutiger Ortskennungen verwendet werden. Die Funktion ST_ GeoHash folgt einem ähnlichen Prozess der Aufteilung einer Region in Raster, hat jedoch eine andere Codierung.
Syntax
ST_GeoSquare(geom)
ST_GeoSquare(geom, max_depth)
Argumente
- geom
-
Ein PUNKT-Wert vom Datentyp
GEOMETRY
oder ein Ausdruck, der zu einem PUNKT-Untertyp ausgewertet wird. Die X-Koordinate (Längengrad) des Punkts muss innerhalb dieses Bereichs liegen:-180
-180
. Die Y-Koordinate (Breitengrad) des Punkts muss innerhalb dieses Bereichs liegen:-90
-90
. - max_depth
-
Ein Wert vom Datentyp
INTEGER
. Gibt an, wie oft die Domäne, die den Punkt enthält, maximal rekursiv unterteilt wird. Der Wert muss eine Ganzzahl zwischen 1 und 32 sein. Der Standardwert ist 32. Die tatsächliche endgültige Anzahl der Unterteilungen ist kleiner oder gleich des festgelegten Werts für max_depth.
Rückgabetyp
BIGINT
Die Funktion gibt einen eindeutigen Wert zurück, der das endgültige GeoSquare identifiziert, in dem sich der Eingabepunkt befindet.
Wenn die Eingabegeometrie kein Punkt ist, gibt die Funktion einen Fehler zurück.
Wenn der Eingabepunkt leer ist, ist der Rückgabewert keine gültige Eingabe für die ST_ GeomFromGeoSquare-Funktion. Verwenden Sie die ST_ IsEmpty Funktion, um Aufrufe von ST_ GeoSquare mit einem leeren Punkt zu verhindern.
Wenn der Eingabepunkt nicht innerhalb des zulässigen Bereichs liegt, gibt die Funktion einen Fehler zurück.
Wenn die Eingabe max_depth außerhalb des zulässigen Bereichs liegt, gibt die Funktion einen Fehler zurück.
Beispiele
Die folgende SQL-Anweisung gibt ein GeoSquare aus einem Eingabepunkt zurück.
SELECT ST_GeoSquare(ST_Point(13.5, 52.5));
st_geosquare
-----------------------
-4410772491521635895
Die folgende SQL-Anweisung gibt ein GeoSquare aus einem Eingabepunkt mit einer maximalen Tiefe von 10
zurück.
SELECT ST_GeoSquare(ST_Point(13.5, 52.5), 10);
st_geosquare
--------------
797852