2012-12-11 15 views
12

Mam jedną kolumnę (latlon), która jest ST_MultiPolygon.Czy mogę sprawdzić, czy wielobok zawiera punkt w PostGIS?

Druga geometria jest punktem, który chcę sprawdzić, czy znajduje się wewnątrz jednego z moich wielokągów wielokąta.

Próbowałem:

SELECT ST_CONTAINS(latlon, ST_GeometryFromText('POINT(48.208417 16.372472)') 
FROM districts 

Zawsze zwraca false; dlaczego nie mogę sprawdzić, czy punkt jest w obrębie wieloboku z ST_Contains?

Odpowiedz

15

to działało tak:

SELECT name, st_contains(latlon, ST_GeomFromText('POINT(16.391944 48.218056)', 4326)) FROM bezirks 
+0

Można również użyć zapytania dodatkowego do określenia geometrii B. SELECT nazwa, ST_Contains (latLon, (SELECT geom FROM b WHERE id = 3)) FROM bezirks – DirtyBirdNJ

2

W st_contains współpracuje z wielu geometrii. Należy upewnić się, że punkt znajduje się na tym samym układzie współrzędnych geometrii wielokąta.

Musisz również wiedzieć, że jeśli punkt wpadnie w granice twojego multipolygonu, nie zostanie uznany za zawarty. W takim przypadku zwróci wartość false, ponieważ nie ma punktu wewnątrz geometrii wielokąta.