POSTGIS ST_Intersects返回包含多边形但不包含多边形

时间:2015-07-21 19:19:14

标签: sql postgresql postgis

我在一个带有PostGIS扩展的数据库中有一个名为parks的PostgreSQL表,其中有一个名为perimeter的列,其数据类型为地理位置。

如果我使用where子句发出查询,如:

WHERE ST_Intersects(
  parks.perimeter,
  ST_GeogFromText('POLYGON((-122.31755953233409 47.61300937889849, ...))')
) 

我看到公园部分重叠查询多边形的结果和完全包含在查询多边形位中的公园我看不到完全包含查询多边形的公园。

ST_Intersects的documentation说:

  

ST_Intersects - 如果Geometries / Geography“在2D中空间相交”,则返回TRUE - (共享空间的任何部分)

根据这个定义,如果parks.perimeter包含我的查询多边形,我应该看到一个结果。

我可以用第二个ST_Contains来解决这个问题,但这会减慢我的时间关键查询速度,并且应该是不必要的。

有没有人解释为什么我会看到这种行为,以及如果没有第二个条款我可以做些什么来修复它?

感谢。

0 个答案:

没有答案