擅长:python、mysql、java
<p>当你们填满整个地球时,你们会得到H3个穿过反子午线的多边形。这些将在东半球(经度>;0)和西半球(经度<;0)都有顶点。你可以使用例如</p>
<pre><code>for line in polylines:
if any(p[1] > 0 for p in line) and any(p[1] < 0 for p in line):
print(line)
</code></pre>
例如,考虑这个列表中的一个边:</P>
<pre><code>(-65.7243888731199, -176.62192487031285), (-66.42506103952591, 175.12130159942038)
</code></pre>
<p>它跨越经度-176到173。H3假设顶点与测地(最短)路径相连,即在这种情况下,一条穿过反周边的短路径。因此,多边形应同时出现在地图的最左侧和最右侧。但当你把它交给像Folium这样的平面地图绘制工具时,它对测地线或反周边一无所知,而是画了一条横跨整个地球的长直线(地图上最短的线,而不是地球上最短的线),穿过主子午线。这是这里所有长的近水平线的来源</p>
<p>根据您的需要,有几种解决方案。常见的选择是固定穿过反多边形的每个多边形,在左侧或右侧绘制它。假设您将所有这些多边形向右移动,然后在所有负经度上添加360,将-176替换为184。您将得到一个小多边形,Folium应该能够“正确”绘制,尽管它会突出到180子午线的右侧(虽然我没有Folium的经验,但这是典型的行为)</p>