【发布时间】:2018-07-19 23:07:35
【问题描述】:
我正在开发一个闪亮的应用程序,其中用户单击地图(传单地图)并基于该单击执行某些操作,例如在单击的点周围画一个半径为一公里的圆。此功能工作正常。但是我想通过使用mapview 包中的addMouseCoordinates() 函数来添加鼠标坐标。我过去用过这个没有问题。但是使用以下代码,我无法看到坐标。
leafletProxy('incidentmap') %>%
addCircles(lng=clng, lat=clat, group='circles',
weight=1, radius=input$radius, color='black', fillColor='green',
fillOpacity=0.2, opacity=1)%>%
addCircles(lng=filtered$Long,lat=filtered$Lat)%>%
addMouseCoordinates(style = "basic")
现在如果我点击地图,应用程序会崩溃并出现以下错误:
> Warning: Error in : inherits(map, "leaflet") is not TRUE Stack trace
> (innermost first):
> 75: stopifnot
> 74: addMouseCoordinates
> 73: function_list[[k]]
> 72: withVisible
> 71: freduce
> 70: _fseq
> 69: eval
> 68: eval
> 67: withVisible
> 66: %>%
> 65: observeEventHandler [/Users/dhirajkhanna/Desktop/CallAnalysis/CDR/server.R#39]
> 1: runApp ERROR: [on_request_read] connection reset by peer
它和leafletProxy() 有关系吗?
帮助将不胜感激。
这是一个可重现的例子:
library(shiny)
library(mapview)
library(leaflet)
ui <- fluidPage(
leafletOutput("incidentmap")
)
server <- function(input,output,session){
output$incidentmap <- renderLeaflet({
leaflet() %>%
setView(lng = 77.9568288, lat = 27.1696145, zoom=11) %>%
addTiles(options = providerTileOptions(noWrap = TRUE))
})
## Observe mouse clicks and add circles
observeEvent(input$incidentmap_click, {
click <- input$incidentmap_click
clat <- click$lat
clng <- click$lng
leafletProxy('incidentmap') %>%
addCircles(lng=clng, lat=clat, group='circles',
weight=1, radius=1000, color='black', fillColor='green',
fillOpacity=0.2, opacity=1)%>%
addMouseCoordinates(style = "basic")
})
}
shinyApp(ui,server)
【问题讨论】:
-
请考虑在您的问题中添加一个可重现的示例,这样更容易提供帮助。有关如何做到这一点的一些提示,请参阅here。
-
感谢@Florian 指出这一点。现在已经包含了一个可重现的示例。