本文示例文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes

1 简介

  国庆期间,抽空给大家分享在geopandas中叠加各种在线瓦片底图的方法,来制作出更多样式的地图作品。话不多说,我们直接进入正题。

图1

2 在geopandas中叠加在线地图

  我们需要配合contextily这个第三方库来辅助geopandas叠加在线地图,在geopandas已经被正确安装的情况下,使用pip install contextilyconda install contextily安装contextily

  从下面这个小例子出发:

import geopandas as gpd
import contextily as ctx
import matplotlib.pyplot as plt cq = gpd.read_file('重庆市.geojson').to_crs('EPSG:3857') fig, ax = plt.subplots(figsize=(10, 10))
ax = cq.plot(ax=ax, alpha=0.1, edgecolor='k') ax.axis('off') ctx.add_basemap(ax,
source='https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png',
zoom=8) fig.savefig('图2 叠加在线地图示例.png', pad_inches=0, bbox_inches='tight', dpi=300)

图2 叠加在线地图示例

  下面我们来划重点,在图2所示的例子中,我们前面正常读入矢量数据后绘图,在最后一步时将ax对象传入ctx.add_basemap中,并添加了参数source代表对应在线瓦片地图的url,参数zoom来控制地图缩放精度级别。

  在稍事等待之后(如果没有“特殊”的上网技巧,可能要多等一段时间),我们的底图便自动获取拼接完毕,之后直接导出图像文件即可,是不是非常的方便~

  在掌握了geopandas+contextily相互配合叠加在线底图之后,下面给大家推荐一些有意思的底图url供大家日常选择使用:

  • https://a.tile.thunderforest.com/mobile-atlas/{z}/{x}/{y}.png?apikey=41f4f936f1d148f69cbd100812875c88

图3

  • http://{s}.tile.stamen.com/terrain/{z}/{x}/{y}.jpg

图4

  • http://{s}.tiles.maps.sputnik.ru/{z}/{x}/{y}.png

图5

  • https://c.tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey=41f4f936f1d148f69cbd100812875c88

图6

  • http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png

图7

  • http://{s}.tile.stamen.com/toner/{z}/{x}/{y}.png

图8

  • https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png

图9

  • http://{s}.tile.stamen.com/watercolor/{z}/{x}/{y}.jpg

图10

  • https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png

图11

  • https://stamen-tiles-a.a.ssl.fastly.net/terrain-background/{z}/{x}/{y}.png

  即stamen地形图的无地名标注版本

图12

  • https://d.basemaps.cartocdn.com/light_nolabels/{z}/{x}/{y}.png

  即carto浅色地图的无地图标注版本

图13


  以上就是本文的全部内容,欢迎在评论区与我进行讨论~

(数据科学学习手札96)在geopandas中叠加在线地图的更多相关文章

  1. (数据科学学习手札146)geopandas中拓扑非法问题的发现、诊断与修复

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,geopandas作为在Pyt ...

  2. (数据科学学习手札49)Scala中的模式匹配

    一.简介 Scala中的模式匹配类似Java中的switch语句,且更加稳健,本文就将针对Scala中模式匹配的一些基本实例进行介绍: 二.Scala中的模式匹配 2.1 基本格式 Scala中模式匹 ...

  3. (数据科学学习手札32)Python中re模块的详细介绍

    一.简介 关于正则表达式,我在前一篇(数据科学学习手札31)中已经做了详细介绍,本篇将对Python中自带模块re的常用功能进行总结: re作为Python中专为正则表达式相关功能做出支持的模块,提供 ...

  4. (数据科学学习手札89)geopandas&geoplot近期重要更新

    本文示例代码及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 最近一段时间(本文写作于2020-07-1 ...

  5. (数据科学学习手札111)geopandas 0.9.0重要新特性一览

    本文示例文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 就在几天前,geopandas释放了其最新正式版 ...

  6. (数据科学学习手札129)geopandas 0.10版本重要新特性一览

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 就在前不久,我们非常熟悉的Python地理 ...

  7. (数据科学学习手札25)sklearn中的特征选择相关功能

    一.简介 在现实的机器学习任务中,自变量往往数量众多,且类型可能由连续型(continuou)和离散型(discrete)混杂组成,因此出于节约计算成本.精简模型.增强模型的泛化性能等角度考虑,我们常 ...

  8. (数据科学学习手札19)R中基本统计分析技巧总结

    在获取数据,并且完成数据的清洗之后,首要的事就是对整个数据集进行探索性的研究,这个过程中会利用到各种描述性统计量和推断性统计量来初探变量间和变量内部的基本关系,本篇笔者便基于R,对一些常用的数据探索方 ...

  9. (数据科学学习手札126)Python中JSON结构数据的高效增删改操作

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在上一期文章中我们一起学习了在Python ...

随机推荐

  1. 做seo如何选择一个好的标题

    http://www.wocaoseo.com/thread-86-1-1.html 我们常说人要红妆马配鞍,那么对于seo来说,网站的标题也是很重要的,如何写好标题呢?只要注意以下几点就行了. 首先 ...

  2. CSP 202006-1 线性分类器python实现

    思路 这题问题是对于这一群点和一条直线,我们也不知道直线上方的是A类还是直线下方的是A类.其实对于这个二分类问题,我们也没必要知道.我们只需要判断直线每一测的点是不是一类(A类或B类)就可以了. 至于 ...

  3. 图解Janusgraph系列-分布式id生成策略分析

    JanusGraph - 分布式id的生成策略 大家好,我是洋仔,JanusGraph图解系列文章,实时更新~ 本次更新时间:2020-9-1 文章为作者跟踪源码和查看官方文档整理,如有任何问题,请联 ...

  4. day44:CSS选择器优先级&JS基础

      目录 1.CSS选择器优先级 2.补充:margin是可以设置百分比的 3.JS 3.1 js代码的引入方式 3.2 变量 3.3 数据类型 3.4 数组(类似于python中的列表) 3.5 自 ...

  5. Oracle WITH 语句 语法

    With语句可以在查询中做成一个临时表/View,用意是在接下来的SQL中重用,而不需再写一遍. With Clause方法的优点: 增加了SQL的易读性,如果构造了多个子查询,结构会更清晰. 示例: ...

  6. stackoverflow的ret2syscall利用

    ret2syscall 系统调用 ret2syscall,即控制程序执行系统调用,获取shell.Linux将内核功能接口制作为系统调用(system call),可在程序中直接调用.程序中存在int ...

  7. 6.AVCodecContext和AVCodec

    AVCodecContext  AVCodecContext 结构表示程序运行的当前 Codec 使用的上下文,着重于所有 Codec 共有的属性(并且是在程序运行时才能确定其值)和关联其他结构的字段 ...

  8. 浅谈DOM事件的优化

    在 JavaScript 程序的开发中,经常会用到一些频繁触发的 DOM 事件,如 mousemove.resize,还有不是那么常用的鼠标滚轮事件:mousewheel (在 Firefox 中,滚 ...

  9. git 快速入门及常用命令

    身为技术人员,都知道Git是干嘛的.从服务端角度它是代码仓库,可以多人协作.版本控制.高效处理大型或小型项目所有内容:从客户端讲,它能够方便管理本地分支.且与服务端代码的同步,从拉取.合并.提交等等管 ...

  10. CSS -- 盒子模型之边框、内边距、外边距

    一.使用border为盒子添加边框 盒子模型的边框就是围绕着内容及补白的线,这条线你可以设置它的粗细.样式和颜色(边框三个属性). 1.border-style(边框样式)常见样式有: dashed( ...