形状文件,prisecroads,邻接两个州

ccc*_*807 1 gis r esri shapefile

使用R和两个形状文件:tl_2015_01_prisecroads(alabama)和tl_2015_13_prisecroads georgia),使用readOGR()读取两个R对象.我需要关注一个包括西乔治亚州和东阿拉巴马州的地区.我试过rbind()和spRbind()无济于事.

ga_al <- rbind(alabama, georgia, fix.duplicated.IDs=TRUE)
  Error in as(x, "SpatialLines") : 
  no method or default for coercing “logical” to “SpatialLines”

ga_al <- spRbind(alabama, georgia)
  Error in spRbind(as(obj, "SpatialLines"), as(x, "SpatialLines")) : 
  non-unique line IDs
Run Code Online (Sandbox Code Playgroud)

问题1:如何组合两个形状文件来映射两个状态的区域?问题2:如何放大组合形状文件的较小区域?

hrb*_*str 5

library(tigris)
library(sp)
library(ggplot2)
library(ggthemes)
Run Code Online (Sandbox Code Playgroud)

tigrisPKG是一个更好的接口TIGER数据.devtools::install_github("walkerke/tigris").

alabama <- primary_secondary_roads("alabama")
georgia <- primary_secondary_roads("georgia")
Run Code Online (Sandbox Code Playgroud)

基础图可以将两者结合在一起,而不需要rbind:

plot(alabama)
plot(georgia, add=TRUE)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

ggplot2图也可以:

# this takes a little while if doing both primary & secondary roads
alabama_dat <- fortify(alabama)
georgia_dat <- fortify(georgia)

# so does this
gg <- ggplot()
gg <- gg + geom_map(data=alabama_dat, map=alabama_dat,
                    aes(x=long, y=lat, map_id=id),
                    color="black", fill="white", size=0.15)
gg <- gg + geom_map(data=georgia_dat, map=georgia_dat,
                    aes(x=long, y=lat, map_id=id),
                    color="black", fill="white", size=0.15)
gg <- gg + coord_map()
gg <- gg + theme_map()
gg
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

您可以使用xlimylim在ggplot中"缩放".