2012-10-16 3 views
2

PNG 파일에 오버레이 된 점으로 맵을 저장하려고하는데 RgoogleMaps를 사용합니다. 플롯 장치에지도와 오버레이 포인트를 성공적으로 만들 수 있지만 내지도의 PNG 파일에 포인트를 작성하는 방법을 알 수 없습니다.RgoogleMaps PlotOnStaticMap png 파일에 점을 추가하지 않습니다.

내가 같은 결과를 얻을 R의 문서에서 예제 코드를 사용하여 맥 OS X 라이온 10.7.5 R 버전 2.15.0

에있어 내 개방 플롯 장치의 라인을하지만, PNG에 기록되지 파일.

lat = c(40.702147,40.718217,40.711614); 
lon = c(-74.,-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.&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.,-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.,-73.998284), lwd=1.5,col=c('red', 'blue', 'green'), FUN = lines, add=TRUE) 

나는이 작동하기 때문에 PNG로 장치가 작동하는지 알고 : 어떤 도움

png('my.png') 
plot(seq(1:10)) 
dev.off() 

덕분에 여기

은 내가 사용 예제 코드입니다.

답변

1

비슷한 PlotOnStaticMap을 호출하기 전에 장치를 플로팅하십시오. 내 컴퓨터에서 내 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.,-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.&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.,-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.,-73.998284), lwd=1.5,col=c('red', 'blue', 'green'), FUN = lines, add=TRUE) 
dev.off() 
0

당신은 당신의 마지막 줄을 따라 할 수

dev.print(png, width = 800, file = "MyTile2.png") 

또는 명시 적, 형태 = '카이로 - PNG'을 설정해야 할 수도 있습니다 PlotOnStaticMap 하나를 사용하여 파일을 PNG로 점과 선을 추가하려면

+0

감사합니다 응답. 예,이 및/또는 dev.copy() 대화 형 세션에서 작동 할 수 있지만 헤드없는 서버에서 실행되는 스크립트로 만들기 위해 노력하고있어 그래서 직접 png 쓸 수 있습니다 싶습니다. 다시 Thx. – glynnsc