• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

利用Python的folium包绘制城市道路图的实现示例

python 搞代码 4年前 (2022-01-09) 30次浏览 已收录 0个评论

写在前面

很长一段时间内,我都在研究在线地图的开发者文档,百度地图和高德地图的开发者中心提供了丰富的在线地图服务,虽然有一定的权限限制,但不得不说,还是给我的科研工作提供了特别方便的工具,在博客前面我先放上这两个在线地图开放平台的web API的地址链接:

百度地图开放平台

高德地图开放平台

基于这两个平台,博主进行了一系列的开发研究工作,本文介绍其中一项技术,如何用folium包绘制城市道路图,当然,也可绘制非城市道路图,只要提供正确的路名就行了。

开发工具:

  • Python3.7
  • Spyder编译器(也可以用pycharm,不过建议用Spyder,因为编译过程中产生的变量太多,基本上都是json数据,我都是一边看一边写,这里Spyder优势明显)
  • chrome浏览器

folium介绍及相关设置

folium基础功能

folium的开发包在这里

简单来说,它是一个地理信息可视化的包,目前除了pyecharts,我用的最多的就是这个包,支持在在线地图上添加点、线、面等要素,而且还支持画热力图,不过热力图的效果真心不咋地,我看中的是它添加点、线、本文来源gaodai#ma#com搞@@代~&码*网2面形状的功能,而且各种要素可以设置颜色、大小、文字标记等属性,可视化效果还是不错的。这篇博客,也是应用了它画线的功能,绘制道路轮廓线。

比较遗憾的是,目前folium支持的地图底图有限,像openstreetmap是支持的,高德也支持,但不支持百度地图。当然,不支持百度地图并不能限制咱们开发者的脚步,本博客中也有相关介绍。

pip install folium

使用之前,先安装一下这个包。

folium参数设置

先看两行代码:

import folium
line_road = folium.Map(location=[31.596730,120.233516],zoom_start=15,
            tiles = 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}',
            attr = 'default')
  • location参数,设置展示地图的中心坐标点,就是说,比如你想看无锡市,可以设置成无锡市市中心的经纬度坐标
  • zoom_start是地图缩放等级,最高差不多可以到19还是20,如果想看大场景,就设小一点,想看局部地图就设大一点
  • tiles这个参数很重要,设置的是你的地图格式,默认的是OpenStreetMap,我这里把它改成了’http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}’,表示我用的是高德地图作为底图。为啥要改呢,因为每个不同的地图公司,用的坐标系不一样,高德地图和google地图、soso地图、aliyun地图、mapabc地图所用坐标相同,都是国测局(GCJ02)坐标,和百度地图用的坐标系不一样,如果直接拿百度坐标系下的经纬度画在高德地图上,那就会整体偏移,使用之前必须进行坐标转换
  • 其他用默认参数

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:利用Python的folium包绘制城市道路图的实现示例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址