使用ggplot转换后的形状文件中的纬度和经度值超出范围

out of bounds latitude and longitude values in converted shape file using ggplot

我正在尝试使用 PA Geospatial Data Clearinghouse 中的数据绘制 Pennyslvania 县的地图。我读入形状文件,然后将其转换为数据框,如下所示:

setwd(proj_path)
dsn <- "Data/PaCounty2019_07/PaCounty2019_07.shp"
map <- readOGR(dsn)
map_df <- tidy(map)

然后我这样画:

ggplot() +
geom_path(data = map_df, aes(x = long, y = lat, group = group)) +
labs(title = "ggplot map of pa counties")

这行得通,但是 lat/long 比例很奇怪。纬度从 -100,000 到 150,000,经度从 -2e+05 到 23+05。如果我尝试在地图上绘制任何点,看起来它们都在 [0,0],因为这些点的纬度和经度值当然都小于 180。 Image of PA map with weird scale here

为什么比例这么扭曲?我该如何解决?

您需要将 shapefile 转换为正常的 lat/long 投影。在定义 map_df...

之前执行此操作
map <- spTransform(map, CRS("+proj=longlat +ellps=WGS84 +datum=WGS84"))