我在表中有点数据和多面数据。如何使用 postgis 和 geodjango 找到位于多多边形边界上的点?
问问题
873 次
3 回答
1
我无法帮助你解决 geodjango,但我可以给你一个 PostGIS 查询。
SELECT ST_Contains(ST_Boundary(ST_GeomFromText('POLYGON((1 1,0 0, -1 1, 1 1))')),
ST_GeomFromText(points.g))
FROM UNNEST(ARRAY['POINT(1 1)', 'POINT(0 1)']) points (g)
关键是用来ST_Boundary
获取多边形的边界并检查它是否包含该点。
于 2013-02-26T23:58:18.620 回答
0
我猜你可以只使用 PostGIS SQL:
SELECT points,area from points_table,area WHERE
area_geometry && points
AND ST_Contains(area_geometry,points)
于 2012-11-27T07:02:48.610 回答
0
使用 ST_Covers 它包含自己的边界。但是在这种情况下要小心,一个点可以被许多(多)多边形包含。
SELECT ST_Covers(ST_GeomFromText('POLYGON((1 1,0 0, -1 1, 1 1))'),
ST_GeomFromText(points.g))
FROM UNNEST(ARRAY['POINT(1 1)', 'POINT(0 1)', 'POINT(0 0.5)']) points (g)
于 2015-07-20T12:52:24.910 回答