Folium绘制墨尔本CBD1km范围圆缩放比例异常问题求助
解决Folium中圆形区域随地图缩放自适应的问题
嗨,我来帮你搞定这个问题~你遇到的核心问题是用错了组件:你当前用的folium.CircleMarker的radius参数是像素单位,不管地图缩放级别怎么变,它的像素大小是固定的,所以看起来不会跟着实际地理距离同步变化。完全不需要用到geo.json,换个组件就能解决!
解决方案:改用folium.Circle
folium.Circle的radius参数是实际米数,它会随着地图缩放自动调整显示的大小,刚好能满足你绘制墨尔本CBD周边1公里(也就是1000米)范围的需求。
修改后的代码如下:
map_distance_vs_price = folium.Map(location=[-37.81, 144.96], tiles="Stamen Terrain", zoom_start=12) # 用folium.Circle替代CircleMarker,radius设为1000米(1公里) folium.Circle( location=[-37.81, 144.96], radius=1000, popup='Price:', color='#3186cc', fill_color='#3186cc' ).add_to(map_distance_vs_price)
两者的核心区别
folium.CircleMarker:半径是固定像素值,适合用来标记特定点位,不会随地图缩放改变大小folium.Circle:半径是实际地理距离(米),会根据地图缩放比例自动调整显示尺寸,适合绘制实际范围的区域
这样修改后,你缩放地图时,这个圆形区域就会始终对应墨尔本CBD周边1公里的实际范围啦~
内容的提问来源于stack exchange,提问作者Nathan Zhuang
相关产品推荐
相关产品推荐

