R/Shiny+leafletのクリック座標で地図上にポリゴンを描画
「Draw Polygon」ボタンをクリックすると地図上にポリゴンを描画。reactiveValues
の初期化は各リストにNULLを放り込めば良い。
library(shiny)
library(leaflet)
ui <- fluidPage(
leafletOutput(outputId="map", height="800"),
actionButton(inputId="polygon", label="Draw Polygon"),
tableOutput(outputId="rv")
)
server <- function(input, output, session){
output$map <- renderLeaflet(expr={
leaflet() %>%
addTiles() %>%
setView(lng=135, lat=35, zoom=9)
})
rv <- reactiveValues(lat=NULL, lng=NULL)
observeEvent(
eventExpr=input$map_click,
handlerExpr={
rv$lat <- append(rv$lat, input$map_click$lat)
rv$lng <- append(rv$lng, input$map_click$lng)
X <- data.frame(lat=rv$lat, lng=rv$lng)
leafletProxy(mapId="map", session=session, data=X) %>%
addPolylines(lng=X$lng, lat=X$lat)
}
)
output$rv <- renderTable(expr={
data.frame(rv$lat, rv$lng)
})
observeEvent(eventExpr=input$polygon, handlerExpr={
X <- data.frame(lat=rv$lat, lng=rv$lng)
leafletProxy(mapId="map", session=session, data=X) %>%
clearShapes() %>%
addPolygons(lng=X$lng, lat=X$lat)
rv$lat <- NULL
rv$lng <- NULL
})
}
shinyApp(ui, server)
Author And Source
この問題について(R/Shiny+leafletのクリック座標で地図上にポリゴンを描画), 我々は、より多くの情報をここで見つけました https://qiita.com/yono2844/items/d45588893d5860aec18d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .