Shapefile 到 geojson 并设置正确的 crs

Shapefile to geojson and set the right crs

我正在使用来自哥伦比亚 (Cali) 的一个表单文件。我需要将文件转换为 geojson 格式,但是在加载它时 crs 出现问题,因为在加载 geojson 并尝试绘制它时,没有任何显示。

这是包含数据的 zip 文件

http://ws-idesc.cali.gov.co:8081/geoserver/idesc/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=idesc:mc_barrios&maxFeatures=400&outputFormat=SHAPE-ZIP

library('mapview')
library('sf')
library('geojson')
library('geojsonsf')

## Read shapefile
cali <- read_sf("E:/Users/Rafae/Downloads/mc_barrios/mc_barrios.shp")
cali$barrio[5] <- "Area en Desarrollo - Parque del Amor"
Encoding(cali$barrio) <- "latin1"
mapview(cali)

有效

## Convert to geojson
geojson_cali <- as.geojson(cali)
cali_new <- geojsonsf::geojson_sf(geojson_cali)
mapview(cali_new)
#write(geojson_cali, "Cali.geojson")

不起作用

#geojson_sf(geojson_cali) %>% st_transform(st_crs("+proj=utm +ellps=GRS80 +datum=WGS84")) %>% 
st_make_valid() %>% mapview()
#cali_new %>% st_transform(st_crs(cali)) %>% st_make_valid() %>% mapview()

欢迎任何帮助

似乎转换为 geojson 是在未先转换数据的情况下强制对数据执行 WGS 84 crs。只需将 cali 对象转换为此投影,然后再将其转换为 geojson,这样就不再重要了。

library('mapview')
library('sf')
library('geojson')
library('geojsonsf')

## Read shapefile
cali <- read_sf("C:/Users/Administrator/Downloads/mc_barrios/mc_barrios.shp")
cali$barrio[5] <- "Area en Desarrollo - Parque del Amor"
Encoding(cali$barrio) <- "latin1"

cali <- cali %>% st_transform(4326)

cali_geojson <- sf_geojson(cali, simplify = FALSE)

cali_new <- geojson_sf(cali_geojson)

mapview(cali_new)