You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中绘制带边编号的经纬度多边形并标注字母

在Python中绘制带标注的农林地块多边形

可以用matplotlib库实现需求——绘制多个多边形,为每个多边形标注字母,同时给每条边标注数字。以下是完整实现方案:

步骤说明

  • 导入matplotlib.pyplot库用于绘图
  • 定义多边形坐标数据
  • 遍历多边形,绘制轮廓并添加字母标注
  • 计算每条边的中点,添加边的数字标注
  • 调整图表样式并展示

完整代码

import matplotlib.pyplot as plt

# 定义多边形坐标
polygon1_coords = [
    (11.946898956, -86.109286248),
    (11.947196373, -86.109159886),
    (11.947092456, -86.108962101),
    (11.946897164, -86.10886504),
    (11.946898956, -86.109286248 )
]

polygon2_coords = [
    (11.946895372, -86.110055411),
    (11.94718204,  -86.110046254),
    (11.947194581, -86.109172705),
    (11.946900747, -86.109313718),
    (11.946895372, -86.110055411)
]

# 打包多边形与对应标注字母
polygons = [
    (polygon1_coords, 'A'),
    (polygon2_coords, 'B')
]

# 创建绘图对象
fig, ax = plt.subplots(figsize=(8, 6))

# 批量处理每个多边形
for poly_coords, label in polygons:
    # 拆分经纬度坐标
    lon = [coord[0] for coord in poly_coords]
    lat = [coord[1] for coord in poly_coords]
    
    # 绘制多边形轮廓
    ax.plot(lon, lat, linewidth=2, label=f'地块{label}')
    
    # 计算多边形中心坐标,添加字母标注
    center_lon = sum(lon)/len(lon)
    center_lat = sum(lat)/len(lat)
    ax.text(center_lon, center_lat, label, fontsize=14, fontweight='bold', ha='center', va='center')
    
    # 遍历每条边,添加数字标注
    for i in range(len(poly_coords)-1):
        start = poly_coords[i]
        end = poly_coords[i+1]
        # 计算边的中点
        mid_lon = (start[0] + end[0])/2
        mid_lat = (start[1] + end[1])/2
        # 放置数字标注
        ax.text(mid_lon, mid_lat, str(i+1), fontsize=12, color='red', ha='center', va='center')

# 设置图表属性
ax.set_xlabel('经度')
ax.set_ylabel('纬度')
ax.set_title('农林地块多边形标注图')
ax.legend()

# 自动调整布局,避免元素重叠
plt.tight_layout()
# 展示图像
plt.show()

关键细节说明

  • 多边形中心标注:通过计算所有坐标的均值得到近似中心位置,确保字母标注在多边形内部
  • 边的标注:遍历多边形的端点对,计算每条边的中点后放置数字,用红色字体区分于轮廓线
  • 批量处理逻辑:将多边形与标注字母打包,减少重复代码,方便后续扩展更多地块

内容的提问来源于stack exchange,提问作者Ernesto Ruiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 14:21:31