R 如何增加绘图中的地图大小?

R 如何增加绘图中的地图大小?,r,plot,openstreetmap,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[,

我想在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"))

如果查看一下
左上
右下
的计算值,就会发现范围扩展不正确

不太容易出错的方法可能使用函数
extendrange()
(许多R绘图函数使用该函数在绘图中的最极端点周围添加一点缓冲区)


xx为什么没有可复制的示例?好的,我扩展了我的示例。我希望这能帮上忙。这很有帮助。您应该将地图扩展到值范围的10%,这与将每个坐标本身乘以1.1或0.9不同,就像您的代码本质上所做的那样。要了解差异,请考虑您的代码将如何处理以(0,0)为中心一侧的一个角度的长方体,而不是以(100000,100000)为中心一侧的长方体。看到第二个会比第一个扩展很多吗?昨天晚上我也在考虑使用最小值和最大值之间的范围。但到目前为止,我还不知道extendrange函数,它似乎更好。我猜我的地图太大了,计算消耗了大量的cpu能量。这是对的吗?@mrub——我想事情就是这样的。你要求它加载10度的纬度数据,这需要很长时间。
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        
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)