如何使用Excel中的latitude/longitude数据在Python中绘制标记设施位置的地图?
用Python创建带标记的地图(新手友好方案)
首选工具:folium库
folium是基于Leaflet.js的Python地图库,语法简单、上手快,完全适配新手需求。
步骤1:安装folium
打开终端/命令行,运行安装命令:
pip install folium
步骤2:编写核心代码
假设你有如下格式的设施数据(可直接替换成你的真实数据):
# 示例数据:设施名称、纬度、经度 facilities = [ ("社区医院", 39.9042, 116.4074), ("市民广场", 39.9139, 116.4074), ("购物中心", 39.9289, 116.4172) ]
然后编写地图生成代码:
import folium # 计算所有设施的平均经纬度,作为地图中心 center_lat = sum(f[1] for f in facilities)/len(facilities) center_lon = sum(f[2] for f in facilities)/len(facilities) # 创建基础地图,设置初始缩放级别 m = folium.Map(location=[center_lat, center_lon], zoom_start=13) # 遍历设施列表,逐个添加标记 for name, lat, lon in facilities: folium.Marker( location=[lat, lon], popup=name, # 点击标记显示的设施名称 tooltip=name # 鼠标悬停时显示的设施名称 ).add_to(m) # 将地图保存为HTML文件,直接打开即可查看交互式地图 m.save("facility_map.html")
运行代码后,会生成一个HTML文件,打开它就能看到带标记的交互式地图,支持缩放、点击查看设施名称等操作。
其他可选工具:plotly.express
如果想要更美观的交互式效果,可以试试plotly,安装命令:
pip install plotly
示例代码:
import plotly.express as px import pandas as pd # 将设施数据转换为DataFrame格式 df = pd.DataFrame(facilities, columns=["名称", "纬度", "经度"]) # 生成交互式地图 fig = px.scatter_mapbox( df, lat="纬度", lon="经度", hover_name="名称", zoom=13, mapbox_style="open-street-map" ) # 直接在浏览器中显示地图 fig.show()
新手教程资源推荐
- folium官方文档:包含详细的入门指南、API说明和大量实操示例,从基础标记到自定义图标、热力图等功能都有覆盖,适合边看边练。
- Python数据可视化入门教程:很多面向新手的教程会专门讲解folium的使用,跟着步骤操作能快速掌握核心用法。
- 技术社区入门帖:搜索“folium 新手教程”,能找到很多带代码示例的实操文章,可解决常见的入门问题。
内容的提问来源于stack exchange,提问作者hummus
相关产品推荐
相关产品推荐

