本文簡(jiǎn)單介紹python語(yǔ)言的地圖可視化庫(kù)Folium
Folium地址:https://github.com/python-visualization/folium
Leaflet地址:https://leafletjs.com
高德地圖坐標(biāo)拾取器: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
github預(yù)覽:http://htmlpreview.github.io/?https://github.com/PancakeCard/GroceryPublic/blob/master/visual/python_visualization_folium.html
效果圖
能力概述
- Python語(yǔ)言
- 地圖可視化
- 可以換(高德)底圖
- 有添加點(diǎn)線面和簡(jiǎn)單配色的功能
- 可以導(dǎo)出為html頁(yè)
簡(jiǎn)介
Folium是Leaflet.js的Python的API,即可以使用Python語(yǔ)言調(diào)用Leaflet的地圖可視化能力。
其中,Leaflet是一個(gè)非常輕的前端地圖可視化庫(kù)。
實(shí)驗(yàn)
安裝
pip install folium
初始化地圖
默認(rèn)參數(shù)為OpenStreetMap地圖,(0,0)經(jīng)緯度坐標(biāo),全球范圍縮放
最簡(jiǎn)單的配置,初始化中心位置和縮放尺度
內(nèi)置底圖樣式
文檔說(shuō)內(nèi)置“Mapbox Bright”和“Mapbox Control Room”,本次實(shí)驗(yàn)中無(wú)法加載
瓦片底圖(WGS84)
瓦片地址參考http://openwhatevermap.xyz
-
mapbox底圖(需要自行申請(qǐng)Key)
-
水彩圖
高德底圖
瓦片地址參考頁(yè)面頂部鏈接
- 街道圖
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}
添加點(diǎn)、線、面要素
各種要素可以設(shè)置顏色、大小、文字標(biāo)記等屬性,具體看操作手冊(cè)
這里以高德地圖為底圖,添加點(diǎn)、線、面形狀
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('武漢大學(xué)·信息學(xué)部<br>星湖田徑場(chǎng)',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
坐標(biāo)系統(tǒng)
以高德地圖API的坐標(biāo)提取器為準(zhǔn),取操場(chǎng)位置的坐標(biāo),并打在默認(rèn)地圖和高德地圖上,可以看到坐標(biāo)不同
導(dǎo)出html
Map.save('xixi.html')
其他
- 那么Folium的能力可以參照l(shuí)eaflet。Folium的例子不多,可以看看leaftlet有沒(méi)有相關(guān)的東西,但還是要以Folium的手冊(cè)為準(zhǔn)。
- Folium可以可視化GeoJson文件,具體看手冊(cè);對(duì)于其他類型的數(shù)據(jù)格式,可以結(jié)合shapely、Geopandas等一起使用。
大背景
做地圖可視化的方法,通常有
- 前端地圖API,如高德、百度、Mapbox、OpenLayers、Leaflet、Cesium等;
- GIS桌面軟件,如ArcGIS、QGIS等
- 其他可視化方法的一部分,如桌面軟件Tabluea、Excel,前端的Echarts、D3.js,還有CorelDraw、PhotoShop等
其中
- 前端的需要一定的JavaScript技能點(diǎn),至少要會(huì)改官網(wǎng)Examples;
- 桌面軟件部分,手動(dòng)操作不靈活,精細(xì)配圖會(huì)比較好看,功能比較全;
- 其他方法各取所需,看用途和技能點(diǎn),如有在Echarts基礎(chǔ)上做pyecharts的,也具有一點(diǎn)地圖的內(nèi)容,CorelDraw做地圖很好看。。。
python語(yǔ)言近年來(lái)比較熱,也有很多可視化庫(kù)可以用,但是在地圖的可視化方面很弱。有一些可視化庫(kù)也支持一點(diǎn)點(diǎn),如plotly內(nèi)置的mapbox可視化;還有上面提到的的pyecharts可以做形狀,底圖(應(yīng)該)可以用百度地圖。但是這些或者不靈活、或者限定了底圖,基本能力還是有的,雖然都不全。
背景完,具體內(nèi)容到頁(yè)面頂部。