0
スライダーバーの範囲内の値を持つ行にポイントをプロットするだけの光沢のあるアプリを作成しようとしています。スライダバーの範囲を広げるとポイントが追加されますが、スライダバーの範囲を小さくするとポイントは削除されません。以下は私の問題の再現可能な例です。スライダバーをフルレンジにすると、マップ上に3点が表示されます。範囲を十分に小さくすると1点が拡大されますが、ズームアウトすると3点がマップ上に表示されます。チラシのclearShapes関数やclearMarkers関数がこれらの点を削除すると思ったが、機能していない。助言がありますか?スライダーバー付きの光沢のあるアプリでリーフレットマーカーをクリアする
library(shiny)
library(leaflet)
library(tidyverse)
ui <- fluidPage(
titlePanel("Test"),
sidebarLayout(
sidebarPanel(
radioButtons("choice","Group:",choices = c(1,2), selected = 1),
uiOutput("value"),
verbatimTextOutput("Click_text")
),
mainPanel(
leafletOutput("Map")
)
)
)
server <- function(input, output) {
df <- data.frame(lat = c(42.34,43.65,45.26,48.63,47.65,47.52),
lng = c(-96.43,-97.45,-98.56,-92.35,-94.56,-95.62),
id = c(32,45,65,76,34,12),
grp = c(1,1,1,2,2,2),
val = c(1.75,2.12,3.2,3.32,4.76,4.85))
subsetData1 <- reactive({
df %>% filter(grp == input$choice)
})
output$value <- renderUI({
sliderInput("value",label = h3("value"),
min = min(subsetData1()$val,na.rm = TRUE),
max = max(subsetData1()$val,na.rm=TRUE),
value = c(quantile(subsetData1()$val,.25,na.rm = TRUE),quantile(subsetData1()$val,.75,na.rm=TRUE)))
})
subsetData <- reactive({
df2 <- subsetData1() %>% data.frame()
df2 %>% filter(val >= min(as.numeric(input$value)) & val <= max(as.numeric(input$value)))
})
output$Map <- renderLeaflet({
leaflet(height = 1000) %>%
addTiles() %>%
fitBounds(min(df$lng),min(df$lat),max(df$lng),max(df$lat))
})
observe({
leafletProxy("Map") %>%
clearMarkers() %>%
clearShapes() %>%
addCircleMarkers(data = subsetData(),
lng = ~lng,
lat = ~lat,
layerId = ~id,
radius = 8,
weight = 10) %>%
fitBounds(.,min(subsetData()$lng),min(subsetData()$lat),
max(subsetData()$lng),max(subsetData()$lat))
})
observe({
click<-input$Map_marker_click
if(is.null(click))
return()
text<-paste("Latitude ", click$lat, "Longtitude ", click$lng)
text2<-paste("You've selected point ", click$id)
output$Click_text<-renderText({
text2
})
})
}
# Run the application
shinyApp(ui = ui, server = server)
同じスライダを構築していたので、IDが同じであるかどうかはわかりませんでした。それを明確にしてくれてありがとう。あなたのソリューションは機能します。助けてくれてありがとう! – SoloAus
@SoloAus、この回答があなたの問題の解決に役立つ場合は、投票矢印の下にあるチェックマークを使用して[受け入れられるとマークする](https://stackoverflow.com/help/someone-answers)を検討してください。ありがとうございました! – krish
は、すべてのマーカーをクリアしなくてもこれを行う方法はありますか? – nate