2015-08-15 5 views
1

В настоящее время я работаю над данными примера, где я хочу показать счетчик метрики для определенной широты и долготы.Как распечатать вывод карты google в pdf в R

данных ниже:

count latitude longitude 
1 -33.9742299 -59.2025543 
1 -32.1833305 -64.4166718 
1 40.069099 45.038189 
0 43.1708104 -76.2904452 
4 51.3105976 4.2649749 
3 50.5296991 5.2614551 
2 -22.9748764 -44.3036414 
6 43.7755615 23.7246154 
4 53.1732661 -112.0334845 
4 46.315255 -63.325855 
0 50.9302435 -113.986716 
1 46.402735 -72.274846 
0 49.224312 -122.9865026 
4 43.8384117 -79.0867579 
1 45.0679663 -66.4535262 
2 23.132191 113.266531 
0 19.912026 109.690508 
1 30.4783192 120.9239947 
0 39.084158 117.200983 
4 49.0812519 16.1921789 

library(plotGoogleMaps) 
coordinates(nuc)<-~longitude+latitude 
proj4string(nuc) <- CRS('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs ') 
pltmap<-plotGoogleMaps(nuc,filename='firstmp.htm', zcol='count' 
        , draggableMarker=FALSE, colPalette=c('#DC143C', '#FFD700', '#00FF00')) 

справка из github-

Теперь я хочу, чтобы напечатать вывод карты в формате PDF.

Проверенная функция pdf, но она не работает для этого. Не уверен в 'wkhtmltopdf', поскольку это другой инструмент.

Пожалуйста, помогите мне с любыми указателями, чтобы получить выход в формате pdf.

Спасибо, kemen

+0

jeremycg ... Я пробовал то же самое, но столкнулся с приведенной ниже ошибкой: ошибка открытия файла document.the не может быть открыта, поскольку у нее нет страниц. Он по-прежнему находится на веб-странице –

+0

pdf (" pltmap.pdf ") pltmap <-plotGoogleMaps (nuc, filename = 'firstmp.htm', zcol = 'count' , draggableMarker = FALSE, colPalette = c ('# DC143C', '# FFD700', '# 00FF00')) dev.off() –

+0

Что не так в вышеуказанном коде? –

ответ

3

Вот можно альтернативное решение с использованием ggmap пакета:

nuc <- read.table(text="count latitude longitude 
1 -33.9742299 -59.2025543 
1 -32.1833305 -64.4166718 
1 40.069099 45.038189 
0 43.1708104 -76.2904452 
4 51.3105976 4.2649749 
3 50.5296991 5.2614551 
2 -22.9748764 -44.3036414 
6 43.7755615 23.7246154 
4 53.1732661 -112.0334845 
4 46.315255 -63.325855 
0 50.9302435 -113.986716 
1 46.402735 -72.274846 
0 49.224312 -122.9865026 
4 43.8384117 -79.0867579 
1 45.0679663 -66.4535262 
2 23.132191 113.266531 
0 19.912026 109.690508 
1 30.4783192 120.9239947 
0 39.084158 117.200983 
4 49.0812519 16.1921789", header=TRUE, stringsAsFactors=FALSE) 

library(ggmap) 
library(ggthemes) 

gmap <- get_map(location=c(longitude=mean(nuc$longitude), 
          latitude=mean(nuc$latitude)), 
       zoom=3) 

gg <- ggmap(gmap) 
gg <- gg + geom_point(data=nuc, aes(x=longitude, y=latitude, size=count, fill=count), 
         shape=21, color="black") 
gg <- gg + scale_fill_distiller(palette="Reds") 
gg <- gg + theme_map() 
gg <- gg + theme(legend.position="right") 
gg 

Это будет производить после чего вы должны быть в состоянии использовать в PDF довольно легко.

enter image description here

(возможно, потребуется настроить уровень масштабирования и т.д., так как я знаю, что некоторые пункты не показывался на этом уровне масштабирования)

UPDATE

Так как мы Я думаю, что сюжет plotGoogleMaps выглядит ужасно. Но, если вы действительно хотите, чтобы это продемонстрировало ваши усилия, вы можете использовать phantomjs (т. Е. Вам нужно установить phantomjs). Поместите это после того, как вы построить карту (она опирается на этот HTML-файл сохраняются):

cat("var page = require('webpage').create(); 
page.viewportSize = { width: 1280, height: 800 }; 
page.open('firstmp.htm', function() { 
    window.setTimeout(function() { 
    page.render('firstmp.png'); 
    page.render('firstmp.pdf', {format: 'pdf', quality: '100'}); 
    phantom.exit(); 
    }, 3000); 
});", file="render.js") 

system("phantomjs --ignore-ssl-errors=true render.js") 

Это занимает ~ 3s, поскольку она должна позволить нагрузку карта плитки. Результатом является файл png и pdf. Вы можете использовать R markdown, если хотите разместить png в PDF с другими результатами анализа вокруг него. Вот детские она создана (вы можете сделать это любой размер, изменяя Params ширина/высота:

enter image description here

Вы также можете установить прямоугольник отсечения, чтобы избавиться от элементов управления слева (и что это чрезвычайно полезный ответ)

+0

спасибо за это. Но я ищу какое-то решение для моего примера, потому что это интерактивная диаграмма и гораздо более привлекательная, чем эта. Я тоже пробовал это, и кажется, что точки быть настолько близким для нескольких латов и долго, что они вроде накладываются даже после масштабирования –

+0

(вы не получите интерактивность в PDF) – hrbrmstr

+0

system ("wkhtmltopdf --enable-javascript --javascript-delay 2000 mymap .html mymap.pdf ") file.copy (" mymap.pdf "," mymap.html "), но не смог получить какой-либо результат ... не смог получить, как точно использовать это ... любые указатели будут оценены ..... установлено это программное обеспечение и установлено в системный путь var тоже –

 Смежные вопросы

  • Нет связанных вопросов^_^