使用PBSMapping和Shapefiles帮助在R中绘制地理数据

Nei*_*ner 6 gis mapping r esri geospatial

使用R中O'Reilly的数据混搭为灵感,我想要绘制地址一小撮对盐池县的shape文件,犹他发现在这里.

我有数据框geoTable:

> geoTable
         address        Y         X EID
1    130 E 300 S 40.76271 -111.8872   1
2    875 E 900 S 40.74992 -111.8660   2
3   2200 S 700 E 40.72298 -111.8714   3
4    702 E 100 S 40.76705 -111.8707   4
5 177 East 200 S 40.76518 -111.8859   5
6    702 3rd ave 40.77264 -111.8683   6
7   2175 S 900 E 40.72372 -111.8652   7
8   803 E 2100 S 40.72556 -111.8680   8
Run Code Online (Sandbox Code Playgroud)

我已将其强制转换为eventData对象:

> addressEvents<-as.EventData(geoTable,projection=NA)
> addressEvents
         address        Y         X EID
1    130 E 300 S 40.76271 -111.8872   1
2    875 E 900 S 40.74992 -111.8660   2
3   2200 S 700 E 40.72298 -111.8714   3
4    702 E 100 S 40.76705 -111.8707   4
5 177 East 200 S 40.76518 -111.8859   5
6    702 3rd ave 40.77264 -111.8683   6
7   2175 S 900 E 40.72372 -111.8652   7
8   803 E 2100 S 40.72556 -111.8680   8
Run Code Online (Sandbox Code Playgroud)

所以看起来我已经拥有了我需要绘制的所有东西 - 但它不起作用.当我加载shapefile并使用绘图时

addPoints(addressEvents,col="red",cex=.5)
Run Code Online (Sandbox Code Playgroud)

我留下了一个空的shapefile.另外,当我尝试对我的eventData对象运行findPolys时,它返回NULL.

> findPolys(addressEvents,myShapeFile)
NULL
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?我能够毫无问题地完成O'Reilly教程,并且很难弄清楚我在哪里出错了.我不知道它是shapefile,我的数据框架还是whateverelse.

以下是我用于导入数据和shapefile的命令

slc<-read.table('~/utah.txt',sep=',',header=TRUE,strip.white=TRUE,stringsAsFactors=FALSE)

myShapeFile<-importShapefile("/Users/neil/Downloads/SGID93_DEMOGRAPHIC_CensusTracts2000/SGID93_DEMOGRAPHIC_CensusTracts2000",readDBF=TRUE)
Run Code Online (Sandbox Code Playgroud)

Sha*_*ane 5

您可能还想查看这些相关问题,尤其是在Eduardo的回答中: