首页 > 解决方案 > 是否可以用叶子在多边形上切孔?

问题描述

我在 Python 3 中使用 Folium 在地图上绘制形状。我想画一个多边形,然后用另一个多边形在里面切一个“洞”。

以下代码一个接一个地绘制 2 个多边形。有没有办法将它们组合起来,以便只绘制第一个多边形没有被第二个覆盖的部分?

import folium

cornerA=[0, 0]
cornerB=[0, 1]
cornerC=[1, 1]
cornerD=[1, 0]

m = folium.Map(location=cornerA, tiles="OpenStreetMap", zoom_start=8)

border_1=[cornerA,cornerB,cornerC,cornerD]
folium.vector_layers.Polygon(border_1,color='red',fill_color='red',fill_opacity=0.5,weight=4).add_to(m)

cornerE=[0.25,0.25]
cornerF=[0.25,0.5]
cornerG=[0.5,0.5]
cornerH=[0.5,0.25]
border_2=[cornerE,cornerF,cornerG,cornerH]
folium.vector_layers.Polygon(border_2,color='blue',fill_color='blue',fill_opacity=0.5,weight=4).add_to(m)
m.save('My_map.html') 

一种解决方法是绘制所需的多边形,明确地结合每个角落,但这并不实用。

m = folium.Map(location=cornerA, tiles="OpenStreetMap", zoom_start=8)
border_3=[cornerA,cornerE,cornerF,cornerG,cornerH,cornerE,cornerA,cornerB,cornerC,cornerD]
folium.vector_layers.Polygon(border_3,color='blue',fill_color='blue',fill_opacity=0.5,weight=4).add_to(m)
m.save('My_map.html') 

任何帮助表示赞赏。谢谢 !

标签: python-3.xfolium

解决方案


推荐阅读