2015-09-16 74 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是不同的東西,因此每個都應包含不同的點。你似乎只想要一個多邊形的交集。 –

回答