Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何防止传单地图在闪亮的应用程序中重置缩放?_R_Leaflet_Shiny - Fatal编程技术网

R 如何防止传单地图在闪亮的应用程序中重置缩放?

R 如何防止传单地图在闪亮的应用程序中重置缩放?,r,leaflet,shiny,R,Leaflet,Shiny,我和其他人已经构建了一个在线应用程序的原型,以帮助交通规划者优先考虑自行车道的新资金: 我们对结果感到满意,并对Shiny无需编写一行JavaScript即可快速为web部署创建概念原型的能力印象深刻。然而,该应用程序有一个主要问题,你可以通过放大然后调整透明度滑块看到:每次你这样做时,缩放都会重置。因此,问题很简单:如何重新写入,使地图不会重置其缩放设置 整个应用程序可以在下面的链接中看到,如果您有正确的软件包(例如rgdal、传单、ggmap),则应可在任何R安装上复制: 有关更多内容,

我和其他人已经构建了一个在线应用程序的原型,以帮助交通规划者优先考虑自行车道的新资金:

我们对结果感到满意,并对Shiny无需编写一行JavaScript即可快速为web部署创建概念原型的能力印象深刻。然而,该应用程序有一个主要问题,你可以通过放大然后调整透明度滑块看到:每次你这样做时,缩放都会重置。因此,问题很简单:如何重新写入,使地图不会重置其缩放设置

整个应用程序可以在下面的链接中看到,如果您有正确的软件包(例如rgdal、传单、ggmap),则应可在任何R安装上复制:


有关更多内容,请参阅。

我有同样的问题,我想我找到了一些有效的方法:

使用
proxy
更改生成地图的方式,如图中所述和所示。首先,尝试如下设置
renderleaft
函数:

output$map = renderLeaflet(leaflet() %>% 
  addTiles(urlTemplate = "http://{s}.tile.thunderforest.com/cycle/{z}/{x}/{y}.png") %>%
  setView(...) # add the parameters as appropriate set the view or use fitBounds  
然后使用
observe
函数和
proxy
绘制如下线条和圆圈:

observe({
  leafletProxy("map") %>%
  clearShapes() %>%
  addPolygons(layerId= "layer1"
            , data = leeds
            , fillOpacity = 0.4
            , opacity = (input$transp_zones)*.4
            , fillColor = leeds$color_pcycle
  ) %>%
  addPolyLines(layerId = "layer2"
             , data = lfast, color = "red"
             , opacity = input$transp_fast
             , popup = sprintf("<dl><dt>Distance </dt><dd>%s km</dd><dt>Journeys by bike</dt><dd>%s%%</dd>", round(flows$fastest_distance_in_m / 1000, 1), round(flows$p_cycle * 100, 2))
  ) %>%
# and so on in a similar fashion for the rest of your shapes

})
观察({
传单代理(“地图”)%%>%
clearShapes()%>%
添加多边形(layerId=“layer1”
,数据=利兹
,fillOpacity=0.4
,不透明度=(输入$transp_zones)*.4
,fillColor=leeds$color\u pcycle
) %>%
添加多段线(layerId=“layer2”
,data=lfast,color=“红色”
,不透明度=输入$transp\u fast
,弹出窗口=sprintf(“距离%s公里骑自行车旅行%s%%”,循环(流动$faster\u Distance\u in\u m/1000,1),循环(流动$p\u cycle*100,2))
) %>%
#以此类推,以类似的方式处理其他形状
})
您需要添加层ID,以确保在更改参数时新形状替换旧形状。这样,您就不需要您拥有的
映射选项(zoomToLimits=“first”)