2017-03-16 1 views
3

Rのリーフレットを使用してマップを構築して、Shinyアプリとしてデプロイします。 ShinyアプリケーションはRStudio内でうまく動作していますが、Webブラウザで開くとポリゴンの色が失われます。他のすべては問題ありません。ベースマップはそこにあり、ポリゴンはすべてそこにあります。ポリゴンの上にマウスを置くと情報などを見ることができます。唯一の変更点は、ポリゴンがカラフルからすべてグレーになることです。警告もエラーメッセージもありません。Rシャイニーのアプリがウェブブラウザで開かれたときにリーフレットのポリゴンが失われる

私はR(3.3.3)とRstudio(1.0.136)の最新バージョンでMac(Sierra)に取り組んでいます。私のすべてのパッケージは最新です。私は同じ結果を持つ2つのブラウザを試しました(Chrome、Firefox)。特に奇妙なのは、Windowsマシンでアプリケーションを開こうとしたとき、逆の状況に遭遇したということです.Rstudioでは色はありませんが、Webブラウザ(Firefox)では色が完全に色づけされています。

私は、特にaddPolygons()のfillColorオプションを読み込めないことが原因だと推測していますが、なぜこのオプションに問題があるのか​​、それがなぜ時にはうまくいかないのか分かりません。私は誰もがアイデアを持っている場合、それを聞くのが大好きです!

PS私の問題はthis (unanswered) questionと似ていると思いますが、私の場合はRstudioでは動作しますが、Webブラウザ(Windowsマシンでは明らかに反対側です)では動作しません。

は、ここに以下のいくつかのコードだ(私が使用してわかりやすくするためにトリミングされていたものとは異なるデータセットが、上記のように正確に同じ動作を生成します):

library(leaflet) 
library(rgdal) 
library(shiny) 

server <- function(input,output){ 

    output$map <- renderLeaflet({ 

    # Example data (borrowed from a tutorial at https://rpubs.com/walkerke/leaflet_choropleth) 
    tmp <- tempdir() 
    url <- "http://personal.tcu.edu/kylewalker/data/mexico.zip" 
    file <- basename(url) 
    download.file(url, file) 
    unzip(file, exdir = tmp) 
    mexico <- readOGR(dsn = tmp, layer = "mexico", encoding = "UTF-8") 

    leaflet(mexico) %>% 
     addTiles() %>% 
     addPolygons(weight = 1.2, label = ~name, 
        fillColor = topo.colors(4), fillOpacity = .5, 
        highlightOptions = highlightOptions(color = "black", weight = 2, bringToFront = TRUE, fillOpacity = .8)) %>% 
     addProviderTiles("Esri.WorldPhysical") 
    }) 
} 

ui <- fluidPage(

    titlePanel("A map"), 

    sidebarLayout(
    sidebarPanel("options go here"), 
    mainPanel(
     leafletOutput("map", height = 600) 
    ) 
) 
) 

shinyApp(ui = ui, server = server) 

ありがとう!

答えて

0

topo.colorsは、アルファチャンネルの色の16進表現を返します。

あなたが実行してアルファチャンネルの一部を除去することができます

gsub(".{2}$","",topo.colors(4)) 

RStudioビューアペインには、アルファに対処し、しかしクロムまたはFirefoxことができない理由はわかりません。

あなたのリーフレットの呼び出しは次のようになります。

leaflet(mexico) %>% 
     addTiles() %>% 
     addPolygons(weight = 1.2, label = ~name, 
        fillColor = gsub(".{2}$","",topo.colors(4)), fillOpacity = .5, 
        highlightOptions = highlightOptions(color = "black", weight = 2, bringToFront = TRUE, fillOpacity = .8)) %>% 
     addProviderTiles("Esri.WorldPhysical") 
関連する問題