【问题标题】:How to make a function for pipe processing of renderLeaflet如何制作renderLeaflet的管道处理函数
【发布时间】:2020-12-25 08:46:30
【问题描述】:

我有一个关于在闪亮+传单中处理渲染传单的问题。 由于管道处理(%>%)变长了,我们想通过函数使代码紧凑。

一个是带有更重传单的文件。另一个是渲染 Leaflet 中使用的 addAwesomeMarkers。

文件名:ms_method.R

library(shiny)
library(leaflet)

basepath <- "C:/Users/XXXXX/"
source(paste0(basepath,"ms_method_ex.R"),encoding="utf-8")

ui <- fluidPage(
  
  leafletOutput('maps')
)

server <- function(input, output, session) {

   output$maps <- renderLeaflet({
    
    leaflet()%>%
      addTiles()%>%
      setView(lng=139.8,lat=35.7,zoom=12)%>%
      # addAwesomeMarkers(
      #     lng = c(139.8),
      #     lat = c(35.7),
      #     )
      f1()
    }) 
}
shinyApp(ui, server)

f1 函数是在外部文件中定义的函数。由源语句读取。

接下来是另一个文件中定义的函数。

文件名:ms_method_ex.R

f1 <- function(){
  addAwesomeMarkers(
    lng = c(139.8),
    lat = c(35.7),
  )}
  

这将导致错误。 我应该做什么样的处理? 如果有人知道,请告诉我。另外,如果您能告诉我一个有用的网页,我将不胜感激。

【问题讨论】:

    标签: r shiny leaflet gis


    【解决方案1】:

    addAwesomeMarkers 的第一个参数是map。见?addAwesomeMarkers

    为了使您的函数正常工作,无论是在我们的管道外部,它都需要一个map 参数,即做:

    f1 <- function(map) {
      addAwesomeMarkers(map,
        lng = c(139.8),
        lat = c(35.7),
      )}
    

    【讨论】:

      猜你喜欢
      • 2019-07-15
      • 2011-06-14
      • 2011-07-19
      • 2018-07-07
      • 2019-07-18
      • 2017-12-02
      • 2021-10-29
      • 2013-08-20
      • 2010-09-06
      相关资源
      最近更新 更多