在R中的OSM图周围的框

时间:2014-06-20 12:03:25

标签: r openstreetmap

任何人都可以在R的OpenStreetMap地块周围放置一个方框吗? box不适合地图本身,rect根本没有绘制任何内容。

require(OpenStreetMap)    
m = openmap(c(52,-1), c(51,1), zoom=8, type='osm')
par(mai=rep(.2,4))
plot(m, removeMargin=F)
box()
rect(-1, 51, 1, 52, border='black', lwd=2)

1 个答案:

答案 0 :(得分:4)

box()在整个绘图区域周围绘制一个框,显然包含一些空格。

rect的问题在于坐标不是您所期望的:通过向绘图添加一些轴来检查这一点。可以从m对象本身获取正确的边界坐标:m$bbox,请参阅str(m)。使用这些来绘制矩形,如下所示:

require(OpenStreetMap)    
m = openmap(c(52,-1), c(51,1), zoom=8, type='osm')
# par(mai=rep(.2,4))

plot(m, removeMargin=F)

# add axes to check coordinates, uncomment to see for yourself
# axis(1); axis(2)

p1 = m$bbox$p1 # bottom left
p2 = m$bbox$p2 # top right
rect(xleft=p1[1], ybottom=p1[2], xright=p2[1], ytop=p2[2], xpd=NA, lwd=2, border='red')