如何使用GeoDataFrame生成Folium地图?

时间:2018-05-07 03:01:43

标签: python json geospatial geopandas folium

我已经创建了一个geoDataFrame,并希望创建一个Folium Map,绘制每个国家的人口食物。我是否必须创建Json文件,或者我可以直接使用geoDataFrame文件?

import folium
import fiona
import geopandas as gpd

world = fiona.open(gpd.datasets.get_path('naturalearth_lowres'))
world = gpd.GeoDataFrame.from_features([feature for feature in world])
world = world[(world.pop_est > 0) & (world.name != "Antarctica")]

我使用了folium.map和geojson函数,但无法创建正确的JSON文件。 谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

在最新版本的folium中,您不需要将GeoDataFrame转换为geojson,但您可以直接传递它。连接填充列以为多边形着色仍然有点难以理解:

m = folium.Map()
m.choropleth(world, data=world, key_on='feature.properties.name',
             columns=['name', 'pop_est'], fill_color='YlOrBr')
m

答案 1 :(得分:1)

@joris的答案中的m.cholopleth()代码现已弃用。以下代码使用新的folium.Chloropleth()函数产生相同的结果:

m = folium.Map()
folium.Choropleth(world, data=world, 
                  key_on='feature.properties.name',
                  columns=['name', 'pop_est'], 
                  fill_color='YlOrBr').add_to(m)

folium.LayerControl().add_to(m)

m