RgoogleMapsはR上でgoogle mapサービスを利用できる便利ライブラリです。
たとえば、ある指定の位置をgoogle map上でプロットする場合は、以下のようにします
データとして、gps.txt
Longitude,Latitude 35.656092,139.544074
を用意します。
その後、plotMapTest.R
# This program is used to plto the points on map library(RgoogleMaps); ##GPS情報と拡大率を指定 c_lat=0; c_lon=0; c_zoom=0; ##計測データを読み込み rt <- read.table(file='./gps.txt',header=TRUE,sep=",") lat <- as.vector(rt[,1]) lon <- as.vector(rt[,2]) bb <- qbbox(lat = lat, lon = lon) center = c(mean(lat), mean(lon)); if((c_lat!=0)&&(c_lon!=0)){ center = c(c_lat, c_lon); } zoom <- min(MaxZoom(range(lat), range(lon))); if(c_zoom!=0){ zoom <- c_zoom } ##プロット色 col <- rep(10, length(lat)) col[length(lat)]=2 ##Google様から当該地域の画像を頂く MyMap <- GetMap.bbox(size = c(640,480), center=center, zoom=17, destfile = "./uec.png", GRAYSCALE =F, maptype="satellite" ); ##画像生成 tmp <- PlotOnStaticMap(MyMap, lat = lat, lon = lon, size = c(300,300), destfile = "./uec.png", cex=3, pch=20, col=col, add=FALSE, NEWMAP = FALSE ); dev.print(bmp, file = "./uec_result.png", width = 640, height=480, pointsize=10 )
を
$ R --vanilla < plotMapTest.R
とやってやれば
といった風に画像をプロットすることができます。*1
今回は一点だけですが、数百点規模でのプロットも可能でした。
こちらのサイトにもあるように、
- データ処理はRubyのような文字列に強い言語
- 表示は統計に強いR
という風に使い分けるのが賢明なようです。