多边形很好地在不同的缩放级别裁剪GGPLOT2 / ggmap(Polygons nicely cr

2019-07-03 23:48发布

我与空间数据集播放(主要是在城市的区域多边形),我想,以产生不同的意见,根据不同的缩放级别。 一切都很好,当我有情节边界框比包含多边形的面积。 但是在变焦,一些多边形获取是边界框外输出对于那些多边形是有问题的部分:未在边界框限制裁剪的边界框外的多边形的点不显示,导致多边形(正如所预料的),而是不考虑。 多边形是不完整的,多边形仅剩下连接在图上点(正常行为,但不想要的)。

值得所有讨论的一个很好的例子,这是问题的一个演示:

#initialisation
library(ggmap)
require(MASS)

data(zips)

# overview
ggmap(get_map(maptype = "satellite", zoom = 8), extent = "device") +
        geom_polygon(aes(x = lon, y = lat, group = plotOrder),
                data = zips, colour = NA, fill = "red", alpha = .5) +
        geom_path(aes(x = lon, y = lat, group = plotOrder),
                data = zips, colour = "white", alpha = .7, size = .4)

# problematic view    
x11()
ggmap(get_map(maptype = "satellite", zoom = 12), extent = "device") +
        geom_polygon(aes(x = lon, y = lat, group = plotOrder),
                data = zips, colour = NA, fill = "red", alpha = .5) +
        geom_path(aes(x = lon, y = lat, group = plotOrder),
                data = zips, colour = "white", alpha = .7, size = .4)

你会知道一个很好的技术才能正常产量为情节边界框限制的多边形? 谢谢你的帮助

帕斯卡尔

Answer 1:

一般来说,这个削波是由于使用刻度限制(其下降的范围之外的点)相对于使用所述坐标范围缩放(这是一个真实的变焦,只是绘制部件内部与份的范围以外仍然存在)。 ggmap没有一个简单的方法来指示应该使用的第二种类型的变焦,但看功能,相关部分可以拉出并放回在一起:

s12 <- get_map(maptype = "satellite", zoom = 12) 
ggmap(s12, base_layer=ggplot(aes(x=lon,y=lat), data=zips),
      extent = "normal", maprange=FALSE) +
    geom_polygon(aes(x = lon, y = lat, group = plotOrder),
                 data = zips, colour = NA, fill = "red", alpha = .5) +
    geom_path(aes(x = lon, y = lat, group = plotOrder),
              data = zips, colour = "white", alpha = .7, size = .4) +
    coord_map(projection="mercator", 
              xlim=c(attr(s12, "bb")$ll.lon, attr(s12, "bb")$ur.lon),
              ylim=c(attr(s12, "bb")$ll.lat, attr(s12, "bb")$ur.lat)) +
    theme_nothing()



文章来源: Polygons nicely cropping ggplot2/ggmap at different zoom levels