带有无偏移国内图源的folium

问题

folium是一个Python的绘制地图神器,基于leaflet映射。目前有非常多的瓦片图源可以选择,如自带有OpenStreetMapMapbox BrightMapbox Control RoomStamen (Terrain, Toner, and Watercolor)CloudmadeMapboxCartoDB。以及可以通过这里接入更多的基础地图。但是存在的问题是其中带有的地图都是国外的地图,虽然如OSM等数据多效果好,在国界上都存在问题;而国内的高德、腾讯等地图都存在偏移的问题,天地图虽然没有偏移,但有key的限制。所以在国内使用folium总是不容易两全其美。

解决

参考leaflet中如何优雅的解决百度、高德地图的偏移问题,想到既然folium是基于leaflet的,能不能把这个方法引入修改folium来加载无偏的国内的地图。终于搞定了,参考foliume

  1. 目前网上能方便找到的国内的瓦片有高德、百度、腾讯和GeoQ。
  2. 首先根据网上的开源的坐标转换代码,修改GridLayer的方法,加入判断(是否是国内地图)和坐标转换,得到一个js文件。通过jsDelivr + Github 实现免费CDN加速:https://cdn.jsdelivr.net/gh/geoyee/lccjs@v0.2/leaflet_china_correction.js。其中由于百度地图的特殊性,需要构造一个CRS,否则无法显示。
  3. 为folium添加上述的选项,并把上述的js引入。
  4. 修改了下setup的名字发了一个pypi包方便使用,可以通过pip install foliume下载。

使用

与foliume相同,只需要在指定tiles的地方选择GeoQ China CommunityGeoQ China Street即可。

由于pypi不能重名,所以安装是叫foliume,使用和folium一模一样

import folium

m = folium.Map(
    location=[39.90681115817056, 116.39123825186597],  # 天安门外金水桥
    zoom_start=16,
    tiles='GeoQ China Community'  # 'AMAP China', 'TencentMap China', 'BaiduMaps China'
)

m

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值