0
addCirclemarkers
にポップアップを挿入すると、数千ポイントのデータの計算時間が長くなりました。私はマップを表示する前にすべてのポップアップを計算しなければならないと仮定しています。r光沢のあるリーフレット - オンデマンドでポップアップを1つずつ作成
ポイント/サークル/マーカーがクリックされた場合にのみ、ポップアップを追加/作成する方法をオンラインで検索しました。現在、私は以下のコードにあります。このコードを実行すると、ポップアップが作成されますが、データから抽出する文字列は表示されません。私は間違って何をしていますか?
library(shiny)
library(leaflet)
library(htmltools)
library(sp)
data <- data.frame(
"name"=c("Place 1","Place 2","Place 3"),
"lat"=c(50,51,52),
"lng"=c(3,4,5), stringsAsFactors = FALSE)
ui = fluidPage(
fluidRow(column(8, offset = 2, leafletOutput("map", width = "100%", height = "650px")))
)
server = function(input, output, session) {
pts <- reactive({
pts <- data
coordinates(pts) <- ~lng+lat
pts
})
output$map <- renderLeaflet({
leaflet(pts()) %>%
addTiles(group="OSM") %>%
addCircleMarkers()
})
observeEvent(input$map_marker_click, {
leafletProxy("map") %>% clearPopups()
event <- input$map_marker_click
if (is.null(event))
return()
isolate({
pts2 <- pts()
sgh <- pts2[row.names(pts2) == event$id,]
# sgh <- pts2[pts2$name == event$id,]
content <- htmlEscape(paste("This place is",as.character(sgh$name)))
leafletProxy("map") %>% addPopups(event$lng, event$lat, content, layerId = event$id)
})
})
}
shinyApp(ui = ui, server = server, options = list(launch.browser=TRUE))
を( 'event $ id'に元のデータの' name'値が含まれるようになりました) – GGamba
多くのご協力ありがとうございました!より多くのデータを"type" = c( "great"、 "far"、 "popular")のように、データに3番目の列がある場合など、ポップアップを表示するにはどうすればよいですか?再会y素晴らしい "。 –
私は以前のコメントを削除する前にあなたが答えたようです。 ;) –