folium(leaflets)使用mapbox自定义地图样式
folium是一个做地图可视化的python包,但给定的地图样式(tiles)有限,本文介绍如何使用mapbox进行地图样式自定义。
folium底层用的是leaflets,一个做交互式地图的js库,OpenWhateverMap上有很多现成的各式各样的地图样式可供使用:
如果这些地图样式仍然不能满足你的要求,leaflets中可以使用mapbox的自定义地图样式。
mapbox是一个开源的地图平台,有点类似国内的百度地图开放平台等,可以内嵌到web、mobile、AR等平台,有兴趣之后可以细说。
其中mapbox studio可以进行地图的自定义,无论是世界地图还是自己设计的地图,这里只介绍对世界地图进行样式修改。
studio共分成三个部分:Datasets可上传地图的GeoJson,Tilesets对数据进行编辑,styles对地图样式进行修改,一般直接使用世界地图则新建styles并publish即可,样式设计很简单,指定每个元件的显示方式,如下进现实路网、地形等,并将颜色设为灰白。
接下来的关键问题就是,如何将folium生成的地图文件的样式改掉(leaflets同样),打开生成的html文件,可以看到调用了L.tileLayer
函数,该函数即定义地图样式
var tile_layer_9ab498aaf61f4e228c1d5037abe551d6 = L.tileLayer(
'https://stamen-tiles-{s}.a.ssl.fastly.net/toner/{z}/{x}/{y}.png'
{
"attribution": null,
"detectRetina": false,
"maxZoom": 18,
"minZoom": 1,
"noWrap": true,
"subdomains": "abc",
"domains": "abc",
"opacity": 1,
}
mapbox官方给出的方法是替换掉tileLayer中的连接:https://api.mapbox.com/styles/v1/YOUR_USERNAME/YOUR_STYLE_ID/tiles/256/{z}/{x}/{y}?access_token=YOUR_ACCESS_TOKEN
其中YOUR_USERNAME为账号名,YOUR_STYLE_ID为publish的style ID,YOUR_ACCESS_TOKEN为申请的mapbox的keys。
上一篇: 8英寸华为MediaPad M2细节曝光 有银色灰色和金色三色
下一篇: 迈拓硬盘维修