PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Usa il riquadro di delimitazione di PostGIS nella query di Postgres vanilla

Se vuoi ottenere le coordinate bbox come valori separati, potresti dare un'occhiata a ST_XMax , ST_YMax , ST_XMin , ST_YMin . Il seguente CTE, che incorpora la tua query, dovrebbe darti un'idea:

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

Nota a margine :La memorizzazione dei valori della geometria come numeri può sembrare semplice, ma non è quasi mai la scelta migliore, specialmente quando si tratta di poligoni! Quindi ti suggerirei davvero di memorizzare questi valori come geometry o geography , che a prima vista potrebbe sembrare complesso, ma a lungo termine ripaga sicuramente.

Questa risposta potrebbe far luce sulle domande di distanza/contenimento che coinvolgono i poligoni:Getting all Buildings in range of 5 miles from specified coordinates