我不知道如何开始这个,因为我在R中玩的GIS一直是使用ggplot2和其他使用latlong坐标的包绘制的东西。我现在需要做的是使用Microstrategy中的可视化组件,该组件使用包含x-y坐标的HTML文件形式的shapefile(即左上角为0,0)。状态级文件的示例是:
<HTML><HEAD><TITLE>untitled</TITLE></HEAD><BODY>
<IMG SRC="" USEMAP="#myMap" WIDTH="812" HEIGHT="713" BORDER="0" />
<MAP NAME="myMap">
<AREA SHAPE="POLY" HREF="#" ALT="Texas" COORDS="299,363,299,360,....." />
</MAP></BODY></HTML>
'coords'中列出的点是相对于812 x 713'图像'的X和Y点,它们是动态绘制和着色的。
我有来自http://www.vdstech.com/usa-data.aspx的Zip3和Zip5的shp,shx,dbf文件,但我不确定甚至可以从哪里开始转换!我不介意做手工格式化HTML文件的繁琐工作,这是我坚持的X-Y转换(生锈,未触及GIS很长一段时间):
以下代码将shapefile导入R
library(rgdal)
zip3 <- readOGR(dsn = '/Users/adempsey/Downloads/zip3'), layer = 'zip3')
之后我陷入困境,目前正在寻找如何将zip3 + x-y坐标提取到数据框中的教程,然后我可以用它来创建我的最终文件
更新2
使用以下内容,我可以转换为数据框,但我无法浏览相关的zip3代码,该代码似乎存储在关联的dbf文件中
Row long lat order hole piece group id
1 -151.0604 70.41873 1 FALSE 1 0.1 0
2 -150.7620 70.49722 2 FALSE 1 0.1 0
是的,这超出了我目前生锈的R
UPDATE3 此代码将邮政编码转储到数据框中 zip3.codes&lt; - as.data.frame(zip3) 哪个应该可以与类似的东西组合 zip3.df&lt; - fortify(zip3 @ polygons [[1000]]) 其中1000将被替换为与特定zip3相关联的所有行zip3.codes
答案 0 :(得分:1)
您可以使用fastshp包来加载数据:
install.packages("fastshp",,"http://rforge.net")
library(fastshp)
s <- read.shp("zip5.shp", format="polygon")
s
现在是所有ZIP形状的列表。您对x
和y
组件感兴趣
- 例如,绘制第一个ZIP只需使用类似
plot(s[[1]]$x, s[[1]]$y, asp=1.25)
polygon(s[[1]]$x, s[[1]]$y, col="#eeeeee")
要匹配这些名称,请使用read.dbf
中的foreign
:
library(foreign)
d <- read.dbf("zip5.dbf", as.is=TRUE)
names(s) <- d$ZIP5
有关可用格式的详细信息,请参阅?read.shp
。 “polygon”使用NA
来分隔单个多边形,“list”使用索引来为您提供部分。
BTW数据集有点可疑,你可能想查看TIGER / Line人口普查ZCTA5数据(最近的是2010年)。