R在Shiny中使用带有Proxy的地理编码添加标记和路线
我想使用新的传单代理功能添加标记或圆标记到传单地图,以及一条路线,路线上的点数取决于滑块。。。理想情况下,我也希望路线的颜色改变,如果点击 通过使用ggmap中的地理编码功能获得的纬度和经度添加标记 以下是我迄今为止的尝试…但似乎不起作用…任何建议都将不胜感激R在Shiny中使用带有Proxy的地理编码添加标记和路线,r,shiny,leaflet,R,Shiny,Leaflet,我想使用新的传单代理功能添加标记或圆标记到传单地图,以及一条路线,路线上的点数取决于滑块。。。理想情况下,我也希望路线的颜色改变,如果点击 通过使用ggmap中的地理编码功能获得的纬度和经度添加标记 以下是我迄今为止的尝试…但似乎不起作用…任何建议都将不胜感激 # ui.R library(shiny) library(shinydashboard) header <- dashboardHeader( title = 'Simple dashbaord' ) body <-
# ui.R
library(shiny)
library(shinydashboard)
header <- dashboardHeader(
title = 'Simple dashbaord'
)
body <- dashboardBody(
fluidRow(
column(width=12,
leafletOutput('outputmap',height = 550)
)
)
)
sidebar <- dashboardSidebar(
sidebarSearchForm(textId = "origin.val",
buttonId = "button_click_count",
label = "Add marker"),
sliderInput('num','Number of points:',min=1,max=3000,value=30)
)
dashboardPage(
header,
sidebar,
body
)
及
工作代码
require(shiny)
require(leaflet)
library(ggmap)
shinyServer(function(input,output,session){
# Run Geocode only when button is clicked
geocode_origin <- eventReactive(input$button_click_count,{
geocode(input$origin.val)
})
# generate base leaflet map
output$outputmap <- renderLeaflet({
map <- leaflet() %>% addTiles()
map
})
observeEvent(input$button_click_count,{
v <- geocode(input$origin.val)
leafletProxy('outputmap',session) %>% addCircleMarkers(lng=v$lon,lat=v$lat)
})
observeEvent(input$num, {
num.points <- input$num
v <- geocode(input$origin.val)
lon.path <- c(v$lon,v$lon + cumsum(rnorm(num.points)))
lat.path <- c(v$lat,v$lat + cumsum(rnorm(num.points)))
leafletProxy('outputmap',session) %>% addPolylines(lng=lon.path,lat=lat.path)
})
})
您需要在server.R中添加会话参数。例如shinyServerfunctioninput,output,session+Proxy'outputmap',session多段线应该表示什么?我有圆标记,但多段线逻辑不太正确。@on_the_shores_of_linux_sea:proxy实际上可以推断会话,所以它是可选的。@JoeCheng。。这里的代码有点错误,我猜observeEventinput$num,{num.points@JoeCheng多段线应该是随机路径…这是一个模拟的例子…我打算使用跟踪的GPS位置在我的最终输出中给出一条路线…但目标是从给定的纬度获得一条来自地理代码的路线…@JoeCheng,你能建议一种清除多段线并重新绘制新线的方法吗?@JoeCheng,尽管不能最初要求,清除多段线和重新绘制的方法将是好的…要么在绘制前清除形状,要么使用layerId参数。请参阅此处的新文档页面:@JoeCheng非常感谢..顺便说一句,更新的站点很酷..上一天我尝试了清除形状,有时在添加多段线后执行..这是一个已知问题吗?@on the_shores_当然谢谢!上周刚刚修复了无序执行错误。
require(shiny)
require(leaflet)
library(ggmap)
shinyServer(function(input,output,session){
# Run Geocode only when button is clicked
geocode_origin <- eventReactive(input$button_click_count,{
geocode(input$origin.val)
})
# generate base leaflet map
output$outputmap <- renderLeaflet({
map <- leaflet() %>% addTiles()
map
})
observeEvent(input$button_click_count,{
v <- geocode(input$origin.val)
leafletProxy('outputmap',session) %>% addCircleMarkers(lng=v$lon,lat=v$lat)
})
observeEvent(input$num, {
num.points <- input$num
v <- geocode(input$origin.val)
lon.path <- c(v$lon,v$lon + cumsum(rnorm(num.points)))
lat.path <- c(v$lat,v$lat + cumsum(rnorm(num.points)))
leafletProxy('outputmap',session) %>% addPolylines(lng=lon.path,lat=lat.path)
})
})