当前位置: 首页 > 知识库问答 >
问题:

使用闪亮和传单在R中创建带有标记的交互式网络地图

蓟雪峰
2023-03-14

其思想是用户选择一个输入,并且对应于该输入的标记(将从对应输入的数据集中提取的lat/long)显示在传单地图中(具有放大/缩小功能)。任何帮助/建议将不胜感激!

(示例数据文件上载于此):

enter code here
Server.R

library(shiny)
library(rpart.plot)
library(leaflet)

shinyServer(
function(input, output) {

output$dtmplot <- renderPlot({
dtmplot <- rpart.plot(dtm, type=4, extra=101)

})
observe({  

output$map <- renderLeaflet( {  
for(j in 1:nrow(df))
{
if(df[j, "col1"]==input$input1) {
map <- leaflet() %>%
addTiles() %>% 
addMarkers(lng=df[j,"Longitude"], lat=df[j,"Latitude)
}
}
})
})
}
)


enter code here

UI.R
library(shiny)
library(leaflet)
shinyUI(
pageWithSidebar(

headerPanel("Sample project"),

sidebarPanel(
plotOutput("dtmplot"),
selectInput("input1", 
label = "label1:",
choices = c(“choice1”,”choice2”),
              selected = " choice1"),
sliderInput("slider","Please select slider input",                min=1,max=100,value=20,step=10) 


  ),


   mainPanel(
   leafletOutput("map")

   )

   ))

共有1个答案

夏元明
2023-03-14

在传单地图中处理自定义点的基本代码如下所示。该代码利用了GitHub小册子上的官方示例,并为最终用户提供了在地图上显示自定义位置的功能。

library(shiny)
library(leaflet)

r_colors <- rgb(t(col2rgb(colors()) / 255))
names(r_colors) <- colors()

ui <- fluidPage(
    leafletOutput("mymap"),
    p(),
    h1("Added example to add more points here:"),
    p(),
    numericInput("long", label = h3("Longitude:"), value = 11.242828),
    numericInput("lat", label = h3("Latitude:"), value = 30.51470),
    actionButton("recalc", "Show point")

)

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

    points <- eventReactive(input$recalc, {
        cbind(input$long, input$lat)
    }, ignoreNULL = FALSE)

    output$mymap <- renderLeaflet({
        leaflet() %>%
            setView(lat = 30, lng = 11, zoom = 4) %>%
            addProviderTiles("Stamen.TonerLite",
                             options = providerTileOptions(noWrap = TRUE)
            ) %>%
            addMarkers(data = points())
    })
}

shinyApp(ui, server)

得到的地图如下所示:

其机制相当简单,可概括为以下步骤:

    null
    null
 类似资料:
  • (初学者) 嗨,很抱歉问这个问题,但是我总是有错误从哪里冒出来,我希望这个程序很简单。 理想情况下,我会在填充颜色时使用2D数组JFrame,但显然它们必须是final或实际上是final。

  • 使用在R中的闪亮,我试图创建一个传单地图,允许用户点击任何标记来生成一个相应的图,代表该特定地点的信息(温度)。 我结合了这个问题的代码(点击传单地图中的点作为shiny中一个情节的输入)和这个博客上的第二个技巧(https://www.r-bloggers.com/4-tricks-for-working-with-r-faillet-and-shiny/),但似乎仍然不能成功地在shiny中注

  • 问题内容: 我有一个可怕的Java应用程序(鲜为人知的应用程序服务器GNUEnterprise的客户端)及其源代码,在对其进行了一些更改之后,我可以将其编译回去。该应用程序占用大量网络资源,我需要监视每个请求和响应。我可以使用像Wireshark这样的嗅探器,但是该应用程序可以通过SSL与它的服务器一起工作,因此不知道SSL证书的私钥是否会导致嗅探到的流量毫无用处。 我该怎么做才能使每个请求和响应

  • 我在R中使用igraph库创建了一个无向鄂尔多斯-仁义网络,它有100个节点,p=0.2: 我还创建了两个空网络: 我根据生成的随机数(0-1之间),从原始网络向net1和net2添加边。如果该随机数在0-0.1之间,则边进入net1,如果在0.1-0.9之间,则边进入net2,如果在0.9-1之间,则边同时进入net1和net2。 下面是我的代码,可以查看原始网络中的所有边缘,并将它们添加到ne

  • 我正在研究为我们的客户报告工具创建PDF报告的不同方法。我找到了这个链接,他们可以在PDF文档上执行操作和表单。有可能以编程方式生成这些PDF吗?比如有没有API可以创建这样的PDF? 我使用过apache POI和iText,但它没有这些功能。有没有人遇到过任何开源或商业工具用于此目的? 我的主要目标用户将是iPad用户。因此在objective c中使用此API也会有所帮助。

  • web3-net包用来支持和以太坊节点旳网络属性的交互。 使用方法: var Net = require('web3-net'); // 当使用以太坊兼容浏览器时,"Personal.providers.givenProvider" 将自动设置 var net = new Net(Net.givenProvider || 'ws://some.local-or-remote.node:8546'