2

マップライブラリを使用してRでマッピングしている空間データがいくつかあります。具体的には、米国の地図に円をマッピングしています。緯度/経度の中心座標と各円の半径があり、次のようにマッピングしています。

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

この特定の円には、205kmの半径が必要です。これを一致させてグラフィックウィンドウに正確にプロットすることはできましたが、ズームまたはpngにエクスポートすると、マップに対する円のサイズが変わります。

a)円のサイズを自動化し、b)エクスポート時にそのスケーリングを維持する方法はありますか?

4

1 に答える 1

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 km であり、最東点が中心の東 205 km である円が得られます。

于 2012-06-11T08:07:31.600 に答える