sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL:zobrazit cesty v rámci ohraničujícího rámečku

Protože jsou vaše souřadnice uloženy ve sloupcích x,y, musíte použít ST_MakePoint vytvořit správnou geometrii. Poté můžete vytvořit BBOX pomocí funkce ST_MakeEnvelope a zkontrolujte, zda jsou počáteční a koncové souřadnice uvnitř pole BBOX pomocí ST_Contains , např.

WITH bbox(geom) AS (
  VALUES (ST_MakeEnvelope(-8.68494,41.24895,-8.47569,41.11591,4326))
)
SELECT * FROM trips,bbox
WHERE 
  ST_Contains(bbox.geom,ST_SetSRID(ST_MakePoint(lon_start,lat_start),4326)) AND
  ST_Contains(bbox.geom,ST_SetSRID(ST_MakePoint(lon_end,lat_end),4326));

Poznámka: CTE není opravdu nutné a je v dotazu pouze pro ilustrační účely. Můžete opakovat ST_MakeEnvelope fungovat za obou podmínek v WHERE klauzule namísto bbox.geom . Tento dotaz také předpokládá SRS WGS84 (4326).



  1. Propojení MySQL s C# přes vytvořenou databázi PHPMyAdmin

  2. Můžete v MySQL rozdělit jeden alias druhým?

  3. Změna majitele stolu

  4. Uložit obrázek do databáze blob; načíst z db do Pictureboxu