如何在图中增加地图大小?

时间:2014-02-04 14:21:01

标签: r plot openstreetmap

我想在openstreetmap中绘制点。要为地图确定合适的范围,我要使用min()max()并将尺寸增加10%:

library(OpenStreetMap)
coords <- data.frame(cbind(c(-2.121821, -2.118570, -2.124278),
c(51.89437, 51.90330, 51.90469)))
topleft <- c(max(coords[,2]) + 0.1 * max(coords[,2]),
min(coords[,1]) - 0.1 * min(coords[,1]))
bottomright <- c(min(coords[,2]) - 0.1 * min(coords[,2]),
max(coords[,1]) + 0.1 * max(coords[,1]))

map <- openproj(openmap(topleft, bottomright, zoom = "16", type="osm"))

当我现在尝试创建地图时,R会占用我所有的资源,我必须终止这个过程。有没有更好的方法来实现这一目标?

R version 3.0.1 (2013-05-16)
Platform: x86_64-unknown-linux-gnu (64-bit)
other attached packages:
[1] ggplot2_0.9.3.1     OpenStreetMap_0.3.1 rgdal_0.8-14        raster_2.2-12       sp_1.0-14          
[6] rJava_0.9-6        

1 个答案:

答案 0 :(得分:1)

您错误地扩展了范围,因为您会看到是否查看了topleftbottomright的计算值。

一个不易出错的方法可能会使用函数extendrange()(许多R绘图函数使用它在图中最极端点附近添加一点缓冲区)。

xx <- extendrange(coords[[1]], f=0.10)
yy <- extendrange(coords[[2]], f=0.10)
tl <- c(max(yy), min(xx))
br <- c(min(yy), max(xx))
map <- openproj(openmap(tl, br, zoom="16", type="osm"))
plot(map)

enter image description here