本文简单介绍python语言的地图可视化库Folium
效果图
能力概述
Python语言
地图可视化
可以换(高德)底图
有添加点线面和简单配色的功能
可以导出为html页
简介
Folium是Leaflet.js的Python的API,即可以使用Python语言调用Leaflet的地图可视化能力。
其中,Leaflet是一个非常轻的前端地图可视化库。
实验
安装
pip install folium
初始化地图
默认参数为OpenStreetMap地图,(0,0)经纬度坐标,全球范围缩放
最简单的配置,初始化中心位置和缩放尺度
内置底图样式
文档说内置“Mapbox Bright”和“Mapbox Control Room”,本次实验中无法加载
瓦片底图(WGS84)
mapbox底图(需要自行申请Key)
水彩图
高德底图
瓦片地址参考页面顶部链接
街道图
http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}
影像图
http://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}
添加点、线、面要素
各种要素可以设置颜色、大小、文字标记等属性,具体看操作手册
这里以高德地图为底图,添加点、线、面形状
import folium
Map=folium.Map(location=[30.527831,114.361304],
zoom_start=14,
tiles='http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}',
attr='default'
)
folium.Marker([30.527831,114.361304],
popup=folium.Popup('武汉大学·信息学部
星湖田径场',max_width=1000),
tooltip='click here'
).add_to(Map)
folium.Polygon([
[30.532729,114.363],
[30.529162,114.354245],
[30.525262,114.358644]
]).add_to(Map)
folium.PolyLine([
[30.533,114.37],
[30.53,114.364],
[30.525,114.368]
],color='green').add_to(Map)
folium.Circle([30.529162,114.354245]
, 500
,color='red'
,fill_color='red'
,fillOpacity=0.5
).add_to(Map)
Map
坐标系统
以高德地图API的坐标提取器为准,取操场位置的坐标,并打在默认地图和高德地图上,可以看到坐标不同
导出html
Map.save('xixi.html')
其他
那么Folium的能力可以参照leaflet。Folium的例子不多,可以看看leaftlet有没有相关的东西,但还是要以Folium的手册为准。
Folium可以可视化GeoJson文件,具体看手册;对于其他类型的数据格式,可以结合shapely、Geopandas等一起使用。
大背景
做地图可视化的方法,通常有
前端地图API,如高德、百度、Mapbox、OpenLayers、Leaflet、Cesium等;
GIS桌面软件,如ArcGIS、QGIS等
其他可视化方法的一部分,如桌面软件Tabluea、Excel,前端的Echarts、D3.js,还有CorelDraw、PhotoShop等
其中
前端的需要一定的JavaScript技能点,至少要会改官网Examples;
桌面软件部分,手动操作不灵活,精细配图会比较好看,功能比较全;
其他方法各取所需,看用途和技能点,如有在Echarts基础上做pyecharts的,也具有一点地图的内容,CorelDraw做地图很好看。。。
python语言近年来比较热,也有很多可视化库可以用,但是在地图的可视化方面很弱。有一些可视化库也支持一点点,如plotly内置的mapbox可视化;还有上面提到的的pyecharts可以做形状,底图(应该)可以用百度地图。但是这些或者不灵活、或者限定了底图,基本能力还是有的,虽然都不全。
背景完,具体内容到页面顶部。