新闻中心

如何用python画地图上的标注线?

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

如何用python画地图上的标注线?

在Python中绘制地图上的标注线,常用的方法是结合地理可视化库如 matplotlibbasemap(已不再维护但仍有使用)、cartopy 或更现代的 foliumgeopandas。下面以 matplotlib + cartopy 为例,展示如何在地图上画一条带标注的线。

1. 安装所需库

确保你已安装以下库:
  • matplotlib
  • cartopy
  • numpy
可以通过 pip 安装:

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 Huemint

推荐!用AI自定义和谐配色

Huemint 105 查看详情 Huemint

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与编码实践 

搜索