如何在R中的传单地图中的标记上接收鼠标单击事件?我正在使用RStudio /传单并通过Shiny运行.
我想获取标记的值(例如,ID)并使用它来更新sidebarPanel.
(长时间用户,第一次海报)
我正在使用一个使用Leaflet包的Shiny App.没有导航菜单,我可以通过使用使LeafletOutput具有100%的高度leafletOutput('map', height='100%').
问题是,当我将此代码放在navbarPage中时,它不再有效,我的地图停止显示(下面的控制台错误).我尝试通过添加注入CSS代码,tags$style(type = "text/css", "#map {height: 100%};")但似乎没有任何影响.如果我将其更改为tags$style(type = "text/css", #map {height: 100% !important};"),代码会再次中断,我在控制台中得到相同的错误代码:
Uncaught TypeError: Cannot read property 'clearLayers' of undefined
Uncaught TypeError: Cannot read property 'addLayer' of undefined
Uncaught TypeError: Cannot read property 'clear' of undefined
Uncaught TypeError: Cannot read property 'add' of undefined
Run Code Online (Sandbox Code Playgroud)
这些错误分别在第814,726,979和1095行的leaflet.js上抛出.这些行的代码如下:
第814行:this.layerManager.clearLayers("shape");
第726行:this.layerManager.addLayer(layer, category, thisId, thisGroup);
第979 this.controls.clear();
行:第1095行:this.controls.add(legend, options.layerId);
以下是我的UI.R文件中的相关代码:
navbarPage("DHIS Data Explorer",
tabPanel("Plot",
tags$style(type = "text/css", "html, body, #map {width:100%;height:100%}"),
leafletOutput('map', …Run Code Online (Sandbox Code Playgroud) 是否可以从tile图中的clicklet/shiny(在R中)中单击事件获取lat long?(即不是来自任何加载的标记,多边形等).只是为了显示我猜的位置(纬度/经度)信息.
我想也许从这个问题可能但没有运气.
ui <- bootstrapPage(
tags$style(type = "text/css", "html, body {width:100%;height:100%}"),
leafletOutput("map", width = "100%", height = "100%")
)
server <- function(input, output,session) {
output$map <- renderLeaflet({
leaflet() %>%
addProviderTiles("CartoDB.Positron")%>%
setView(lng = -4, lat= 52.54, zoom = 7)
})
#Show popup on click
observeEvent(input$map_marker_click, {
click <- input$map_marker_click
text<-paste("Lattitude ", click$lat, "Longtitude ", click$lng)
proxy <- leafletProxy("map")
proxy %>% clearPopups() %>%
addPopups(click$lng, click$lat, text)
})
}
runApp(shinyApp(ui, server), launch.browser = TRUE)
Run Code Online (Sandbox Code Playgroud)
最终我想在Leaflet&Shiny中为栅格数据创建一个点击标记(使用返回的纬度/长度),但这将是一个良好的开端(他的qu似乎做了一些事情,但我根本无法再创建它).
我正在使用R的传单,当我点击光栅图像时,我只想在某个URL上重定向.我目前的代码如下:
library(htmlwidgets)
library(raster)
library(leaflet)
library(sp)
imgPath = paste(projectPath,"/test.tif", sep = "")
outPath = paste(projectPath, "/leaflethtmlgen.html", sep="")
r <- raster(imgPath)
pal <- colorNumeric(c("#FF0000", "#666666", "#FFFFFF"), values(r),
na.color = "transparent")
m <- leaflet()
m <- addTiles(m)
m <- addRasterImage(m,r, colors=pal, opacity = 0.9, maxBytes = 123123123, group = "Raster1")
m <- addLegend(m,pal = pal, values = values(r), title = "Test")
m <- addLayersControl(
m,
overlayGroups = c("Raster1"),
options = layersControlOptions(collapsed = FALSE)
)
m
Run Code Online (Sandbox Code Playgroud)
结果如下:
