擅长:python、mysql、java
<p>从shapely 1.8开始,将有一个<code>make_valid</code>方法</p>
<p>然而,目前shapely 1.8在pypi上还不是一个稳定的版本,您需要安装一个不稳定的版本</p>
<pre><code>pip3 install shapely==1.8a2
</code></pre>
<p>然后,您可以按照以下步骤使形状有效:</p>
<pre class="lang-py prettyprint-override"><code>from shapely.validation import make_valid
valid_shape = make_valid(invalid_shape)
</code></pre>
<p>请注意,形状的类型可能会更改,例如从多边形更改为多多边形</p>
<p>然而,我认为最好(1)正确地避免无效形状或(2)选择<code>make_valid</code>,因为这是shapely团队建议的,而不是<code>.buffer(0)</code>解决方法</p>