【问题标题】:Plot areas on RGoogleMaps在 RGoogleMaps 上绘制区域
【发布时间】:2012-03-16 10:50:31
【问题描述】:

我有一个带有多边形区域的 shapefile,并且可以像这样成功地使用 PlotOnStaticMap:

#Map <- GetMap.bbox(bb$  #Just to show I read "Map" here
shp_0 <- rgdal::readOGR(dsn="dir", layer="TheLayer")
shp_1 <- shp_0@polygons[[i1]]  # where i1=the region I'm looking at
shp_2 <- shp_1@Polygons[[i2]]  # where i2=the polygon I want to plot
tbl_coords_i2 <- data.frame(shp_2@coords)
tbl_coords_i2$color <- colors()[33]  # red
tmp <- PlotOnStaticMap(lat=tbl_coords_i2$X2, lon=tbl_coords_i2$X1, cex=0.5, pch=15, col=tbl_coords_i2$color, MyMap=Map, add=FALSE, NEWMAP=FALSE, FUN=points)

但我真正想要的是绘制用红色填充的区域,如下所示:

tmp <- PlotPolysOnStaticMap(polys=shp_2, col=colors()[33], MyMap=Map, border = NULL, lwd=0.25, add=FALSE, NEWMAP=FALSE)

但这会给出错误“polys[,“Y”] 中的错误:'S4' 类型的对象不是可子集的”应该怎么做呢?

  • shp_0 是“SpatialPolygonsDataframe”
  • shp_1 是一个“多边形”
  • shp_2 是一个“多边形”

很抱歉没有提供可重现的代码。

非常感谢。

/克里斯

更新:我刚刚意识到 PlotPolysOnStaticMap(shp) 中的“shp”应该是包含“X”和“Y”列的数据框,即不是我之前假设的 shapefile。

更新 2:即使我使用“border=NA”,我也得到了带有黑色边框的红色多边形。有人知道如何摆脱边界吗?

【问题讨论】:

  • 尝试border=NA 而不是NULL(或者作为最后的手段,我想你也可以将边框设为红色)。

标签: r shapefile rgooglemaps


【解决方案1】:

为了其他人的利益,我在这里介绍我找到的解决方法:我打印了“PlotPolysOnMap”并将其粘贴到我自己的函数“PlotPolysOnMap2”中。然后在新功能(不共享)中,我手动设置了border=NA(原来是border=border)。然后绘制多边形,周围没有线条。这个“丑陋的修复”可能会让比我更熟练的程序员感到不安,但我今天必须完成......

/克里斯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 2017-11-18
    • 1970-01-01
    • 2011-02-23
    • 2019-07-25
    • 1970-01-01
    相关资源
    最近更新 更多