一、课程导论与环境搭建

大家好,我是这门课的主讲。说实话,每次开新课时我都有点小兴奋——尤其是这门《模型加载与可视化地图展示》。为什么?因为我自己在项目里吃过太多地图可视化的亏了。

记得有一次,我花了整整两天时间,用Matplotlib硬生生画出一张带热力点的地图。结果领导看了一眼说:「这图...怎么这么丑?」后来我改用Folium,十分钟搞定,还带交互效果。嗯,从那以后我就明白了——工具选对了,事半功倍。

这门课到底讲什么?

说白了,就是教你三件事:

  • 加载模型数据——比如CSV里的经纬度、GeoJSON里的地理边界
  • 在地图上展示——点、线、面、热力图、聚类图,统统安排上
  • 让地图动起来——交互、动画、时间轴,用户想看哪就看哪

你想想看,如果只是把数据扔进Excel画个饼图,那多没意思。但如果你能把这些数据放到地图上,让用户一眼看出「哦,华南地区的销量最高」「这条物流路线经过哪些城市」——这才是真正的数据价值。

应用场景,我随便举几个

我在做咨询项目时遇到过一家物流公司。他们每天有上千辆货车在全国跑,调度全靠电话沟通。后来我们用Geopandas处理了全国路网数据,用Folium做了实时监控大屏。效果怎么样?调度效率提升了40%。

类似的场景还有很多:

  • 房地产——展示楼盘分布、周边配套、房价热力图
  • 气象——台风路径、降雨量分布、温度变化动画
  • 电商——用户地域分布、仓库覆盖范围、配送时效分析
  • 城市规划——人口密度、交通流量、公共设施布局

说白了,只要你的数据里带「位置」信息,这门课的技术就能派上用场。

技术栈一览

我习惯把技术栈分成四块,就像盖房子一样:

核心四件套:

  • Python——地基。没有它,其他都是空中楼阁
  • Folium——墙。基于Leaflet.js,轻量级交互地图,适合快速出图
  • Plotly——窗户。可视化能力极强,动画、3D、时间轴都能做
  • Geopandas——屋顶。处理地理空间数据的利器,读写Shapefile、GeoJSON不在话下

你可能会问:「这么多库,我该学哪个?」我的建议是——都学。但别急,我们一章一章来。第一章先把环境搭好,后面慢慢上手。

下面这张图是我自己画的,帮你理清这四者的关系:

模型加载与可视化地图展示 · 技术栈架构 Python 3.8+ 基础语言 · 数据处理 · 文件读写 Folium 交互式地图 · 轻量级 适合快速原型 · 基于Leaflet Plotly 高级可视化 · 动画/3D 适合复杂图表 · 交互丰富 Geopandas 地理空间数据处理 Shapefile/GeoJSON · 空间运算 应用场景 物流监控 · 气象展示 · 城市规划 · 电商分析 · 房地产

开发环境搭建

这部分我踩过不少坑,所以给你一个「一次配好,永不翻车」的方案。

方案一:Anaconda + Jupyter Notebook(推荐新手)

我个人习惯用Anaconda,因为它自带Python和一大堆常用库。你不需要一个个去pip install,省心。

# 第一步:下载Anaconda
# 去官网 https://www.anaconda.com/products/individual 下载对应版本

# 第二步:创建虚拟环境(强烈建议)
conda create -n geo_visual python=3.9

# 第三步:激活环境
conda activate geo_visual

# 第四步:安装核心库
conda install -c conda-forge folium plotly geopandas jupyter

# 第五步:启动Jupyter
jupyter notebook

💡 我的小技巧:创建虚拟环境时,名字最好有意义。比如我习惯用 geo_visual,一看就知道是地理可视化的项目。别用 test 或 new,三个月后你自己都忘了是干嘛的。

方案二:VS Code(适合写代码多的同学)

如果你像我一样,喜欢在编辑器里写代码、调试、看结果一条龙,那VS Code更适合你。

# 安装VS Code后,装这几个插件:
# 1. Python (微软官方)
# 2. Jupyter (微软官方)
# 3. Geo Data Viewer (预览GeoJSON用)

# 然后在终端里安装库
pip install folium plotly geopandas

⚠️ 我曾经踩过的坑:在Windows上安装Geopandas时,直接 pip install geopandas 可能会报错。因为Geopandas依赖的GDAL和Fiona需要编译。解决方案有两个:

  • 用conda安装(推荐):conda install -c conda-forge geopandas
  • 或者去 Christoph Gohlke的页面 下载预编译的whl文件

嗯,我当年就是卡在这一步,折腾了整整一个下午。后来换成conda,三分钟搞定。

验证环境是否装好

环境搭好了,怎么知道能不能用?写个简单脚本跑一下:

import folium
import plotly
import geopandas as gpd

print(f"Folium 版本: {folium.__version__}")
print(f"Plotly 版本: {plotly.__version__}")
print(f"Geopandas 版本: {gpd.__version__}")

# 创建一个简单地图
m = folium.Map(location=[39.9, 116.4], zoom_start=10)
m.save("test_map.html")
print("✅ 地图生成成功!打开 test_map.html 看看")

如果没报错,恭喜你,环境搭好了。如果报错,别慌——99%的情况是库没装全,或者版本冲突。用 pip list 检查一下,缺什么补什么。

关于编辑器,我的个人建议

场景 推荐工具 理由
快速探索数据 Jupyter Notebook 单元格执行,边写边看结果
写完整项目 VS Code 代码补全、调试、Git集成
团队协作 Jupyter Lab 多标签页、文件浏览器、终端
纯学习 Google Colab 不用配环境,浏览器就能跑

我个人习惯是:学新东西用Jupyter,写正式项目用VS Code。你想想看,Jupyter里每个单元格都能独立运行,调试起来多方便。但真要写一个完整的可视化应用,还是VS Code的工程化管理更靠谱。

最后说两句

环境搭建这一步,看起来简单,但往往是劝退很多人的地方。我见过太多同学卡在「装不上」「报错了」「版本不对」这些坑里。

我的建议是:别追求最新版本。Python 3.9、Folium 0.12、Plotly 5.9、Geopandas 0.12——这些版本我亲自测试过,互相兼容,稳定运行。你非要装Python 3.12和最新版库,那遇到兼容性问题就只能自己解决了。

好了,环境搭好,咱们就可以正式开始玩地图了。下一章,我会带你用Folium画第一张交互地图——相信我,那感觉比用Matplotlib爽多了。


可可精品资料库