如何在folium.Map中添加嵌套矩形?路线边界矩形未显示
解决方法
你的问题出在坐标顺序搞反了——folium绘制矩形时,边界坐标需要遵循(纬度, 经度)的顺序,但你定义Route_BOUNDS时把经纬度写反了。
修正后的代码如下,重点修改Route_BOUNDS的赋值行:
flm = pyimport("folium") matplotlib_cm = pyimport("matplotlib.cm") matplotlib_colors = pyimport("matplotlib.colors") cmap = matplotlib_cm.get_cmap("prism") mf = flm.Map() for k=1:length(links_o) locs = [LLA(m.nodes[n],m.bounds) for n in links_o[k]] flm.PolyLine( [(loc.lat, loc.lon) for loc in locs ], color=matplotlib_colors.to_hex(cmap(3)) ).add_to(mf) end # 修正:把(lon, lat)改成(lat, lon)的顺序 Route_BOUNDS = [(min_lat, min_lon),(max_lat, max_lon)] MAP_BOUNDS = [(m.bounds.min_y,m.bounds.min_x),(m.bounds.max_y,m.bounds.max_x)] flm.Rectangle(MAP_BOUNDS, color="black",weight=6).add_to(mf) flm.Rectangle(Route_BOUNDS, color="black",weight=6).add_to(mf) mf.fit_bounds(MAP_BOUNDS) mf
你还可以额外验证一下:确保min_lat、max_lat在m.bounds.min_y到m.bounds.max_y之间,min_lon、max_lon在m.bounds.min_x到m.bounds.max_x之间,避免小矩形完全超出大矩形范围导致看不到。
内容的提问来源于stack exchange,提问作者Rainbow
相关产品推荐
相关产品推荐

