folium离线地图使用

几点说明:

1. 代码亲测有效(效果见文末图)

2. 离线使用,需要预先下载png格式的离线地图,这里以OpenStreetMap为例。

3. 离线地图下载工具:Offline Map Maker

        https://www.allmapsoft.com/omm/

4. folium官网Folium — Folium 0.14.0 documentation (python-visualization.github.io)

# Author:hjw
import folium
import webbrowser as wb
# png格式地图下载地址:https://www.allmapsoft.com/omm/
# pbf格式地图下载地址:https://download.geofabrik.de/


# 两种方式都可以加载离线地图,本人偏向法一
# 两种方法的区别:
# 1. 只会生成离线地图的范围
# 2. 会生成全球的,只不过离线地图外的范围不真实
def fun1():
    offline_map_path = 'E:/OpenStreetMap/OpenStreetMap Cycle map/{z}/{x}/{y}.png'  # 离线地图文件路径
    location = [40,116]
    # 创建地图
    m = folium.Map(location=location, zoom_start=8,tiles=offline_map_path,attr='My Offline Map')
    # 添加标记点
    folium.Marker(location, tooltip='离线地图中心点').add_to(m)
    # 保存地图
    m.save('offline_map.html')
    wb.open('offline_map.html')

def fun2():
    offline_map_path = 'E:/OpenStreetMap/OpenStreetMap Cycle map/{z}/{x}/{y}.png'  # 离线地图文件路径
    offline_tile_layer = folium.TileLayer(
        tiles=offline_map_path,
        attr='Offline Map',  # 属性信息,会显示在右下角
        name='离线地图',
        overlay=True,  # 是否作为覆盖层
        control=True,  # 是否添加到layerControl中
        show=True,  # 加载完成后是否显示地图
        opacity=0.8,  # 不透明度
        max_zoom=13,  # 最大缩放级别
        min_zoom=8,  # 最小缩放级别
    )
    location = [40,116]
    # 创建地图
    m = folium.Map(location=location, zoom_start=8)
    # 加载离线地图
    offline_tile_layer.add_to(m)
    # 添加标记点
    folium.Marker(location, tooltip='离线地图中心点').add_to(m)
    # 保存地图
    m.save('offline_map.html')
    wb.open('offline_map.html')

if __name__ == '__main__':
    fun1()
    # fun2()

# 加载离线js/css库
# 实际上,这两行没用,只要离线地图对就行
# folium.Html('<link rel="stylesheet" href="D:/Vscode_Programming_Set/20230529_Sunbo_Radar_Trajectory_Fusion/folium/local/leaflet.css">', script=True).add_to(m)
# folium.Html('<script src="D:/Vscode_Programming_Set/20230529_Sunbo_Radar_Trajectory_Fusion/folium/local/leaflet.js"></script>', script=True).add_to(m)


结果说明:我下载了一个经纬度范围内离线地图,因此在结果中,中间方块部分是真正的、可以缩放的,其他都是灰色

注意:离线地图保存了几级(如8-13级),显示就会有几级是真实的,大了或者小了都会是空白(滚轮一次,级数±1)

                         fun1结果:                                                               fun2结果:

1beaa95a86ed4ff09d3d2c31ade4e72e.png


下载的离线地图格式如下:(8-13级)OpenStreetMap

c6d7bab89131442084a6fbea531eb9c6.png

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值