【发布时间】:2018-02-28 03:08:44
【问题描述】:
我的位置存储在 location_table(point_location 几何)中,现在我在谷歌地图上绘制一个多边形并将该多边形(几何)传递给后端,我想找到该多边形内的所有位置。
SELECT POINT_LOCATION
FROM LOCATIONS_TABLW
WHERE ST_Contains(GeomFromEWKT(?), POINT_LOCATION);
当我将多边形从谷歌地图传递到后端时,这会给我随机结果。它没有给我所有完全在多边形内的点。它给了我甚至在多边形之外的点。
在postgis中准确找到多边形内所有点的正确方法是什么(也包括边界情况)
更新: 我们尝试使用 st_intersects() 效果不佳。
更新
请在下方查询
SRID = 4326; POLYGON(( - 103.30549637500008 20.852735681153252,-103.08103481249998 20.612974162085475,-101.6261045 20.537532106266806,-99.83567868749998 20.395877027062447,-99.80306537500002 22.0572706994358,-99.64994812500004 28.918636198451633,-121.1212769375 8.69559423007209,-103.30549637500008 20.852735681153252)) SRID=4326;POINT(-103.496956 20.722446) SRID=4326;POINT(-103.4955 20.723544)
选择 ST_Intersects(GeomFromEWKT('SRID=4326;POINT(-103.496956 20.722446)'), GeomFromEWKT('SRID=4326;POLYGON((-103.30549637500008 20.852735681153252,-10 3.08103481249998 20.612974162085475,-101.6261045 20.537532106266806,-99.83567868749998 20.395877027062447,-99.80306537500002 22.0572706994358,-99.64994812500004 28.918 636198451633,-121.1212769375 8.69559423007209,-103.30549637500008 20.852735681153252))')); 这应该返回 False,但它正在返回 true。
【问题讨论】:
标签: postgresql gis postgis