Saya memiliki minLat, minLong, maxLat, dan maxLong dari kotak yang digambar di peta. Saat ini, permintaan saya untuk mendapatkan semua poin di dalam kotak terlihat seperti ini:
SELECT *
FROM geomTable
WHERE (longitude BETWEEN minLon AND maxLon)
AND (latitude BETWEEN minLat AND maxLat)
Saya ingin menggunakan kolom geometri alih-alih kolom lat / panjang untuk mendapatkan hasil. Saya mencoba pertanyaan ini:
SELECT *
FROM mytable
WHERE mytable.geom && ST_MakeEnvelope(minLon, minLat, maxLon, maxLat, 4326);
dari posting ini: Pilih kotak pembatas menggunakan postgis tetapi tidak mengembalikan hasil.
Adakah yang punya contoh bagaimana memilih semua titik di dalam kotak yang dibuat oleh min dan max lat / long menggunakan geometri di postgis?
geomTable
dan bidangnyamytable.geom
?Jawaban:
Data Anda tidak dalam lat / lon, jadi Anda perlu mendorong kotak Anda ke dalam ruang koordinat data Anda:
sumber