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

UN LOCODE坐标转标准经纬度:Python方案及转换公式咨询

转换UN LOCODE坐标至标准经纬度

转换逻辑与公式

UN LOCODE的坐标格式遵循固定规则,手动转换公式如下:

  • 纬度转换:
    1. 拆分纬度字符串(如4230N)为数字段(4230)和方向标识(N/S)
    2. 数字段前2位是度数,后2位是分数
    3. 标准纬度 = 度数 + (分数 ÷ 60);若方向为S,结果取负数
  • 经度转换:
    1. 拆分经度字符串(如00131E)为数字段(00131)和方向标识(E/W)
    2. 数字段前3位是度数,后2位是分数
    3. 标准经度 = 度数 + (分数 ÷ 60);若方向为W,结果取负数

Python实现示例

目前没有专门针对UN LOCODE坐标转换的工具包,不过可以轻松实现自定义函数完成转换:

def locode_to_latlon(locode_coord):
    # 拆分纬度和经度部分
    lat_str, lon_str = locode_coord.split()
    
    # 处理纬度
    lat_deg = int(lat_str[:2])
    lat_min = int(lat_str[2:4])
    lat_dir = lat_str[-1]
    latitude = lat_deg + lat_min / 60
    if lat_dir == 'S':
        latitude *= -1
    
    # 处理经度
    lon_deg = int(lon_str[:3])
    lon_min = int(lon_str[3:5])
    lon_dir = lon_str[-1]
    longitude = lon_deg + lon_min / 60
    if lon_dir == 'W':
        longitude *= -1
    
    # 保留6位小数,符合标准经纬度精度
    return round(latitude, 6), round(longitude, 6)

# 测试示例输入
sample_coord = "4230N 00131E"
lat, lon = locode_to_latlon(sample_coord)
print(f"转换结果: 纬度 {lat}, 经度 {lon}")
# 输出: 转换结果: 纬度 42.5, 经度 1.516667

这个函数可以直接处理UN LOCODE格式的坐标字符串,输出符合标准的十进制经纬度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 16:15:08