擅长:python、mysql、java
<p>根据<a href="http://geopandas.org/data_structures.html#geoseries" rel="nofollow noreferrer">documentation</a>:</p>
<blockquote>
<p>Binary operations can be applied between two GeoSeries, in which case
the operation is carried out elementwise. The two series will be
aligned by matching indices.</p>
</blockquote>
<p>你的例子不应该有用。因此,如果要测试单个多边形中的每个点,则必须执行以下操作:</p>
<pre><code>poly = GeoSeries(Polygon([(0,0), (0,2), (2,2), (2,0)]))
g1.intersects(poly.ix[0])
</code></pre>
<p>输出:</p>
<pre><code> 0 True
1 True
2 True
dtype: bool
</code></pre>
<p>或者如果要测试特定地理系列中的所有几何图形:</p>
<pre><code>points.intersects(poly.unary_union)
</code></pre>
<p>Geopandas依靠Shapely进行几何工作。直接使用它有时很有用(而且更容易阅读)。以下代码也适用于广告:</p>
<pre><code>from shapely.geometry import *
p1 = Point(.5,.5)
p2 = Point(.5,1)
p3 = Point(1,1)
poly = Polygon([(0,0), (0,2), (2,2), (2,0)])
for p in [p1, p2, p3]:
print(poly.intersects(p))
</code></pre>
<p>你也可以看看
<a href="https://stackoverflow.com/questions/28028910/how-to-deal-with-rounding-errors-in-shapely">How to deal with rounding errors in Shapely</a>对于边界上的点可能出现的问题。</p>