2012-12-11 15 views
12

ST_MultiPolygonの1つの列(latlon)が得られました。マルチポリゴンにPostGISのポイントが含まれているかどうかチェックできますか?

他のジオメトリは、マルチポリゴンの内部にあるかどうかをチェックしたい点です。

私が試した:

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

をそれは常にfalseを返します。なぜ点がマルチポリゴン内にあるかどうかをST_Containsで確認できないのですか?

答えて

15

それはこのように働いた:

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

サブクエリを使用して、Bジオメトリを指定することもできます。 SELECT名、ST_Contains(latLon、(SELECT geom FROM b WHERE id = 3))FROM bezirks – DirtyBirdNJ

2

st_containsはマルチジオメトリで動作します。 ポイントがポリゴンジオメトリの同じ座標系にあることを確認する必要があります。

また、ポイントがマルチポリゴンの境界に該当する場合、ポイントが含まれているとはみなされません。この場合、ポリゴンジオメトリの内側にポイントがないので、falseを返します。

関連する問題