R中的Map坐标:ggswissmap

gab6jxml  于 2023-03-27  发布在  其他
关注(0)|答案(1)|浏览(103)

当使用ggswissmaps时,我得到的long / lat坐标与我识别的格式不匹配。

library(ggswissmaps)
data("shp_df")
    
head(shp_df[["g1b15"]]$long)

[1]679207 680062 679981 680365 680281

head(shp_df[["g1b15"]]$lat)

[1]245176 244294 244051 243411
这会是什么比例尺?它既不是我从eidogg.谷歌Map,度,也不是UTM得到的长/纬度。

wgxvkvu9

wgxvkvu91#

看起来坐标是以米为单位(北向,东向),使用Swiss CH1903 / LV03投影。
如果你想把它转换成标准的纬度/经度,你可以这样做:

library(ggswissmaps)

data("shp_df")

sw_shp <- split(shp_df[["g1b15"]], shp_df[["g1b15"]]$id) |>
  lapply(function(x) list(as.matrix(subset(x, piece == 1)[1:2]))) |>
  sf::st_multipolygon() |>
  sf::st_sfc(crs = 21781) |>
  sf::st_transform(crs = 'WGS84')

现在,这为您提供了一个简单的功能列,易于处理。例如,它可以像这样绘制:

plot(sw_shp, axes = TRUE)

相关问题