PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Verwenden Sie den Begrenzungsrahmen von PostGIS in der Vanilla-Postgres-Abfrage

Wenn Sie die Bbox-Koordinaten als getrennte Werte erhalten möchten, sollten Sie einen Blick auf ST_XMax werfen , ST_YMax , ST_XMin , ST_YMin . Der folgende CTE, der Ihre Abfrage einbettet, sollte Ihnen eine Vorstellung geben:

WITH j (geom) AS (
 SELECT 
  ST_Extent(ST_Envelope(
   ST_Rotate(ST_Buffer(
    ST_GeomFromText('POINT(-87.6297982 41.8781136)',4326)::GEOGRAPHY,160934)::GEOMETRY,0)))
)
SELECT
    ST_XMax(geom),ST_YMax(geom),
    ST_XMin(geom),ST_YMin(geom)
FROM j


      st_xmax      |     st_ymax     |      st_xmin      |     st_ymin      
-------------------+-----------------+-------------------+------------------
 -85.6903925527536 | 43.327349928921 | -89.5681600538661 | 40.4285062983098

Nebenbemerkung :Das Speichern von Geometriewerten als Zahlen sieht zwar einfach aus, ist aber selten die bessere Wahl - besonders wenn es um Polygone geht! Ich würde Ihnen also wirklich empfehlen, diese Werte als geometry zu speichern oder geography , was auf den ersten Blick komplex erscheinen mag, sich aber auf lange Sicht definitiv auszahlt.

Diese Antwort könnte ein Licht auf Entfernungs-/Containment-Abfragen mit Polygonen werfen:Getting all Buildings in range of 5 miles from specified coordinates