新闻中心
如何用python画地图上的标注线?
使用cartopy在Python中绘制地图标注线,首先创建带投影的图形,添加海岸线和国界等地理特征,设置中国区域范围,通过ax.plot()连接北京与上海坐标并设置样式,利用ax.text()在中点添加“航线”文字标注及城市名,关键需指定transform=ccrs.PlateCarree()确保经纬度正确投影,最终显示带标题的地图;若需交互式效果可选用folium库生成网页地图。

在Python中绘制地图上的标注线,常用的方法是结合地理可视化库如 matplotlib、basemap(已不再维护但仍有使用)、cartopy 或更现代的 folium 和 geopandas。下面以 matplotlib + cartopy 为例,展示如何在地图上画一条带标注的线。
1. 安装所需库
确保你已安装以下库:- matplotlib
- cartopy
- numpy
pip install matplotlib cartopy numpy
2. 绘制地图并添加标注线
下面是一个完整示例,在地图上从北京到上海画一条线,并标注“航线”:
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
# 创建图形和轴,使用 PlateCarree 投影
fig = plt.figure(figsize=(10, 6))
ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree())
# 添加地图细节
ax.add_feature(cfeature.COASTLINE)
ax.add_feature(cfeature.BORDERS, linestyle=':')
ax.add_feature(cfeature.LAND, facecolor='lightgray')
ax.add_feature(cfeature.OCEAN, facecolor='lightblue')
# 设置地图范围(中国区域)
ax.set_extent([70, 140, 15, 55], crs=ccrs.PlateCarree())
# 定义两个城市的坐标(经度, 纬度)
beijing = (116.4074, 39.9042)
shanghai = (121.4737, 31.2304)
# 绘制连接两点的线
ax.plot([beijing[0], shanghai[0]], [beijing[1], shanghai[1]],
color='red', linewidth=2, marker='o', transform=ccrs.PlateCarree())
# 添加标注
mid_lon = (beijing[0] + shanghai[0]) / 2
mid_lat = (beijing[1]
+ shanghai[1]) / 2
ax.text(mid_lon, mid_lat, '航线', transform=ccrs.PlateCarree(),
fontsize=12, color='darkblue', weight='bold',
ha='center', va='center', backgroundcolor='white')
# 添加城市标签
ax.text(beijing[0], beijing[1], '北京', transform=ccrs.PlateCarree(),
fontsize=10, ha='right', va='bottom')
ax.text(shanghai[0], shanghai[1], '上海', transform=ccrs.PlateCarree(),
fontsize=10, ha='left', va='bottom')
# 显示图
plt.title("地图上的标注线示例")
plt.show()3. 关键说明
transform=ccrs.PlateCarree():非常重要,它告诉 matplotlib 这些坐标是经纬度,避免投影错误。
ax.plot():用于画线,传入两个点的经度列表和纬度列表。
Huemint
推荐!用AI自定义和谐配色
105
查看详情
ax.text():在指定位置添加文字标注,可设置字体、颜色、背景等增强可读性。
4. 其他选择:Folium(交互式地图)
如果你想要交互式地图,可以用 folium:
```python import folium创建地图
m = folium.Map(location=[35, 105], zoom_start=5)
添加线
folium.PolyLine( locations=[[39.9042, 116.4074], [31.2304, 121.4737]], color="red", weight=2.5, opacity=1 ).add_to(m)
添加标注(通过 Popup 或 Tooltip)
folium.Marker( [35.5, 118.9], popup="航线", icon=folium.Icon(color="purple") ).add_to(m)
m.s*e("map_with_line.html")
基本上就这些。根据需求选择静态图还是交互图,cartopy 适合科研绘图,folium 适合网页展示。
以上就是如何用python画地图上的标注线?的详细内容,更多请关注其它相关文章!
# 中国
# 网站建设成品图片
# 随州台州网站建设
# 微信营销推广广告语
# 网站建设商城网站
# 抖店怎么营销推广商品
# 网络营销产品的推广之路
# 资阳定制网站建设
# 吕梁关键词排名制度
# 河南龙王建设集团网站
# 麻烦营销推广模板
# 多线程
# 如何处理
# python
# 如何使用
# 在地
# 数据处理
# 如何用
# 北京
# 图上
# igs
# red
# 上海
# ai
# html
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
使用 Pandas 高效处理 .dat 文件:字符清理与数据计算
小米汽车11月交付量突破40000台!雷军:将继续努力
一加 Nord 5 隐私权限异常_一加 Nord 5 系统安全优化
百度浏览器字体显示异常偏小_百度浏览器字体渲染修复方案
一加手机电池耗电快怎么办_一加手机电池耗电快的解决方法
126邮箱账号注册 电脑版登录入口
c++ 获取系统当前时间 c++时间戳获取方法
邮政快递包裹最新位置 邮政快递实时追踪入口
PyTorch模型训练准确率不提升:诊断与修复常见指标计算错误
优化 Jest 模拟:强制未实现函数抛出错误以提升测试效率
夸克浏览器桌面版同步不了书签怎么处理 夸克浏览器跨设备同步异常解决方案
汽车之家官方网站官网入口_汽车之家网页版直接进入
Win10文件资源管理器“此电脑”分组怎么关 Win10恢复经典视图【技巧】
机器学习中对数变换预测结果的反向还原
在python-socketio事件处理器中安全访问Flask应用上下文
如何在低配置电脑上搭建轻量级J*a环境_占用更小的环境选择技巧
如何更改在 Excel 中打开超链接时的默认浏览器
解决 Express.js 中 PUT 请求密码修改失败的路由配置指南
在WordPress中通过REST API获取BasicAuth保护的远程文章
响应式容器内容自动缩放与宽高比维持教程
在J*a中如何使用Stream.map转换元素_Stream映射操作解析
漫蛙漫画官方主页入口 漫蛙MANWA网页直达访问链接
怎样在Excel中做仪表盘_Excel仪表盘设计与关键指标展示方法
12306选座怎么选到临时改签座_12306改签选座策略与步骤
解决 MongoDB 聚合查询中对象数组 _id 匹配问题
J*aScript中安全有效地处理localStorage字符串数据
谷歌浏览器无痕模式怎么开 Chrome开启无痕浏览设置方法【教程】
铃兰之剑为这和平的世界希里技能组及加点推荐
C++如何实现单例模式_C++设计模式之线程安全的单例写法
Win11怎么关闭快速启动_Win11彻底关机设置教程
2025年云电脑操作系统体验 | 无需本地硬件,随时随地使用高性能PC
outlook中文官网入口地址 outlook官方中文版直达首页链接
mysql如何设置表访问权限_mysql表访问权限配置
印象笔记如何设离线包出差查阅_印象笔记设离线包出差查阅【离线阅读】
Safari自带网页翻译功能怎么用 无需插件轻松看懂外文网站【方法】
Pyrogram与g4f集成:异步编程实践与常见错误解决
Lar*el如何生成PDF或Excel文件_Lar*el文档导出工具与使用教程
深入理解Google Cloud Datastore查询:祖先路径与数据一致性
C++ typeid如何获取类型信息_C++ RTTI运行时类型识别用法
Win11怎么用U盘重装系统 Win11制作启动盘并重装系统完整教程【详解】
微信商城在哪里打开【步骤】
漫蛙网页登录入口 漫蛙漫画官方授权网址
解决Django多数据库/多Schema环境下外键迁移问题
夸克AO3官网入口_AO3镜像网站2025推荐
响应式CSS Grid布局:优化网格项在小屏幕下的堆叠与宽度适配
Node.js 中使用 node-cron 实现定时 API 数据抓取与处理
解决深度学习模型训练初期异常高损失与完美验证准确率问题
PyTorch模型训练效果不佳?深入剖析常见错误与调试技巧
优化 Python 函数中的条件逻辑:解决 if-else 嵌套与参数选择问题
HTML空白字符处理机制:渲染、DOM与编码实践


2025-12-01
浏览次数:次
返回列表
+ shanghai[1]) / 2
ax.text(mid_lon, mid_lat, '航线', transform=ccrs.PlateCarree(),
fontsize=12, color='darkblue', weight='bold',
ha='center', va='center', backgroundcolor='white')
# 添加城市标签
ax.text(beijing[0], beijing[1], '北京', transform=ccrs.PlateCarree(),
fontsize=10, ha='right', va='bottom')
ax.text(shanghai[0], shanghai[1], '上海', transform=ccrs.PlateCarree(),
fontsize=10, ha='left', va='bottom')
# 显示图
plt.title("地图上的标注线示例")
plt.show()