【可視化】python地圖可視化_Folium

本文簡(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有沒有相關(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è)面頂部。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容