如何在dash-leaflet中创建交互式世界地图并正常显示国家边界
实现步骤
按照以下修改即可完成世界国家边界的加载展示:
- 导入所需依赖,除了dash相关组件外额外引入
json库用于解析本地GeoJSON文件:
import json import dash import dash_leaflet as dl from dash import html
- 读取你下载到本地的世界国家边界GeoJSON文件,替换为你自己的文件实际存储路径:
# 读取本地GeoJSON数据 with open("你的世界国家边界文件路径.geojson", "r", encoding="utf-8") as f: country_boundaries = json.load(f)
- 替换原官方示例中
dl.GeoJSON组件的数据源,保留原有的蓝色边界样式配置即可:
app = dash.Dash(__name__) app.layout = html.Div([ dl.Map( # 调整初始中心点和缩放层级适配世界地图 center=[25, 10], zoom=2, children=[ dl.TileLayer(), dl.GeoJSON( data=country_boundaries, # 同官方示例的蓝色边界样式 style={"color": "#0066cc", "weight": 1, "fillOpacity": 0} ) ], style={"height": "90vh", "width": "100%"} ) ]) if __name__ == "__main__": app.run_server(debug=True)
异常排查:如果运行后没有显示边界,先确认文件路径填写正确,其次可以将地图zoom层级调到3以上查看,部分精简版GeoJSON数据在低缩放层级下不会渲染细节。
内容的提问来源于stack exchange,提问作者user8849845
相关产品推荐
相关产品推荐

