当用户按下按钮放大该点时,如何在传单地图带有 Shiny上选择一个点时控制缩放速度?

问题描述

我正在 RmarkdownFlexdashboardShiny 中开发仪表板。目前我正在使用 Leaflet 来映射几个点,并且我有一个闪亮的输入,当按下按钮时,它会选择某个点并对其进行缩放。

我想知道有没有办法控制变焦速度。

图片示例:

地图的初始状态,点为蓝色。

map1

用户选择点和按钮执行过滤和缩放的面板。

inputs1

在这图片中,我显示了对所选点的缩放,速度非常快。

map2

我留下了一些示例代码,我会继续关注您的评论。谢谢。

{r chunk,echo = false}

leafletoutput(outputId = "mapa1")

# DATA FILTERED BY USER INPUT (1 point)
rbdFiltered <- reactive({
  misDatos()[misDatos()$rdb == input$rbd,]
})

# LEAFLET OBJECT WITH ALL POINTS
myMap <- reactive({
  input$params
  leaflet() %>% 
    addTiles() %>% 
    addCircleMarkers(data = misDatos(),lng = ~ longitud,lat = ~ latitud,radius = 3,group = "myMarkers") %>% 
    setView(lng = -70.560946,lat = -33.592340,zoom = 13) # ZOOM SET HERE
})


# OBSERVE EVENT (Select a point)

observeEvent(input$BT_select_rbd,{
  leafletProxy(mapId = "mapa1") %>% clearGroup(group = "myMarkers") %>% 
    addCircleMarkers(data = rbdFiltered(),group = "myMarkers") %>% 
# HERE A ZOOM TO THE SELECTED POINT IS PROCESSED,IS IT POSSIBLE TO CONTROL THE SPEED?
    setView(lng = rbdFiltered()$longitud,lat = rbdFiltered()$latitud,zoom = 17) 
})

# OBSERVE EVENT (Show all points)

observeEvent(input$BT_todo_rbd,{
  leafletProxy(mapId = "mapa1") %>% clearGroup(group = "myMarkers") %>% 
    addCircleMarkers(data = misDatos(),zoom = 13) # WE RETURN TO ORIGINAL ZOOM 

})

output$mapa1 <- renderLeaflet({myMap()})

问候 编辑:图片

解决方法

不要在 Shiny 事件中使用 setView(),而是尝试使用 leaflet::flyTo()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...