我在表格中有点数据和多面数据。如何使用postgis和geodjango找到位于多边形边界上的点?
答案 0 :(得分: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
来获取多边形的边界并检查它是否包含该点。
答案 1 :(得分:0)
我猜你可以使用PostGIS SQL:
SELECT points,area from points_table,area WHERE
area_geometry && points
AND ST_Contains(area_geometry,points)
答案 2 :(得分: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)