使用postgis&amp ;;指向多边形边界。 GeoDjango内置

时间:2012-11-26 05:50:44

标签: postgis geodjango

我在表格中有点数据和多面数据。如何使用postgis和geodjango找到位于多边形边界上的点?

3 个答案:

答案 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)