首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RgoogleMaps PlotOnStaticMap不向png文件添加点

RgoogleMaps PlotOnStaticMap不向png文件添加点
EN

Stack Overflow用户
提问于 2012-10-16 13:35:22
回答 2查看 2.3K关注 0票数 2

我正在尝试保存一个地图与点覆盖到一个png文件使用RgoogleMaps。我可以在绘图设备中成功地创建地图和覆盖点,但不知道如何将这些点写入我的地图的png文件。

我使用的是Mac OS X Lion 10.7.5 R版本2.15.0

使用R文档中的示例代码,我得到了相同的结果:在我打开的打印设备上显示多行代码,但没有写入png文件。

下面是我使用的示例代码:

代码语言:javascript
复制
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设备正在工作,因为这是工作的:

代码语言:javascript
复制
png('my.png')
plot(seq(1:10))
dev.off()

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-17 01:50:42

要使用PlotOnStaticMap将点和线添加到png文件,可能需要在调用PlotOnStaticMap之前显式地为绘图设备设置type='cairo-png‘。在我的机器上和我的R环境中,这是可行的:

代码语言:javascript
复制
png('MyTile1.png',type='cairo-png')
dev.cur()
png 3 # returned value

但这不是

代码语言:javascript
复制
png('MyTile1.png')
dev.cur()
quartz_off_screen 2 # returned value

下面的代码将点和线写入MyTile1.png:

代码语言:javascript
复制
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()
票数 1
EN

Stack Overflow用户

发布于 2012-10-16 15:08:42

你可以在你的最后一行后面加上

代码语言:javascript
复制
dev.print(png, width = 800, file = "MyTile2.png")

或者类似的东西

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12908166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档