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

如何在R语言中将UTM坐标转换为WGS 84格式?

解决方案:MGRS坐标转WGS84(经纬度)

错误原因分析

  • 你提供的UTM.MAP.COORDINATE是**MGRS(军事格网参考系统)**格式坐标,并非标准UTM坐标,直接用st_as_sf处理会因字符串无法转为数值坐标产生NA,触发报错。
  • st_as_sf的coords参数需要传入存储x/y数值的独立列,而非单个字符串格式的坐标列。

正确转换步骤

利用mgrs包的mgrs_to_latlng函数先将MGRS坐标转为WGS84经纬度,再转为sf对象:

library(mgrs)
library(sf)

# 原始数据
id = 1:4
UTM.MAP.COORDINATE <- c("49PBT230126", "49PBT020440", "49PBT320320", "49PBT000270")
df <- data.frame(id, UTM.MAP.COORDINATE)

# 将MGRS坐标转为WGS84经纬度(返回矩阵,每行为lat, lon)
lat_lon_matrix <- t(sapply(df$UTM.MAP.COORDINATE, mgrs_to_latlng))

# 将矩阵转为数据框列,合并到原始数据
df$lat <- lat_lon_matrix[, 1]
df$lon <- lat_lon_matrix[, 2]

# 转为sf对象,CRS设置为WGS84(EPSG:4326)
df_sf <- st_as_sf(df, coords = c("lon", "lat"), crs = 4326)

# 查看结果
print(df_sf)

结果说明

转换后的df_sf是标准的sf对象,坐标系统为WGS84(EPSG:4326),包含原始ID、MGRS坐标及对应的经纬度几何信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 08:12:52