PostGIS enlem / boylam sınırlama kutusu ile seçim


18

Bir harita üzerinde çizilmiş bir kutudan bir minLat, minLong, maxLat ve maxLong var. Şu anda, kutudaki tüm noktaları almak için benim sorgu şöyle:

SELECT *
FROM geomTable
WHERE (longitude BETWEEN minLon AND maxLon)
AND (latitude BETWEEN minLat AND maxLat)

Sonuçları elde etmek için enlem / boylam sütunları yerine geometri sütununu kullanmak istiyorum. Bu sorguyu denedim:

SELECT *
FROM mytable
WHERE mytable.geom && ST_MakeEnvelope(minLon, minLat, maxLon, maxLat, 4326);

bu yazıdan : postgis kullanarak sınırlama kutusunu seçin , ancak sonuç döndürmüyor .

Postgis'te geometri kullanarak min ve max lat / longs tarafından oluşturulan bir kutudaki tüm noktaların nasıl seçileceğine dair bir örneği var mı?


Hangi PostGIS sürümünü kullanıyorsunuz?
Mapperz

PostGIS sürüm 2.0.1
bl8rchk

2
her iki geom sütunu da aynı SRID'de mi?
nickves

Sanırım benim yaklaşımımla çok uzakta olabilirim ... Sadece bir geom sütunum var. SRID 2223
bl8rchk

@ bl8rchk tablo geomTableve alan mytable.geomnedir?
theartofbeing

Yanıtlar:


16

Verileriniz enlem / boylamda olmadığından, kutunuzu verilerinizin koordinat alanına itmeniz gerekir:

SELECT *
FROM mytable
WHERE 
  mytable.geom && 
  ST_Transform(ST_MakeEnvelope(minLon, minLat, maxLon, maxLat, 4326), 2223);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.