Bir PostGIS db var ve bazı bölge (sınırlayıcı kutu) içinde yalan noktaları bulmak istiyorum. Kutuyu oluşturan dört dikdörtgen noktanın tümünü (gerekirse) alabileceğim iki koordinat kümesi var. Söz konusu veri sütunuma 'point' adı verildi ve aynı zamanda tip noktası.
- Dört koordinat seti (enlem / boylam) belirtmek ve kutunun içindeki tüm noktaları almak için yine de var mı?
- Veya iki nokta belirtin ve DB'nin dikdörtgenin köşelerini çözmesine izin verin ve noktaları
Ne elde etmek istediğim konusunda net olmamam durumunda. Bir nokta yerine lat ve uzun bir alan olsaydı 'vanilya' sql ile eşdeğer:
SELECT * FROM myTable where lat> xMin AND lat < xMax AND long > yMin and long < yMax
GÜNCELLEME DÜZENLEME:
Underdark'ın çözümünü deniyorum. İlk başta ST_MakePoint yapıcı (şimdi yapıyorum) yoktu ve hala çok benzer bir hata alıyorum (sadece farklı bir karakterde).
SELECT * FROM myTable WHERE ST_Within(ST_MakePoint(point),GeometryFromText('POLYGON((75 20,80 30,90 22,85 10,75 20))',4326))
ve bu hatayı alıyorum:
ERROR: function st_makepoint(point) does not exist
LINE 1: SELECT * FROM triples WHERE ST_Within(ST_MakePoint(point),Ge...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
********** Error **********
ERROR: function st_makepoint(point) does not exist
SQL state: 42883
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Character: 39
DÜZENLE:
Kısa vadede çözebilirim:
SELECT * FROM triples WHERE box '((point1),(point2))' @> point
Ama PostGIS işlevlerinin hiçbirinin neden benim için çalışmadığını çözmek zorundayım.