我正在尝试this教程中的“一些简单映射”步骤,尝试从here着色新奥尔良的邮政编码映射(我正在该链接的New Orleans 2011数据中使用.shp文件)。

当我尝试像教程中那样加载文件时,出现以下错误:

nolazip.shp <- readShapePoly("/PathTo/Orleans_ZCTA_2010_SP.shp", proj4string=CRS("+proj=longlat"))
Error in validityMethod(as(object, superClass)) :
  Geographical CRS given to non-conformant data: 3820725.379655  613426.584024


根据this文档,看来此错误意味着该形状文件不使用带有有效longlat数据的proj4string。

它是否使用其他类型的proj4string或CRS对象?

我做了这些命令来试图找出答案,在输出中搜索CRS,但没有找到任何东西。

    > summary(orcounty.shp)
    > str(orcounty.shp)


我可以通过简单地在readShapePoly命令中省略proj4string参数来导入形状文件,但这不是可行的解决方案,因为当我遵循“一些简单地图”部分(唯一的部分时,地图不会出现在绘图窗口中)我需要)。


与我的shapefile相关联的proj4字符串是什么?我如何将其作为readShapePoly的输入
我还有其他方法可以导入适用于这种地图制作方法的shapefile吗?同样,仅忽略有问题的参数意味着该地图不会显示在R studio中的绘图中。

最佳答案

我将使用readOGR解决此问题,它保留了投影信息,因此您不必像上面的问题一样弄乱它。这是读入然后在ggplot2中绘制的似乎相同的shapefile(从this US government site下载)。化妆品可能需要整理,但这将为您提供一些RColorBrewer和体重秤及其他ggplot2东西的练习。 [编辑-在aes中添加了丢失的geom_polygon通话]

# if the packages are not installed, you will have to install and load them.
install.packages("rgdal")
install.packages("ggplot2")
install.packages("scales")
library(rgdal)
library(ggplot2)
library(scales)

require(rgdal)
require(ggplot2)
require(scales)

work.dir <- "your_dirname" # your directory
                                     # no trailing slash

orl <- readOGR(work.dir, layer = "Orleans_ZCTA_2010_SP")
orl.df <- fortify(orl) # ggplot needs data frame, not spatial object

ggplot(data = orl.df, aes(x = long, y = lat, group = group)) +
    geom_polygon(aes(fill = orl.df$group)) +
    coord_equal() +
    theme(legend.position = "none")

08-24 18:02