将Google Map Api中的地图与来自geom_polygon
的{{1}}构建的地图合并时出现问题。当我自己绘制每个地图时,没有什么奇怪的东西出现,但是当我把它们组合起来时,会出现一些直线(直线),弄乱我打算突出的边界。
1)我用来构建带有黑色边框的多边形的数据来自这个link。该文件的确切网址在我的代码下面。有时需要手动解压缩文件,因此下面的代码可能无法下载数据:
ggplot2
2)然后我加载我将构造多边形的shapefile。
path <- getwd()
fileName <- "R05.zip"
if (!file.exists(fileName)) {
urlFile = "http://www.censo2017.cl/wp-content/uploads/2016/12/R05.zip"
download(urlFile, dest = "./R05.zip", mode ="wb")
}
if (!dir.exists("./R05")) {
unzip("R05.zip")
}
3)选择我感兴趣的行政部门
distritos <- readOGR( dsn= paste(getwd(), "/R05", sep = ""),
layer="Distritos_Censales",
encoding = "UTF-8", stringsAsFactors = FALSE)
4)然后我感兴趣的地区(多边形):
distritos <- distritos[distritos@data$DESC_COMUN=="QUILPUÉ", ]
5)从distritos <- distritos[distritos@data$DESC_DISTR=="EL RETIRO" |
distritos@data$DESC_DISTR=="BELLOTO NORTE" |
distritos@data$DESC_DISTR=="VALENCIA" |
distritos@data$DESC_DISTR=="MENA" |
distritos@data$DESC_DISTR=="BELLOTO SUR" |
distritos@data$DESC_DISTR=="ALTO QUILPUÉ" |
distritos@data$DESC_DISTR=="EL SAUCE", ]
的边界构造基本地图。为了那个原因,
我使用该函数从this StackOverflow问题
distritos
6)准备shapefile数据,用bbox(distritos)
MapCenter <- function(x1, y1, x2, y2){
center.x <- x1 + ((x2 - x1) / 2)
center.y <- y1 + ((y2 - y1) / 2)
center <- c(center.x, center.y)
center
}
mcdistritos <- MapCenter(bbox(distritos)[1,1], bbox(distritos)[2,1],
bbox(distritos)[1,2], bbox(distritos)[2,2])
basemap <- get_googlemap(mcdistritos, zoom = 13,
maptype = "roadmap",
color = "bw",
style = "feature:administrative|element:labels|visibility:off")
basemap <- ggmap(basemap , extent = "device")
ggplot2
7)将两张地图拼凑在一起
distritos.fort <- fortify(distritos, region = "DESC_DISTR")
我尝试通过缩小基本地图,以防多边形边界混乱,因为它们不适合基本地图,但我得到了相同的结果,只是一个较小的地图。有谁知道如何解决它?
答案 0 :(得分:2)
您需要为您的美学添加组映射。例如
geom_polygon(data = distritos.fort,
aes(x = long, y = lat, group = group),
colour = "black",
fill = NA) + coord_map()
目前你已经有了一条连续路径。群体审美将您的数据分成不同的多边形。
我无法提取您的数据,因此我不知道您对群组所需的确切映射。但是看看其他强化的例子&amp;文档,我相信它是group = group