У меня проблема с пакетом R Rgooglemaps. Я могу извлечь карту из карт Google или открыть карту улиц, но функция PlotOnStaticMap не перекрывает данные, которые я хочу нанести на карту. Вместо этого он открывает новое графическое устройство, где он отображает данные. В итоге я получаю:
- изображение, сохраненное в моем рабочем каталоге, которое содержит только восстановленную карту Google
- Окно графического устройства R с моими данными, нанесенными на белый фон.
Я нахожусь на окнах, использую версию R 2.13.1 и RGUI. Проблема возникает также, когда я запускаю код из командной строки. Я помню, что использовал Rgooglemaps несколько месяцев назад, и он работал правильно для меня. Тем временем я обновил свою версию R, так что это может быть проблема, связанная с версией.
Может кто-нибудь попробовать и посмотреть, есть ли у вас такая же проблема (и способ ее решения)?
Здесь пример для воспроизведения проблемы (взято с
http://www.r -bloggers.com / visualizing-gis-data-with-r-and-open-street-map / ). Пример использует Open Street Map вместо googlemaps, но поведение такое же.
Код:
require(RgoogleMaps)
lat_c<-51.47393
lon_c<-7.22667
bb<-qbbox(lat = c(lat_c[1]+0.01, lat_c[1]-0.01), lon = c(lon_c[1]+0.03, lon_c[1]-0.03))
OSM.map<-GetMap.OSM(lonR=bb$lonR, latR=bb$latR, scale = 20000, destfile="bochum.png")
image(OSM.map)
lat<- c(51.47393, 51.479021)
lon<- c(7.22667, 7.222526)
val <- c(0, 255)
lat_adj<-function(lat, map){(map$BBOX$ll[1]-lat)/(map$BBOX$ll[1]-map$BBOX$ur[1])}
lon_adj<-function(lon, map){(map$BBOX$ll[2]-lon)/(map$BBOX$ll[2]-map$BBOX$ur[2])}
PlotOnStaticMap(OSM.map, lat = lat_adj(lat, OSM.map), lon = lon_adj(lon, OSM.map),
col=rgb(255,0, val,90,maxColorValue=255),pch=16,cex=4)
dev.print(jpeg,"test.jpeg", width=1204, height=644, units="px")