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 数据集对齐方面没有简单的“正确”定义,并且有很多因素在起作用:收集标准、正射校正参数、基准偏移、投影扭曲甚至大陆漂移等。
我需要在 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 数据集对齐方面没有简单的“正确”定义,并且有很多因素在起作用:收集标准、正射校正参数、基准偏移、投影扭曲甚至大陆漂移等。