我正在Python 3中使用Folium在地图上绘制形状。 我想绘制一个多边形,然后使用另一个多边形在其中切出一个“孔”。
下面的代码一个在另一个上绘制两个多边形。有没有一种方法可以将它们组合在一起,以便仅绘制第一个多边形中未被第二个多边形覆盖的部分?
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')
感谢您的帮助。 谢谢!