POSGAR94 多边形和 WGS84 传单地图之间的错位

Misalignment between POSGAR94 polygons and WGS84 leaflet map

我需要在 R:

的传单地图上从 this dataset 中绘制一堆多边形

坐标在 POSGAR94, but I need them in WGS84 中以绘制在传单上(在 OpenStreetMap 图层上)并将它们与其他数据(已经在 WGS84 上)进行比较:

library(rgdal)
library(magrittr)
library(leaflet)


complete_data <- readOGR("data_folder", 
                GDAL1_integer64_policy = TRUE)

complete_data <- spTransform(bsas, 
                    CRS("+proj=longlat +datum=WGS84 +no_defs"))

我过滤数据只保留一部分:

int_data <- complete_data[grep("^0604219|^0604201|060421102|060421103", complete_data@data$link), ]

然后我绘制:

leaflet(int_data, options = leafletOptions(minZoom = 12, maxZoom = 18)) %>%
  setMaxBounds(lat1 = -37.1815, lng1 = -58.5581, lat2 = -37.1197, lng2 = -58.4297) %>%
  addTiles()%>%
  addPolygons(color = "#3498db", weight = 2, smoothFactor = 0.5,
              opacity = 0.5, fillOpacity = 0.1,
              highlightOptions = highlightOptions(color = "black", weight = 3,
                                                  bringToFront = TRUE))

当前结果如下:

所有的多边形都偏移了一个方块,它在城市周边最明显。该多边形应如下所示:

我的问题是:

我是不是投影有误?还是 spTransform 引入了坐标错误?

我的代码没问题,但是数据有误吗?

编辑:这是 st_crs 转换前后的输出:

之前

Coordinate Reference System:
  User input: +proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0=0 +ellps=WGS84 +units=m +no_defs  
  wkt:
PROJCS["unnamed",
    GEOGCS["WGS 84",
        DATUM["unknown",
            SPHEROID["WGS84",6378137,298.257223563]],
        PRIMEM["Greenwich",0],
        UNIT["degree",0.0174532925199433]],
    PROJECTION["Transverse_Mercator"],
    PARAMETER["latitude_of_origin",-90],
    PARAMETER["central_meridian",-66],
    PARAMETER["scale_factor",1],
    PARAMETER["false_easting",3500000],
    PARAMETER["false_northing",0],
    UNIT["Meter",1]]

之后

Coordinate Reference System:
  User input: +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 
  wkt:
GEOGCS["WGS 84",
    DATUM["WGS_1984",
        SPHEROID["WGS 84",6378137,298.257223563,
            AUTHORITY["EPSG","7030"]],
        AUTHORITY["EPSG","6326"]],
    PRIMEM["Greenwich",0,
        AUTHORITY["EPSG","8901"]],
    UNIT["degree",0.0174532925199433,
        AUTHORITY["EPSG","9122"]],
    AUTHORITY["EPSG","4326"]]

这看起来像是数据集的问题。我正在 QGIS 中查看它,以及一些 OSM 底图,在布宜诺斯艾利斯周围,一切似乎都非常适合道路网络:

但是向南走一点(例如在马德普拉塔海岸线附近)显示出明显的错位:

Is my code ok, but the data is wrong?

由于使用完全不同的方法可以看到相同的问题,因此可以肯定地说您的代码没有问题,并且按预期工作

我们可以说数据集在 OSM 底图上重新投影时不匹配。但是,我们不能说数据有误。如果我们加载您的数据集以及来自 ide.ign.gob.ar(部门限制)的一些参考数据,数据也不匹配:

实际上,叠加OSM、IDE-IGN和INDEC数据意味着三个不同数据源不匹配:

这很正常。在 GIS 数据集对齐方面没有简单的“正确”定义,并且有很多因素在起作用:收集标准、正射校正参数、基准偏移、投影扭曲甚至大陆漂移等。