在R中保留地图缩放?

时间:2012-06-08 19:06:18

标签: r

我使用地图库在R中映射了一些空间数据。具体来说,我在美国地图上绘制圆圈。我有纬度/长中心坐标和每个圆的半径,并按照这样的方式映射它们:

library(maps)
library(plotrix)
map('state')
draw.circle(x=-73.76275, y=41.04181, radius=2)

此特定圆的半径为205 km。我已经能够在图形窗口中准确匹配并准确绘图,但缩放或导出到png会改变相对于地图的圆形大小。

有没有办法a)自动化圆形大小,b)在导出时保留缩放?

1 个答案:

答案 0 :(得分:0)

试试这个:

map('state')
x <- -73.76275
y <- 41.04181
radius <- 205 # in kilometers
s <- seq(0,2*pi,length=1000)
yradius <- optimize(interval=c(0,3),f=function(z){
  abs(pointDistance(c(x,y),c(x,y+z),longlat=T) - radius*1000)})$par
xradius <- optimize(interval=c(0,3),f=function(z){
  abs(pointDistance(c(x,y),c(x+z,y),longlat=T) - radius*1000)})$par
lines(cos(s)*xradius+x,sin(s)*yradius+y)  

这给你一个圆圈,其中最北点位于中心以北205公里处,最东点位于中心以东205公里处。