2015-09-16 72 views
1

我有一个包含我的所有点的列表:[(lon, lat), ...](红色,绿色和蓝色的),现在我要检查哪些点是我的多边形的一部分,我的结果集应该包含所有蓝色和所有绿色节点。点和顶点

我发现http://geospatialpython.com/2011/08/point-in-polygon-2-on-line.html,身材匀称和matplotlib。第一个根本不工作。匀称不返回我需要的所有节点。 Matplotlib似乎也考虑了外界的边界点。

什么是让所有(蓝)绿节点最便宜的方式?

enter image description here

+2

对于'shapely',你想'poly.intersects(点)',而不是'poly.contains(点)'。 –

+0

我不知道这是否是一个错误,但是当我使用'shapely.geometry.Polygon()'从我的坐标,'poly.intersects'和'poly.contains'按预期方式工作建立一个多边形!但''shapely.geometry.shape(feature ['geometry'])。contains(point)'只返回属于LineString一部分的点。也许不是一个错误和我的错,但仍然有点混乱。谢谢! – marcus

+0

使用相同坐标的LinearRings(或特殊类型的LineString)和Polygons是不同的东西,因此每个都应包含不同的点。你似乎只想要一个多边形的交集。 –

回答