在R中绘制地图点

时间:2017-02-28 15:35:10

标签: r plot gis maptools

我已经使用maptools成功地将NYC PUMA区域的shapefile加载到R中,我想在其上方绘制55个点,如下所示:

X   Y   pumace10    events_2008 events_2009
-73.9092456917  40.8916125162   3701    2   0
-73.8617096298  40.8899373255   3702    0   0
-73.8010284966  40.8460832277   3703    1   1

但是,积分不会用。

首先我这样绘制shapefile:

plot(nycs)

它绘制了shapefile this is the shapefile

然后我尝试在顶部绘制点,但无论以下哪一点我总是失败:

points(nyc_data$X,nnyc_data$Y,pch=20,col="red")

plot(nyc_data, pch=16, col='firebrick',add=TRUE)

plot(nyc_data$X,nyc_data$Y,pch=20,col="red")

(最后一个在新图上绘制数据,只是一个X-Y散射而不是覆盖在shapefile上)

任何想法如何做到这一点?

编辑,添加文件(修改为工作文件,希望!):

Shapefile信息:https://www.sendspace.com/file/wbqrpb 点文件:https://www.sendspace.com/file/9yrrbu

1 个答案:

答案 0 :(得分:0)

无论如何你可以发送你正在使用的文件吗?

我的猜测是你有两个问题之一:

1)“点”空间数据框或NYC PUMA文件没有坐标参照系。

2)他们都有参考系统,但它们是不同的。

可能,你的问题是这些点缺乏参考系统。

编辑:

问题是这两个数据集位于不同的坐标中,我不确定这些点的坐标系是什么。这是我的代码。问题是这些点的CRS显然既不是常规的lat / long,也不是shapefile中使用的投影。如果您有关于数据点来源的更多信息,我们可以看到他们使用的投影。

library(sp)
library(maptools)
library(rgdal)
library(rgeos)

Points=read.csv("nyc_data_sample.csv",stringsAsFactors=F)
shapefile=readOGR("shapefiles","nyu_2451_34512")



Points_Shape = SpatialPoints(Points[,c("X","Y")],proj4string=CRS("+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0"))
#Points_Shape = SpatialPoints(Points[,c("X","Y")],proj4string=CRS(proj4string(shapefile)))

Points_Shape = SpatialPointsDataFrame(Points_Shape,Points)