今天跟大家介绍一下如何使用folium更换地图底图样式

1. 准备工作

有朋友可能没用过folium,它其实就是python的一个专业绘制地图的第三方库,所以在使用之前需要先安装它。

pip install folium

在安装完成之后,我们可以在jupyterlab进行演示如下:

import foliumm = folium.Map()
m

默认

对于上面的输出,其实是一个可交互的地图,支持放大缩写拖拽等等。

如果你想将输出存在本地,可以这样来:

m.save('map.html')

可以看到本地就存了这个一个文件,浏览器打开就可以进行交互式操作了。

map文件

以上就是一个平平淡淡的过程......

2. 关于folium.Map()

在上一部分我们可以看到这个map玩意直接就是一个地图啦,这里我们就介绍一下它常用的几个参数。

folium.Map(location=None,width='100%',height='100%',left='0%',top='0%',position='relative',tiles='OpenStreetMap',attr=None,min_zoom=0,max_zoom=18,zoom_start=10,min_lat=-90,max_lat=90,min_lon=-180,max_lon=180,max_bounds=False,crs='EPSG3857',control_scale=False,prefer_canvas=False,no_touch=False,disable_3d=False,png_enabled=False,zoom_control=True,**kwargs,
)

参数可真多啊!!

没有参数的folium.Map()将得到一张世界地图。

  • location:地图中心,[40.002694, 116.322373]是清华大学校区;

  • zoom_start:比例尺,默认为10级,大约是一个城市的范围;

其他常用参数包括:

  • widthheight:地图的长宽,如果是int则表示像素值,如果是str则表示百分比;

  • max_zoom:地图可以手动调节的最大比例,默认为18级;

  • control_scale:是否在地图上添加比例尺,默认为False;

  • no_touch:是否禁止手动操作,默认为False;

  • tiles:地图样式,默认为OpenStreetMap

  • attr:如果设置非内建地图样式,则需要传入这个值,可以理解为你选择的地图样式名称

以上是常用的一些参数,而最常用的莫过于 locationzoom_starttiles等。

内建地图样式还有一下几种:

- "OpenStreetMap"
- "Mapbox Bright" (Limited levels of zoom for free tiles)
- "Mapbox Control Room" (Limited levels of zoom for free tiles)
- "Stamen" (Terrain, Toner, and Watercolor)
- "Cloudmade" (Must pass API key)
- "Mapbox" (Must pass API key)
- "CartoDB" (positron and dark_matter)

我们简单试下locationzoo_start参数:

import foliumm = folium.Map([40.002694, 116.322373],zoom_start=15,control_scale=True)
m

可以看到清华大学校区

清华大学校区

以上对Map的参数进行了简单的介绍,接下来,我们就来看看地图底图样式的选取情况吧~

3. 内建地图底图样式

我们看到folium其实有好几种内建地图底图样式,其中部分需要去申请key,由于我这边没有申请成功就不做演示了。

  • "OpenStreetMap"

  • "Mapbox Bright" (Limited levels of zoom for free tiles)

  • "Mapbox Control Room" (Limited levels of zoom for free tiles)

  • "Stamen" (Terrain, Toner, and Watercolor)

  • "Cloudmade" (Must pass API key)

  • "Mapbox" (Must pass API key)

  • "CartoDB" (positron and dark_matter)

地势地形底图

m = folium.Map([40.002694, 116.322373],tiles='Stamen Terrain',zoom_start=15,control_scale=True)
m

黑白无标记底图

m = folium.Map([40.002694, 116.322373],tiles='Stamen Toner',zoom_start=15,control_scale=True)
m

水墨画底图

m = folium.Map([40.002694, 116.322373],tiles='Stamen Watercolor',zoom_start=15,control_scale=True)
m

以上就是内建地图底图样式的一些展示,部分需要key的大家可以去这个网站申请:

http://openwhatevermap.xyz/(可惜我上不去)

另外,在这里也可以找到一些地图底图

http://leaflet-extras.github.io/leaflet-providers/preview/

我后续也会去研究这些地图底图样式,试着分享更多有趣的地图分享给大家。

当然了,国内咱们用的较多的地图是高德、百度和腾讯地图等,接下来我们就来玩玩!

4. 多种第三方地图底图样式

这里我将演示高德地图、智图GeoQ和腾讯地图等

4.1. 高德地图

高德地图的 中英文地图、卫星影像图、街道图与常规图

中英文地图

folium.Map([40.002694, 116.322373],tiles='https://webrd02.is.autonavi.com/appmaptile?lang=zh_en&size=1&scale=1&style=8&x={x}&y={y}&z={z}',attr='高德-中英文对照',zoom_start=15,)

纯英文地图

folium.Map([40.002694, 116.322373],tiles='https://webrd02.is.autonavi.com/appmaptile?lang=en&size=1&scale=1&style=8&x={x}&y={y}&z={z}',attr='高德-纯英文对照',zoom_start=15,)

卫星影像图

tiles = 'https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}'
folium.Map([40.002694, 116.322373],tiles= tiles,attr='高德-卫星影像图',zoom_start=15,)

街道图
folium.Map([40.002694, 116.322373],tiles= 'https://wprd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=8&ltype=11',attr='高德-街道路网图',zoom_start=10,)

常规图

folium.Map([40.002694, 116.322373],tiles= 'https://wprd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=7',attr='高德-常规图',zoom_start=15,)

4.2. 智图GeoQ

反正我觉得这个蛮好的,用起来简单

多种风格地图,即拿即用

彩色版

m = folium.Map([40.002694, 116.322373],tiles='http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer/tile/{z}/{y}/{x}',attr='彩色版',zoom_start=15,)
m

暖色版

m = folium.Map([40.002694, 116.322373],tiles='http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetWarm/MapServer/tile/{z}/{y}/{x}',attr='暖色版',zoom_start=15,)
m

灰色版

m = folium.Map([40.002694, 116.322373],tiles='http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetGray/MapServer/tile/{z}/{y}/{x}',attr='灰色版',zoom_start=15,)
m

蓝黑版

m = folium.Map([40.002694, 116.322373],tiles='http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}',attr='蓝黑版',zoom_start=15,)
m

英文版

m = folium.Map([40.002694, 116.322373],tiles='http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunityENG/MapServer/tile/{z}/{y}/{x}',attr='英文版',zoom_start=15,)
m

中国行政区划边界

m = folium.Map([40.002694, 116.322373],tiles='http://thematic.geoq.cn/arcgis/rest/services/ThematicMaps/administrative_division_boundaryandlabel/MapServer/tile/{z}/{y}/{x}',attr='中国行政区划边界',)
m

水系专题

m = folium.Map([40.002694, 116.322373],tiles='http://thematic.geoq.cn/arcgis/rest/services/ThematicMaps/WorldHydroMap/MapServer/tile/{z}/{y}/{x}',attr='水系专题',)
m

街道网图

m = folium.Map([40.002694, 116.322373],tiles='http://thematic.geoq.cn/arcgis/rest/services/StreetThematicMaps/Gray_OnlySymbol/MapServer/tile/{z}/{y}/{x}',attr='街道网图',)
m

暖色街道网图

m = folium.Map([40.002694, 116.322373],tiles='http://thematic.geoq.cn/arcgis/rest/services/StreetThematicMaps/Warm_OnlySymbol/MapServer/tile/{z}/{y}/{x}',attr='暖色-街道网图',)
m

4.3. 腾讯地图

tiles =  'https://rt0.map.gtimg.com/tile?z={z}&x={x}&y={-y}'
folium.Map([39.904989, 116.405285],tiles= tiles,attr='腾讯地图'          )

4.4. 天地图

https://www.tianditu.gov.cn/

需要注册一个key

天地图影像

m = folium.Map([40.002694, 116.322373],tiles='http://t7.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=',attr='天地图-影像')
m

天地图影像注记

m = folium.Map([40.002694, 116.322373],tiles='http://t7.tianditu.gov.cn/cia_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=',attr='天地图-影像标注')
m

天地图矢量

m = folium.Map([40.002694, 116.322373],tiles='http://t7.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=',attr='天地图-矢量',zoom_start=10,)
m

天地图矢量注记

m = folium.Map([40.002694, 116.322373],tiles='http://t7.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=',attr='天地图-矢量注记')
m

天地图地形

m = folium.Map([40.002694, 116.322373],tiles='http://t7.tianditu.gov.cn/ter_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ter&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=',attr='天地图-地形',zoom_start=3,)
m

天地图地形注记

m = folium.Map([40.002694, 116.322373],tiles='http://t7.tianditu.gov.cn/cta_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cta&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=',attr='天地图-地形标记',zoom_start=3,)
m

百度地图我这边测试失败了,暂时没有找到合适的替换方案。

5. 补充

其实,我们还可以找更多的地图底图瓦片URL来进行替换,多样化我们的地图绘制。

另外,大家在用经纬度坐标点进行地图绘制的时候,比如标记点、绘制区域、热力图绘制等等,需要考虑经纬度坐标是哪个地图系下面的,然后再用对应地图系的相关底图进行绘制才准确!

Python + folium 制作美美的地图~相关推荐

  1. 用 Python 快速制作海报级地图

    作者:费弗里 来源:Python大数据分析 1 简介 基于Python中诸如matplotlib等功能丰富.自由度极高的绘图库,我们可以完成各种极富艺术感的可视化作品,关于这一点我在系列文章在模仿中精 ...

  2. python,制作山东省的地图 热力图

    python制作一个山东省的地图热力图.可以这么做. ################################################################### ##### ...

  3. Python 绘图大全之使用 Python Folium 制作生成热图的详细指南

    介绍 在本文中,我们将学习一个非常有用的 Python 库Folium,并尝试使用该库构建不同的热图. 什么是Folium Folium 是一个非常易于使用且功能强大的 Python 库,可帮助您创建 ...

  4. 用Python快速制作海报级地图

    1 简介 基于Python中诸如matplotlib等功能丰富.自由度极高的绘图库,我们可以完成各种极富艺术感的可视化作品,关于这一点我在系列文章在模仿中精进数据可视化中已经带大家学习过很多案例了.而 ...

  5. 用Python快速制作海报级地图!

    我是小z 今天给大家分享一篇地图可视化干货(没出去玩的同学,国庆节也要卷起来啊) 1 简介 基于Python中诸如matplotlib等功能丰富.自由度极高的绘图库,我们可以完成各种极富艺术感的可视化 ...

  6. 【python绘制地图】使用folium制作地图,可解决多数问题

    Python使用folium制作地图并生成png图片 第一章 folium的方法和类的介绍(思维导图) 第二章 使用folium制作地图 第三章 folium实用功能进阶 第三章 使用Html2Ima ...

  7. 使用Folium制作相册地图

    使用Folium制作相册地图 folium是JavaScript上著名的交互式地图库leaflet.js为Python提供的接口,通过它,我们可以在Python端调用leaflet的相关功能. lea ...

  8. 利用python爬取2019-nCoV确诊数据并制作pyecharts可视化地图

    1.本章利用python爬取2019-nCoV确诊数据并制作pyecharts可视化地图: 2.主要内容为绘制出中国各省疫情数据,疫情数据从四个维度进行可视化展示:累积确诊人数.现存确诊人数.治愈人数 ...

  9. python : folium

    1.Python绘制地图神器folium入门 2.Py之folium:python库之folium的简介.安装.使用方法之详细攻略 3.python可视化经纬度信息 4.python在openstre ...

  10. python 桑基图 地理坐标_利用Python+Excel制作桑基(Sankey)图

    利用Python+Excel制作桑基(Sankey)图 桑基图的简介 桑基图 (Sankey  Diagram),是一种特定类型的流图,用于描述一组值到另一组值的流向.下图为1869年,查尔斯米纳德( ...

最新文章

  1. Windows7 64bit VS2013 Caffe test MNIST操作步骤
  2. php168站内统计,PHP168整站系统0DAY
  3. STM32F4 HAL库开发 -- 温度传感器(DS18B20)
  4. Qt5—嵌入停靠窗口QDockWidget
  5. ubuntu shell简介
  6. Visual C++ 2008入门经典 第二十一章更新数据源
  7. php 实现背景图片轮换,纯js实现背景图片切换效果代码
  8. Eclipse内存溢出
  9. 【渝粤教育】21秋期末考试财政学10573k1
  10. 红绿3d眼镜与红蓝3d眼镜区别_佩极定制眼镜青少年3D打印定制系列全新发布
  11. codejock Toolkit Pro for Visual C++ MFC 零售版
  12. 高校全场景智慧教室建设方案
  13. python利用you-get下载视频
  14. 不属于计算机主机设备的是什么,不属于计算机硬件的是什么
  15. 2022.11.14每日刷题打卡
  16. python视频操作——python实现将图片合成为视频
  17. python发邮件附件_python 发送带附件的邮件
  18. 8月报考季,软考科目选哪个?
  19. 损坏Word文档的几种修复方法
  20. 嵌入式系统与通用计算机系统的区别,嵌入式操作系统和通用计算机系统的区别是什么...

热门文章

  1. java-php-python-ssm校园流浪猫图鉴管理系统的设计与实现计算机毕业设计
  2. 基本磁盘转换为动态磁盘后快速启动关机变重启,记录一次研究过程
  3. cesium添加动态扩散圆,动态圆环
  4. IDEA快速启动ssm项目
  5. 计算机网络-ip地址聚合后可用的地址数
  6. windos开启IIS管理器
  7. keras-yolo3-master使用记录
  8. 优酷KUX格式视频如何快速转换MP4格式
  9. PADS9.5 导入立创元器件库卡顿
  10. 【递归调用在二叉树中的应用】前序遍历、中序遍历、后序遍历、求二叉树叶子结点及复制二叉树的C语言实现