我正在尝试保存一个地图与点覆盖到一个png文件使用RgoogleMaps。我可以在绘图设备中成功地创建地图和覆盖点,但不知道如何将这些点写入我的地图的png文件。
我使用的是Mac OS X Lion 10.7.5 R版本2.15.0
使用R文档中的示例代码,我得到了相同的结果:在我打开的打印设备上显示多行代码,但没有写入png文件。
下面是我使用的示例代码:
lat = c(40.702147,40.718217,40.711614);
lon = c(-74.012318,-74.015794,-73.998284);
center = c(mean(lat), mean(lon));
zoom <- min(MaxZoom(range(lat), range(lon)));
#this overhead is taken care of implicitly by GetMap.bbox();
MyMap <- GetMap(center=center, zoom=zoom,markers = '&markers=color:blue|label:S|40.702147,-74.015794&markers=color:green|label:G|40.711614,-74.012318&markers=color:red|color:red|label:C|40.718217,-73.998284', destfile = "MyTile1.png");
tmp <- PlotOnStaticMap(MyMap, lat = c(40.702147,40.711614,40.718217), lon = c(-74.015794,-74.012318,-73.998284), destfile = "MyTile1.png", cex=1.5,pch=20,col=c('red', 'blue', 'green'), add=FALSE);
#and add lines:
PlotOnStaticMap(MyMap, lat = c(40.702147,40.711614,40.718217), lon = c(-74.015794,-74.012318,-73.998284), lwd=1.5,col=c('red', 'blue', 'green'), FUN = lines, add=TRUE)我知道png设备正在工作,因为这是工作的:
png('my.png')
plot(seq(1:10))
dev.off()谢谢你的帮助。
发布于 2012-10-17 01:50:42
要使用PlotOnStaticMap将点和线添加到png文件,可能需要在调用PlotOnStaticMap之前显式地为绘图设备设置type='cairo-png‘。在我的机器上和我的R环境中,这是可行的:
png('MyTile1.png',type='cairo-png')
dev.cur()
png 3 # returned value但这不是
png('MyTile1.png')
dev.cur()
quartz_off_screen 2 # returned value下面的代码将点和线写入MyTile1.png:
lat = c(40.702147,40.718217,40.711614);
lon = c(-74.012318,-74.015794,-73.998284);
center = c(mean(lat), mean(lon));
zoom <- min(MaxZoom(range(lat), range(lon)));
MyMap <- GetMap(center=center, zoom=zoom,markers = '&markers=color:blue|label:S|40.702147,-74.015794&markers=color:green|label:G|40.711614,-74.012318&markers=color:red|color:red|label:C|40.718217,-73.998284')
# explicitly set device to png with type='cairo-png'
png('MyTile1.png',type='cairo-png')
# add points
tmp <- PlotOnStaticMap(MyMap, lat = c(40.702147,40.711614,40.718217), lon = c(-74.015794,-74.012318,-73.998284), cex=1.5,pch=20,col=c('red', 'blue', 'green'));
#and add lines:
PlotOnStaticMap(MyMap, lat = c(40.702147,40.711614,40.718217), lon = c(-74.015794,-74.012318,-73.998284), lwd=1.5,col=c('red', 'blue', 'green'), FUN = lines, add=TRUE)
dev.off()发布于 2012-10-16 15:08:42
你可以在你的最后一行后面加上
dev.print(png, width = 800, file = "MyTile2.png")或者类似的东西
https://stackoverflow.com/questions/12908166
复制相似问题