【可视化】python地图可视化_Folium

本文简单介绍python语言的地图可视化库Folium

Folium地址:https://github.com/python-visualization/folium
Leaflet地址:https://leafletjs.com
高德地图坐标拾取器:https://lbs.amap.com/console/show/picker
底图合集:http://openwhatevermap.xyz
高德底图:https://blog.csdn.net/fredricen/article/details/77189453
https://blog.csdn.net/ldlzhy1984/article/details/81015180

效果图

《【可视化】python地图可视化_Folium》

能力概述

  • Python语言
  • 地图可视化
  • 可以换(高德)底图
  • 有添加点线面和简单配色的功能
  • 可以导出为html页

简介

Folium是Leaflet.js的Python的API,即可以使用Python语言调用Leaflet的地图可视化能力。
其中,Leaflet是一个非常轻的前端地图可视化库。

实验

安装

pip install folium

《【可视化】python地图可视化_Folium》

初始化地图

默认参数为OpenStreetMap地图,(0,0)经纬度坐标,全球范围缩放

《【可视化】python地图可视化_Folium》

最简单的配置,初始化中心位置和缩放尺度

《【可视化】python地图可视化_Folium》

内置底图样式

文档说内置“Mapbox Bright”和“Mapbox Control Room”,本次实验中无法加载

《【可视化】python地图可视化_Folium》
《【可视化】python地图可视化_Folium》

瓦片底图(WGS84)

瓦片地址参考http://openwhatevermap.xyz

  • mapbox底图(需要自行申请Key)

    《【可视化】python地图可视化_Folium》

  • 水彩图

    《【可视化】python地图可视化_Folium》

高德底图

瓦片地址参考页面顶部链接

  • 街道图
    http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}
    《【可视化】python地图可视化_Folium》
  • 影像图
    http://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}
    《【可视化】python地图可视化_Folium》

添加点、线、面要素

各种要素可以设置颜色、大小、文字标记等属性,具体看操作手册
这里以高德地图为底图,添加点、线、面形状

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('武汉大学·信息学部<br>星湖田径场',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

《【可视化】python地图可视化_Folium》

坐标系统

以高德地图API的坐标提取器为准,取操场位置的坐标,并打在默认地图和高德地图上,可以看到坐标不同

《【可视化】python地图可视化_Folium》
《【可视化】python地图可视化_Folium》

导出html

Map.save('xixi.html')

《【可视化】python地图可视化_Folium》

其他

  • 那么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可以做形状,底图(应该)可以用百度地图。但是这些或者不灵活、或者限定了底图,基本能力还是有的,虽然都不全。

背景完,具体内容到页面顶部。

    原文作者:PancakeCard
    原文地址: https://www.jianshu.com/p/32ec6afcc7a6
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞