2016-03-13 57 views
7

我想添加單張地圖瓦片在R.創建revealjs_presentation這張地圖呈現在ioslide或HTML格式的罰款,但不是在revealjs_presentation格式(主要問題中revealjs介紹:所有字體太大,當選擇時,地圖在多邊形邊界周圍具有奇怪的僞影)。因爲地圖的其他輸出格式效果很好,我懷疑這個問題有某種revealjs_presentation和小葉之間不兼容的CSS的做。一體化單張地圖中的R

爲了兩組代碼隔離我保存的使用htmlwidgets小葉地圖。這張地圖看起來很好,但似乎沒有辦法使用iframe在演示文稿中嵌入這個本地html文件。由於我不是CSS專家,因此我非常感謝有關如何對此進行排序的指導。如果有人已經產生與彈出窗口的互動單張地圖是正確呈現在revealjs_presentation格式R內部,我會很感激地看到,代碼的某些部分。對於它的價值,單張地圖代碼:

leaflet(x) %>% 
addPolygons(popup = popup, weight = 0.7, fillColor = ~pal(quintf), 
      color = 'white', fillOpacity = 1, opacity = 1, 
      smoothFactor = 0.8) %>% 

addLegend(pal = pal, values = x$quintf, title = "CXI Activity", 
     position = 'bottom right') 

此文件可以正確保存(如下面的代碼),但在iframe引用它打破了針織HTML文件的自包含性質。

saveWidget(m, file="map.html") 

回答

3

正如您已經猜到的那樣,您可以通過添加一些自定義CSS來修復超大字體問題。假設您想修復任何彈出窗口和地圖圖例的字體。首先,打開一個新的文本文件並添加以下內容:

.reveal section .leaflet-popup-content { 
    font: 20px; 
} 

.reveal section .leaflet-control { 
    font: 24px; 
} 

根據需要調整相對字體大小。將文件另存爲leafletfont.css(或任何您想調用它的文件)與您的RMarkdown文件位於同一目錄中。

所有你現在需要做的是呼叫添加到新的CSS文件在演示文稿中的前事:

--- 
title: "Habits" 
author: John Doe 
date: March 22, 2005 
output: 
    revealjs::revealjs_presentation 
    css: leafletfont.css 
--- 

你的字體現在應該是適當大小。

P.S.我如何知道使用「.leaflet-popup-content」和「.leaflet-control」CSS選擇器?通過右鍵單擊地圖的相關元素(即,一次在我的Chrome瀏覽器中以HTML格式呈現它)並選擇「檢查」。