我想要绘制在谷歌地图的线路层。如何绘制SpatialLinesDataFrame特征映射在谷歌地图
数据
> 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
变我
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
Thanks @maj。我是否理解使用ggmap是避免使用gis路线的一种方法?如果我也想做一些空间分析,你会推荐什么解决方案? – jpinelo
@jpinelo他们不是相互排斥的。您可以将多边形和地图图层添加到ggmap创建的ggplot和'sp'对象的'dput's(如您所见)不能很好地传输。这样的答案是一个好的例子http://stackoverflow.com/questions/10930737/ggmap-with-geom-map-superimposed/10940778#10940778 – hrbrmstr