【发布时间】:2015-12-01 12:07:57
【问题描述】:
我正在尝试在 Google 地图上绘制线层。
数据
> dput(map)
new("SpatialLinesDataFrame"
, data = structure(list(att = c(463643, 2291491, 315237340, 10348934,
309845150, 674351, 58057, 55962, 302861, 1405635)), .Names = "att", row.names = c(NA,
10L), class = "data.frame")
, lines = list(<S4 object of class structure("Lines", package = "sp")>,
<S4 object of class structure("Lines", package = "sp")>,
<S4 object of class structure("Lines", package = "sp")>,
<S4 object of class structure("Lines", package = "sp")>,
<S4 object of class structure("Lines", package = "sp")>,
<S4 object of class structure("Lines", package = "sp")>,
<S4 object of class structure("Lines", package = "sp")>,
<S4 object of class structure("Lines", package = "sp")>,
<S4 object of class structure("Lines", package = "sp")>,
<S4 object of class structure("Lines", package = "sp")>)
, bbox = structure(c(50.497608475813, 26.1186426230732, 50.6164182652142,
26.2649832975207), .Dim = c(2L, 2L), .Dimnames = list(c("x",
"y"), c("min", "max")))
, proj4string = new("CRS"
, projargs = "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +no_defs"
)
)
方法
library(rgdal)
library(ggmap)
gmap <- get_map(location=rowMeans(bbox(segMap)), zoom = 11) # get Google map to use as background
变体 I
plot(map, col = map$att, lwd = 1.5)
plot(gMap)
变体 II
plot(map, col = map$att, lwd = 1.5)
ggmap(gMap)
问题
背景图绘制在特征图之上,而不是作为背景,因此特征图不可见。
澄清一下,这两个情节调用(plot() 和ggmap)都可以独立工作。
谢谢
【问题讨论】:
-
如果你真的想使用
ggmap,你应该认真考虑使用ggplot2中的函数,ggmap基于(就语法而言),更重要的是,两个包完美地协同工作(看看ggplot2::geom_line()、geom_polygon()和fortify())。如果您不想使用 ggplot 语法,请使用openstreetmap包、rGooglemaps等。 -
谢谢@maj。我是否正确理解使用 ggmap 是一种避免走 gis 路线的方法?如果我也想做一些空间分析,你会推荐什么解决方案?
-
@jpinelo 它们不是相互排斥的。您可以将多边形和地图图层添加到 ggmap 创建的 ggplot 和
dputs 的sp对象(如您所见)不能很好地传输。这个 SO 答案是一个很好的例子stackoverflow.com/questions/10930737/…
标签: r google-maps ggmap