我在表格中有点数据和多边形数据。如何使用postgis和geodjango找到位于多边形边界上的点?使用postgis&geodjango在多边形边界上的点
1
A
回答
0
你可以只使用了PostGIS SQL我想:
SELECT points,area from points_table,area WHERE
area_geometry && points
AND ST_Contains(area_geometry,points)
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
获得多边形的边界,并检查是否包含点。
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)
相关问题
- 1. 使用点postgis分割多边形
- 2. 检索geodjango多边形对象的边界框
- 3. PostGIS中的大陆/国家边界(多边形vs线串)
- 4. 多边形边上的点
- 5. 多边形内的Postgis随机点
- 6. GeoDjango多边形区域
- 7. 多边形的边界框
- 8. 凹面船体在边界上取多边形的所有点
- 9. POSTGIS多边形ST_Intersects检查
- 10. POSTGIS显示多边形
- 11. 使用GeoDjango将geojson文件中的多边形数据导入PostGIS
- 12. PostGIS中多重多边形与多边形的区别
- 13. GeoDjango边界框过滤器使用
- 14. Python:找到点是否位于多边形的边界上
- 15. 处理多边形的多边形算法,处理跨边界的多边形
- 16. 如何使用GeoDjango从中心点创建多边形
- 17. MySQL - 使用空间多边形(边界)查找点
- 18. 使用LINQ的多边形中的点或多边形上的点
- 19. 创建使用ST_ConcaveHull从几何POSTGIS多边形点
- 20. 将点转换为多边形使用PostGIS
- 21. Geodjango与Mysql坐标/多边形精度
- 22. PostGIS的st_buffer返回多边形
- 23. 点在多边形
- 24. 在PostGIS中,如何查找多边形中的所有点?
- 25. 查找包围一组点的边界多边形的区域
- 26. 谷歌地图边界多边形
- 27. openlayers 3 - 单击多边形边界
- 28. 如何获得点周围的边界多边形?
- 29. 多边形内的点(不包括边界)
- 30. Postgis几何边界上的两个最近点
我不相信这是提问者的意思。这将找到多边形所包含的点,并且我认为不包括边界上的点。参见['ST_Contains'](http://postgis.refractions.net/docs/ST_Contains.html)。另外,我相信&&边界框检查是多余的; 'ST_Contains'已经做了边界框检查。 – jpmc26
刚刚确认ST_Contains不包括边界上的点。尝试以下查询:'SELECT ST_Contains(ST_GeomFromText('POLYGON((1 1,0 0,-1 1,1 1))'),ST_GeomFromText(g))FROM UNNEST(ARRAY ['POINT(1 1)', 'POINT(0 1)'])t(g)' – jpmc26