如何获取区域的geojson数据并展示
需求:
需要一个深圳福田区域的geojson数据,用于展示区分区域信息。
实现:
-
进https://nominatim.openstreetmap.org/ui/search.html,搜索福田区并抓包,鼠标右键复制这个object,并保存在 福田区.geojson 文件里面
-
使用folium库里面的Geojson工具实现
import folium
from folium import plugins
import json
import webbrowser
m = folium.Map( zoom_start=7 )
all_SZ = folium.FeatureGroup(name='深圳市')
m.add_child(all_SZ)
# 福田
futian = plugins.FeatureGroupSubGroup(all_SZ, 'futian')
m.add_child(futian)
folium.GeoJson(json.load(open('福田区.geojson')), name="futian").add_to(futian)
# add layer control to map (allows layers to be turned on or off)
folium.LayerControl(collapsed=False).add_to(m)
m.save("futian.html")
webbrowser.open("futian.html")
效果:
要是觉得不好看,想自己换个样式也可以,直接上代码:
import folium
from folium import plugins
import json
import webbrowser
m = folium.Map( zoom_start=7 )
style = lambda feature: {
'fillColor': '#ffff00',
'color': 'purple',
'weight': 2,
'dashArray': '5, 5'
}
all_SZ = folium.FeatureGroup(name='深圳市')
m.add_child(all_SZ)
# 福田
futian = plugins.FeatureGroupSubGroup(all_SZ, 'futian')
m.add_child(futian)
folium.GeoJson(json.load(open('福田区.geojson')), name="futian", style_function=style).add_to(futian)
# add layer control to map (allows layers to be turned on or off)
folium.LayerControl(collapsed=False).add_to(m)
m.save("futian.html")
webbrowser.open("futian.html")