PostGIS和坐标,确定点是否在多边形/多面(kml)内

时间:2018-11-23 15:23:57

标签: sql postgresql polygon postgis

我的目标是确定Input中的点(坐标)是否在多边形内(该点和多边形/多面都是来自postGIS的地理对象)。现在,我的查询始终返回false。

基本上,即使点在多边形内,它始终会返回false:

select st_contains(st_geomfromtext('POINT(42.17591110412206 13.716918686169493)',4326),st_geomfromkml('<Polygon><outerBoundaryIs><LinearRing><coordinates>13.722101,42.177614,0 13.72....... </Polygon>')
);

我当然会截断kml,无论如何格式是(lat,lng,0),也在我使用4326的那一点上,我不确定该值是否正确。我也都尝试过

Point(LAT,LNG) and Point(LNG,LAT)

有人可以帮助我吗?我真的没有主意,我的查询肯定有问题。

1 个答案:

答案 0 :(得分:1)

实际上,关于官方文档(https://postgis.net/docs/ST_Contains.html):

  

布尔型ST_Contains(几何geomA,几何geomB);

     

如果几何B完全在几何A之内,则返回TRUE。

一个点不能包含多边形;)