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

Python如何循环更新控制台输入的经纬度坐标以动态计算多边形区域面积

经纬度多边形面积自动计算循环实现方案

完整实现代码

from pyproj import Geod

# 初始化WGS84坐标系下的计算对象(保留原有必要逻辑)
geod = Geod(ellps='WGS84')
# 初始化经纬度空列表,自动存储所有输入点
lats = []
lons = []

print("提示:输入非数字即可终止程序,每次依次输入纬度、经度即可新增点位")
while True:
    try:
        # 分两次单独输入当前点的纬度、经度
        lat = float(input("请输入当前点的纬度:"))
        lon = float(input("请输入当前点的经度:"))
    except ValueError:
        print("程序已终止")
        break
    # 自动把新点位追加到列表中,无需手动修改列表结构
    lats.append(lat)
    lons.append(lon)
    point_count = len(lats)
    # 根据当前点位数量执行对应逻辑
    if point_count == 1:
        print("当前仅录入1个点,需要更多信息才能计算面积")
    elif point_count == 2:
        print("当前仅录入2个点,暂无法计算面积")
    else:
        # 点位数量≥3时自动计算面积、周长
        poly_area, poly_perimeter = geod.polygon_area_perimeter(lons, lats)
        # 单位转换:面积转平方公里,周长转公里
        area_km2 = abs(poly_area) / 1000000
        perimeter_km = abs(poly_perimeter) / 1000
        print(f"当前共录入{point_count}个点,计算结果:")
        print(f"面积:{area_km2:.4f} km²")
        print(f"周长:{perimeter_km:.4f} km")

实现说明

  • 不需要手动定义每个点位的独立变量,通过列表的append()方法动态新增点位数据,支持不限数量的点位输入
  • 每次录入完1个完整点位后自动判断当前点位数量,不符合计算条件时输出对应提示,符合条件时自动完成计算输出
  • 加入输入异常校验,用户输入非数字内容时即可主动终止程序运行

内容的提问来源于stack exchange,提问作者Tyler Welsh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:48:00