リーフレットとラスターを備えた光沢のあるアプリでは地図がレンダリングされません

デレク・コルコラン

私はあなたが住むのが楽しいかもしれない場所をあなたに知らせる光沢のあるアプリで働いています、これは正しく知っている働くアプリです:

光沢のあるアプリ

これまでのところ気に入っていますが、静的マップの代わりにズームインできるリーフレットマップが本当に必要ですが、これまでのところ、リーフレットパッケージによってラスターがレンダリングまたは更新される際に多くの問題が発生しています。ファイルリポジトリが必要な場合は、githubリポジトリがこれになります

これは現在のアプリのコードですサーバー:

library(shiny)
library(raster)
library(rworldmap)
library(rgdal)
library(dplyr)
data("countriesCoarse")
uno <- readRDS("uno.rds")
World <- getData('worldclim', var='bio', res=10)
cities <- readRDS("cities.rds")
shinyServer(function(input, output) {

  output$distPlot <- renderPlot({
    uno[World[[10]] > ifelse(input$degrees == "Celcius", (input$MaxTempC*10), (((input$MaxTempF-32)*5/9)*10))] <- NA
    uno[World[[11]] < ifelse(input$degrees == "Celcius", (input$MinTempC*10), (((input$MinTempF-32)*5/9)*10))] <- NA
    uno[World[[1]] < ifelse(input$degrees == "Celcius", min(input$RangeTempC*10), min(((input$RangeTempF-32)*5/9)*10))] <- NA
    uno[World[[1]] > ifelse(input$degrees == "Celcius", max(input$RangeTempC*10), max(((input$RangeTempF-32)*5/9)*10))] <- NA
    uno[World[[12]] < ifelse(input$degrees == "Celcius", min(input$RangePPC), min(input$RangePPF*25.4))] <- NA
    uno[World[[12]] > ifelse(input$degrees == "Celcius", max(input$RangePPC), max(input$RangePPF*25.4))] <- NA
    plot(uno, col ="red", legend = FALSE)
    plot(countriesCoarse, add = TRUE)
})
  output$downloadPlot <- downloadHandler(
    filename = function() { paste("WhereToLive", '.png', sep='') },
content = function(file) {
    png(file)
    uno[World[[10]] > ifelse(input$degrees == "Celcius", (input$MaxTempC*10), (((input$MaxTempF-32)*5/9)*10))] <- NA
    uno[World[[11]] < ifelse(input$degrees == "Celcius", (input$MinTempC*10), (((input$MinTempF-32)*5/9)*10))] <- NA
    uno[World[[1]] < ifelse(input$degrees == "Celcius", min(input$RangeTempC*10), min(((input$RangeTempF-32)*5/9)*10))] <- NA
    uno[World[[1]] > ifelse(input$degrees == "Celcius", max(input$RangeTempC*10), max(((input$RangeTempF-32)*5/9)*10))] <- NA
    uno[World[[12]] < ifelse(input$degrees == "Celcius", min(input$RangePPC), min(input$RangePPF*25.4))] <- NA
    uno[World[[12]] > ifelse(input$degrees == "Celcius", max(input$RangePPC), max(input$RangePPF*25.4))] <- NA
    plot(uno, col ="red", legend = FALSE)
    plot(countriesCoarse, add = TRUE)
    dev.off()
})
  output$visFun <- renderDataTable({
    uno[World[[10]] > ifelse(input$degrees == "Celcius", (input$MaxTempC*10), (((input$MaxTempF-32)*5/9)*10))] <- NA
    uno[World[[11]] < ifelse(input$degrees == "Celcius", (input$MinTempC*10), (((input$MinTempF-32)*5/9)*10))] <- NA
    uno[World[[1]] < ifelse(input$degrees == "Celcius", min(input$RangeTempC*10), min(((input$RangeTempF-32)*5/9)*10))] <- NA
    uno[World[[1]] > ifelse(input$degrees == "Celcius", max(input$RangeTempC*10), max(((input$RangeTempF-32)*5/9)*10))] <- NA
    uno[World[[12]] < ifelse(input$degrees == "Celcius", min(input$RangePPC), min(input$RangePPF*25.4))] <- NA
    uno[World[[12]] > ifelse(input$degrees == "Celcius", max(input$RangePPC), max(input$RangePPF*25.4))] <- NA
    cities$exists <- extract(uno, cities[,2:3])
    cities <- filter(cities, exists == 1)
    cities <- cities[,c(1,4,5,6)]
    cities <- filter(cities, pop > min(as.numeric(as.character(input$Population))))
    cities <- filter(cities, pop < max(as.numeric(as.character(input$Population))))
    cities
})
  output$downloadData <- downloadHandler(
    filename = function() { paste("cities", '.csv', sep='') },
    content = function(file) {
      uno[World[[10]] > ifelse(input$degrees == "Celcius", (input$MaxTempC*10), (((input$MaxTempF-32)*5/9)*10))] <- NA
      uno[World[[11]] < ifelse(input$degrees == "Celcius", (input$MinTempC*10), (((input$MinTempF-32)*5/9)*10))] <- NA
      uno[World[[1]] < ifelse(input$degrees == "Celcius", min(input$RangeTempC*10), min(((input$RangeTempF-32)*5/9)*10))] <- NA
      uno[World[[1]] > ifelse(input$degrees == "Celcius", max(input$RangeTempC*10), max(((input$RangeTempF-32)*5/9)*10))] <- NA
      uno[World[[12]] < ifelse(input$degrees == "Celcius", min(input$RangePPC), min(input$RangePPF*25.4))] <- NA
      uno[World[[12]] > ifelse(input$degrees == "Celcius", max(input$RangePPC), max(input$RangePPF*25.4))] <- NA
      cities$exists <- extract(uno, cities[,2:3])
      cities <- filter(cities, exists == 1)
      cities <- filter(cities$pop > min(input$Population))
      cities <- filter(cities$pop < max(input$Population))
      cities <- cities[,c(1,4,5,6)]
      write.csv(cities, file)
}
)
})

UI:

library(shiny)
library(raster)
library(rworldmap)
library(rgdal)
data("countriesCoarse")


shinyUI(fluidPage(

  titlePanel("Where should you live according to your climate preferences?"),


  sidebarLayout(
    sidebarPanel(
      h3("Select your climate preferences"),
      p("Using worldclim database, and knowing your climate prefeneces, you can now using this tool get an idea of where in the world you should live."),
      p("Just use the sliders to anwer the simple questions we ask and you will get a map together with a downloadable table of where the climate suits you."),
      selectInput(inputId = "degrees", label = "Temp units:", choices = 
                c("Celcius"= "Celcius",
                  "Fahrenheit" = "Fahrenheit")),
      submitButton("Update View", icon("refresh")),
      conditionalPanel(condition = "input.degrees == 'Celcius'",
                   sliderInput(inputId = "MaxTempC",
                               label = "What's the average maximum temperature you want to endure during the summer?",
                               min = 0,
                               max = 50,
                               value = 30),
                   sliderInput(inputId = "MinTempC",
                               label = "What's the average minimum temperature you want to endure during the winter?",
                               min = -40,
                               max = 60,
                               value = 0),
                   sliderInput(inputId = "RangeTempC",
                               label = "What's your prefered temperature range?",
                               min = -10,
                               max = 30,
                               value = c(0, 20)),
                   sliderInput(inputId = "RangePPC",
                               label = "What's your prefered precipitation range?",
                               min = 0,
                               max = 5000,
                               value = c(0, 5000))),

  conditionalPanel(condition = "input.degrees == 'Fahrenheit'",
                   sliderInput(inputId = "MaxTempF",
                               label = "What's the average maximum temperature you want to endure during the summer?",
                               min = 0,
                               max = 120,
                               value = 90),
                   sliderInput(inputId = "MinTempF",
                               label = "What's the average minimum temperature you want to endure during the winter?",
                               min = -40,
                               max = 60,
                               value = 32),
                   sliderInput(inputId = "RangeTempF",
                               label = "What's your prefered temperature range?",
                               min = -40,
                               max = 90,
                               value = c(32, 70)),                       
                   sliderInput(inputId = "RangePPF",
                               label = "What's your prefered precipitation range?",
                               min = 0,
                               max = 200,
                               value = c(0, 200))),
                  sliderInput(inputId = "Population",
                               label = "how big of a town do you want to live in (Population)?",
                               min = 0,
                               max = 20000000,
                               value = c(0, 20000000, by = 1)))
,

# Show a plot of the generated distribution
mainPanel(
  plotOutput("distPlot"),
  downloadButton('downloadPlot', 'Download Plot'),
  dataTableOutput("visFun"),
  downloadButton('downloadData', 'Download Table')
)
)
))

これまでのところ良好ですが、リーフレットマップを使用するように変更しようとすると、うまく機能しません。実際、リーフレットマップが表示されないので、これを試しました。

サーバ:

library(shiny)
library(raster)
library(rworldmap)
library(rgdal)
library(dplyr)
library(leaflet)
library(sp)
data("countriesCoarse")
uno <- readRDS("uno.rds")
World <- getData('worldclim', var='bio', res=10)
cities <- readRDS("cities.rds")
shinyServer(function(input, output) {

  output$map <- renderLeaflet({
    uno[World[[10]] > ifelse(input$degrees == "Celcius", (input$MaxTempC*10), (((input$MaxTempF-32)*5/9)*10))] <- NA
    uno[World[[11]] < ifelse(input$degrees == "Celcius", (input$MinTempC*10), (((input$MinTempF-32)*5/9)*10))] <- NA
    uno[World[[1]] < ifelse(input$degrees == "Celcius", min(input$RangeTempC*10), min(((input$RangeTempF-32)*5/9)*10))] <- NA
    uno[World[[1]] > ifelse(input$degrees == "Celcius", max(input$RangeTempC*10), max(((input$RangeTempF-32)*5/9)*10))] <- NA
    uno[World[[12]] < ifelse(input$degrees == "Celcius", min(input$RangePPC), min(input$RangePPF*25.4))] <- NA
    uno[World[[12]] > ifelse(input$degrees == "Celcius", max(input$RangePPC), max(input$RangePPF*25.4))] <- NA
    l <- leaflet() %>% setView(0, 0, zoom = 1)    
    l <- l %>% addRasterImage(uno)
    l
})
  output$downloadPlot <- downloadHandler(
    filename = function() { paste("WhereToLive", '.png', sep='') },
content = function(file) {
    png(file)
    uno[World[[10]] > ifelse(input$degrees == "Celcius", (input$MaxTempC*10), (((input$MaxTempF-32)*5/9)*10))] <- NA
    uno[World[[11]] < ifelse(input$degrees == "Celcius", (input$MinTempC*10), (((input$MinTempF-32)*5/9)*10))] <- NA
    uno[World[[1]] < ifelse(input$degrees == "Celcius", min(input$RangeTempC*10), min(((input$RangeTempF-32)*5/9)*10))] <- NA
    uno[World[[1]] > ifelse(input$degrees == "Celcius", max(input$RangeTempC*10), max(((input$RangeTempF-32)*5/9)*10))] <- NA
    uno[World[[12]] < ifelse(input$degrees == "Celcius", min(input$RangePPC), min(input$RangePPF*25.4))] <- NA
    uno[World[[12]] > ifelse(input$degrees == "Celcius", max(input$RangePPC), max(input$RangePPF*25.4))] <- NA
    plot(uno, col ="red", legend = FALSE)
    plot(countriesCoarse, add = TRUE)
    dev.off()
})
  output$visFun <- renderDataTable({
    uno[World[[10]] > ifelse(input$degrees == "Celcius", (input$MaxTempC*10), (((input$MaxTempF-32)*5/9)*10))] <- NA
    uno[World[[11]] < ifelse(input$degrees == "Celcius", (input$MinTempC*10), (((input$MinTempF-32)*5/9)*10))] <- NA
    uno[World[[1]] < ifelse(input$degrees == "Celcius", min(input$RangeTempC*10), min(((input$RangeTempF-32)*5/9)*10))] <- NA
    uno[World[[1]] > ifelse(input$degrees == "Celcius", max(input$RangeTempC*10), max(((input$RangeTempF-32)*5/9)*10))] <- NA
    uno[World[[12]] < ifelse(input$degrees == "Celcius", min(input$RangePPC), min(input$RangePPF*25.4))] <- NA
    uno[World[[12]] > ifelse(input$degrees == "Celcius", max(input$RangePPC), max(input$RangePPF*25.4))] <- NA
    cities$exists <- extract(uno, cities[,2:3])
    cities <- filter(cities, exists == 1)
    cities <- cities[,c(1,4,5,6)]
    cities <- filter(cities, pop > min(as.numeric(as.character(input$Population))))
    cities <- filter(cities, pop < max(as.numeric(as.character(input$Population))))
    cities
})
  output$downloadData <- downloadHandler(
    filename = function() { paste("cities", '.csv', sep='') },
    content = function(file) {
      uno[World[[10]] > ifelse(input$degrees == "Celcius", (input$MaxTempC*10), (((input$MaxTempF-32)*5/9)*10))] <- NA
      uno[World[[11]] < ifelse(input$degrees == "Celcius", (input$MinTempC*10), (((input$MinTempF-32)*5/9)*10))] <- NA
      uno[World[[1]] < ifelse(input$degrees == "Celcius", min(input$RangeTempC*10), min(((input$RangeTempF-32)*5/9)*10))] <- NA
      uno[World[[1]] > ifelse(input$degrees == "Celcius", max(input$RangeTempC*10), max(((input$RangeTempF-32)*5/9)*10))] <- NA
      uno[World[[12]] < ifelse(input$degrees == "Celcius", min(input$RangePPC), min(input$RangePPF*25.4))] <- NA
      uno[World[[12]] > ifelse(input$degrees == "Celcius", max(input$RangePPC), max(input$RangePPF*25.4))] <- NA
      cities$exists <- extract(uno, cities[,2:3])
      cities <- filter(cities, exists == 1)
      cities <- filter(cities$pop > min(input$Population))
      cities <- filter(cities$pop < max(input$Population))
      cities <- cities[,c(1,4,5,6)]
      write.csv(cities, file)
}
)
})

そして

UI:

library(shiny)
library(raster)
library(rworldmap)
library(rgdal)
library(leaflet)
data("countriesCoarse")


shinyUI(fluidPage(

  titlePanel("Where should you live according to your climate preferences?"),


  sidebarLayout(
    sidebarPanel(
      h3("Select your climate preferences"),
      p("Using worldclim database, and knowing your climate prefeneces, you can now using this tool get an idea of where in the world you should live."),
      p("Just use the sliders to anwer the simple questions we ask and you will get a map together with a downloadable table of where the climate suits you."),
      selectInput(inputId = "degrees", label = "Temp units:", choices = 
                c("Celcius"= "Celcius",
                  "Fahrenheit" = "Fahrenheit")),
      submitButton("Update View", icon("refresh")),
      conditionalPanel(condition = "input.degrees == 'Celcius'",
                   sliderInput(inputId = "MaxTempC",
                               label = "What's the average maximum temperature you want to endure during the summer?",
                               min = 0,
                               max = 50,
                               value = 30),
                   sliderInput(inputId = "MinTempC",
                               label = "What's the average minimum temperature you want to endure during the winter?",
                               min = -40,
                               max = 60,
                               value = 0),
                   sliderInput(inputId = "RangeTempC",
                               label = "What's your prefered temperature range?",
                               min = -10,
                               max = 30,
                               value = c(0, 20)),
                   sliderInput(inputId = "RangePPC",
                               label = "What's your prefered precipitation range?",
                               min = 0,
                               max = 5000,
                               value = c(0, 5000))),

  conditionalPanel(condition = "input.degrees == 'Fahrenheit'",
                   sliderInput(inputId = "MaxTempF",
                               label = "What's the average maximum temperature you want to endure during the summer?",
                               min = 0,
                               max = 120,
                               value = 90),
                   sliderInput(inputId = "MinTempF",
                               label = "What's the average minimum temperature you want to endure during the winter?",
                               min = -40,
                               max = 60,
                               value = 32),
                   sliderInput(inputId = "RangeTempF",
                               label = "What's your prefered temperature range?",
                               min = -40,
                               max = 90,
                               value = c(32, 70)),                       
                   sliderInput(inputId = "RangePPF",
                               label = "What's your prefered precipitation range?",
                               min = 0,
                               max = 200,
                               value = c(0, 200))),
                  sliderInput(inputId = "Population",
                               label = "how big of a town do you want to live in (Population)?",
                               min = 0,
                               max = 20000000,
                               value = c(0, 20000000, by = 1)))
,

# Show a plot of the generated distribution
mainPanel(
  leafletOutput("map", width = "100%", height = "100%"),
  downloadButton('downloadPlot', 'Download Plot'),
  dataTableOutput("visFun"),
  downloadButton('downloadData', 'Download Table')
)
)
))

これはエラーをスローしていませんが、マップはレンダリングされておらず、次の警告があります

Listening on http://127.0.0.1:7231
Warning in rgdal::rawTransform(projfrom, projto, nrow(xy), xy[, 1], xy[,  :
54 projected point(s) not finite
Warning in rgdal::rawTransform(projfrom, projto, nrow(xy), xy[, 1], xy[,  :
54 projected point(s) not finite
Warning in rgdal::rawTransform(projfrom, projto, nrow(xy), xy[, 1], xy[,  :
54 projected point(s) not finite
HubertL

問題は、height相対的なものにできないプロットの問題です

絶対値に置き換えるだけで、次のように表示されます。

leafletOutput("map", width = "100%", height = 400)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

光沢のあるリーフレットマップは、入力を切り替えると2回レンダリングされます

分類Dev

光沢のあるアプリでレンダリングされないURLテンプレートのリーフレットマップタイル

分類Dev

光沢のあるアプリでのリーフレットマップのキャッシュまたは事前レンダリング

分類Dev

光沢のあるスタートアップでタブ全体にリーフレットマーカーをレンダリングする

分類Dev

光沢のあるデバウンスは最初のプロットをレンダリングしません

分類Dev

ストロークラインが光沢がある/まだリーフレットマップに表示されているのはなぜですか?

分類Dev

Plot.lyマップが光沢のあるアプリでレンダリングされない

分類Dev

光沢のあるダッシュボードのテキスト入力に基づいてテーブルをレンダリングできません

分類Dev

光沢のあるリーフレットポリゴンのカスタム静的カラーリング

分類Dev

Rの光沢のあるsummary_tableoutはhtmlでレンダリングされません

分類Dev

光沢のあるリーフレットeasyPrintプラグイン

分類Dev

光沢のある/ Leafletマップがレンダリングされない

分類Dev

光沢のあるアプリのレンダリングごとにデータセットの再作成を停止する方法

分類Dev

光沢のあるアプリは、コードがコンソールに送信されたときに実行されますが、[アプリの実行]ボタンが選択されているときは実行されません

分類Dev

Jenkinsパイプラインのシェルスクリプトを介してansibleプレイブックを実行すると、エコー出力がバッファリングされ、リアルタイムで表示されません

分類Dev

フラットリストのヘッダーまたはフッターがReactnativeで再レンダリングされないようにする方法

分類Dev

スライダーバー付きの光沢のあるアプリでリーフレットマーカーをクリアする

分類Dev

shiny.ioでホストされている光沢のあるアプリからリーフレットマップをダウンロードします

分類Dev

警告:レンダリングメソッドは、小道具と状態の純粋関数である必要があります。レンダリングからネストされたコンポーネントの更新をトリガーすることは許可されていません

分類Dev

Nuxt.jsは、「コンポーネントのマウントに失敗しました:テンプレートまたはレンダリング関数が定義されていません」というエラーのあるコンポーネントを見つけることができませんでした。

分類Dev

光沢のある-リーフレットマップがフルスクリーンビデオで正しく表示されない

分類Dev

Rリーフレットマップが選択したポイントを中心としない光沢のあるアプリ

分類Dev

ファイルがアップロードされた後、光沢のあるアプリでグラフをプロットする方法

分類Dev

パンダデータフレームをフィルタリングするためにfloatをクエリすると、TypeErrorが発生します: '>' 'str'と 'float'のインスタンス間ではサポートされていません

分類Dev

光沢のあるアプリでHTMLプロットをレンダリングする方法

分類Dev

光沢のあるリーフレットマップデータのフィルタリング

分類Dev

アップグレード後、プロジェクトはリソースファイルRを見つけることができませんでしたが、アプリを実行してもエラーは表示されません。の解き方

分類Dev

Yelpでのカテゴリ検索がnodejsで適切にフィルタリングされていません。私は「レストラン」としてカテゴリーを与えましたが、私のo / pは:公園と遊び場です

分類Dev

ローカルホストで実行されている光沢のあるサーバーは、ApacheによってリダイレクトされたときにWebからアクセスできません

Related 関連記事

  1. 1

    光沢のあるリーフレットマップは、入力を切り替えると2回レンダリングされます

  2. 2

    光沢のあるアプリでレンダリングされないURLテンプレートのリーフレットマップタイル

  3. 3

    光沢のあるアプリでのリーフレットマップのキャッシュまたは事前レンダリング

  4. 4

    光沢のあるスタートアップでタブ全体にリーフレットマーカーをレンダリングする

  5. 5

    光沢のあるデバウンスは最初のプロットをレンダリングしません

  6. 6

    ストロークラインが光沢がある/まだリーフレットマップに表示されているのはなぜですか?

  7. 7

    Plot.lyマップが光沢のあるアプリでレンダリングされない

  8. 8

    光沢のあるダッシュボードのテキスト入力に基づいてテーブルをレンダリングできません

  9. 9

    光沢のあるリーフレットポリゴンのカスタム静的カラーリング

  10. 10

    Rの光沢のあるsummary_tableoutはhtmlでレンダリングされません

  11. 11

    光沢のあるリーフレットeasyPrintプラグイン

  12. 12

    光沢のある/ Leafletマップがレンダリングされない

  13. 13

    光沢のあるアプリのレンダリングごとにデータセットの再作成を停止する方法

  14. 14

    光沢のあるアプリは、コードがコンソールに送信されたときに実行されますが、[アプリの実行]ボタンが選択されているときは実行されません

  15. 15

    Jenkinsパイプラインのシェルスクリプトを介してansibleプレイブックを実行すると、エコー出力がバッファリングされ、リアルタイムで表示されません

  16. 16

    フラットリストのヘッダーまたはフッターがReactnativeで再レンダリングされないようにする方法

  17. 17

    スライダーバー付きの光沢のあるアプリでリーフレットマーカーをクリアする

  18. 18

    shiny.ioでホストされている光沢のあるアプリからリーフレットマップをダウンロードします

  19. 19

    警告:レンダリングメソッドは、小道具と状態の純粋関数である必要があります。レンダリングからネストされたコンポーネントの更新をトリガーすることは許可されていません

  20. 20

    Nuxt.jsは、「コンポーネントのマウントに失敗しました:テンプレートまたはレンダリング関数が定義されていません」というエラーのあるコンポーネントを見つけることができませんでした。

  21. 21

    光沢のある-リーフレットマップがフルスクリーンビデオで正しく表示されない

  22. 22

    Rリーフレットマップが選択したポイントを中心としない光沢のあるアプリ

  23. 23

    ファイルがアップロードされた後、光沢のあるアプリでグラフをプロットする方法

  24. 24

    パンダデータフレームをフィルタリングするためにfloatをクエリすると、TypeErrorが発生します: '>' 'str'と 'float'のインスタンス間ではサポートされていません

  25. 25

    光沢のあるアプリでHTMLプロットをレンダリングする方法

  26. 26

    光沢のあるリーフレットマップデータのフィルタリング

  27. 27

    アップグレード後、プロジェクトはリソースファイルRを見つけることができませんでしたが、アプリを実行してもエラーは表示されません。の解き方

  28. 28

    Yelpでのカテゴリ検索がnodejsで適切にフィルタリングされていません。私は「レストラン」としてカテゴリーを与えましたが、私のo / pは:公園と遊び場です

  29. 29

    ローカルホストで実行されている光沢のあるサーバーは、ApacheによってリダイレクトされたときにWebからアクセスできません

ホットタグ

アーカイブ