leaflet() 将 shapefile 绘制为巨大的矩形

leaflet() draws shapefile as giant rectangle

我 运行 遇到了 leaflet 的问题,它正在绘制一个巨大的矩形而不是形状。我确定 shapefile 的格式存在一些问题,但我无法确定出了什么问题。绘制文件工作正常。

文件:https://upload.cat/8c8ade09a3489b47

原始文件来源:http://sites.psu.edu/psucz/data/(在页面底部)

require(tidyverse)
require(leaflet)
require(rgdal)


ers_shp <- readOGR("ERS10.shp")

#Doesn't work, produces rectangle:
leaflet() %>% addProviderTiles("CartoDB.Positron") %>% addPolygons(data = ers_shp)

#Works, indicating the data is there.
plot(ers_shp, col="#f2f2f2", fill=TRUE, bg="skyblue", lwd=0.25, mar=rep(0,4), border=0 )

这是因为您需要先将多边形转换为 lat/long,然后再将它们传递给传单:

library(sf)
inv <- sf::st_read("ERS10.rep.shp") %>% 
  sf::st_transform(4326)
leaflet() %>% addProviderTiles("CartoDB.Positron") %>% addPolygons(data = inv)

library(sp)
inv <- rgdal::readOGR("ERS10.rep.shp") %>%  
  spTransform(CRS("+proj=longlat +datum=WGS84"))
leaflet() %>% addProviderTiles("CartoDB.Positron") %>% addPolygons(data = inv)