如前所述,我使用的是闪亮的仪表板。传单地图在放大时不呈现。代码是这样的。它在给定的lat,long上绘制标记。当放大时,它不工作。并且在放大时看起来是静态的,不进行渲染。需要尽快帮助。
server.r
mapPlot <- function(searchTerm, maxTweets, lang, lat, long, rad){
mapTweets <- searchTwitter(searchString = searchTerm, n = maxTweets, lang = "en", geocode = paste(lat,long,paste0(rad, "mi"),sep=","))
mapTweets.df <- twListToDF(mapTweets)
return(mapTweets.df)
}
entity13 <- eventReactive(input$mapit,{
progress <- shiny::Progress$new(session, min=1, max=15)
on.exit(progress$close())
progress$set(message = 'Rendering the leaflet map to visualize')
for (i in 1:15) {
progress$set(value = i)
Sys.sleep(0.5)
}
print("Calling..")
entity13 <- mapPlot(input$k, input$n, lang = "en", input$lat, input$long, input$rad)
entity13
})
output$mymap <- renderLeaflet({
m <- leaflet(entity13()) %>% addTiles() %>%
addMarkers(entity13()$longitude, entity13()$latitude, popup = entity13()$screenName)
m %>% setView(entity13()$longitude, entity13()$latitude, zoom = 4)
m
})
UI.R(只是一段很重要的代码)
column(width = 9,
box(width = NULL, solidHeader = TRUE,
leafletOutput("mymap", height = 500)
))
我认为是lat/long列中的na
导致了这个问题。尝试在绘制之前删除这些代码-请参见output$mymap
中的我的行。请注意,twitter不会自动为其所有tweet包含地理代码,有时它们是空白/na。
下面是一个您可以运行的示例(使用您自己的Twitter
授权密钥等)。
注意,在你的问题中,你应该让它是可复制的,这样某人就可以复制和粘贴你的代码,它就可以运行,而不必对你的意思进行重大的编辑或猜测
library(shiny)
library(shinydashboard)
library(leaflet)
library(twitteR)
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(),
dashboardBody(column(width = 9,
box(width = NULL, solidHeader = TRUE,
leafletOutput("mymap", height = 500)
)))
)
server <- shinyServer(function(input, output) {
# consumerKey <- "...xxx..."
# consumerSecret <- "...xxx..."
# accessToken <- "...xxx..."
# accessSecret <- "...xxx..."
searchTerm <- "twitter"
maxTweets <- 50
lat <- -37.8278185
long <- 144.9666907
rad <- 100
mapPlot <- function(searchTerm, maxTweets, lang, lat, long, rad){
# setup_twitter_oauth(consumer_key = consumerKey, consumer_secret = consumerSecret,
# access_token = accessToken, access_secret = accessSecret)
mapTweets <- searchTwitteR(searchString = searchTerm,
n = maxTweets,
lang = "en",
geocode = paste(lat, long, paste0(rad, "mi"),sep=","))
mapTweets.df <- twListToDF(mapTweets)
return(mapTweets.df)
}
output$mymap <- renderLeaflet({
entity13 <- mapPlot(searchTerm, maxTweets, lang = "en", lat, long, rad)
## Remove NAs
entity13 <- entity13[!is.na(entity13$longitude), ]
leaflet() %>%
addTiles() %>%
addMarkers(data = entity13, lng = entity13$longitude, lat = entity13$latitude, popup = entity13$screenName) %>%
setView(lng = long, lat = lat, zoom = 4)
})
})
shinyApp(ui = ui, server = server)
为了让自己相信这一点,考虑一下:
df <- structure(list(longitude = c("145.21366882", "144.97520704",
NA, NA, "144.929263"), latitude = c("-37.951828", "-37.7963",
NA, NA, "-37.78712")), .Names = c("longitude", "latitude"), row.names = c(1L,
2L, 5L, 6L, 7L), class = "data.frame")
## rows 5 & 6 have NA
df
# longitude latitude
# 1 145.21366882 -37.951828
# 2 144.97520704 -37.7963
# 5 <NA> <NA>
# 6 <NA> <NA>
# 7 144.929263 -37.78712
lat <- -37.8278185
long <- 144.9666907
## plotting all rows - zoom doesn't work and only first two markers shown
leaflet(data = df) %>%
addTiles() %>%
addMarkers(lng = ~longitude, lat = ~latitude) %>%
setView(lng = long, lat = lat, zoom = 4)
## only include non-NA rows - works as desired
leaflet(data = df[c(1,2,5),]) %>%
addTiles() %>%
addMarkers(lng = ~longitude, lat = ~latitude) %>%
setView(lng = long, lat = lat, zoom = 4)
使用在R中的闪亮,我试图创建一个传单地图,允许用户点击任何标记来生成一个相应的图,代表该特定地点的信息(温度)。 我结合了这个问题的代码(点击传单地图中的点作为shiny中一个情节的输入)和这个博客上的第二个技巧(https://www.r-bloggers.com/4-tricks-for-working-with-r-faillet-and-shiny/),但似乎仍然不能成功地在shiny中注
问题内容: 我的下拉列表中有很多复选框,因此此容器具有滚动功能。但是,当我单击任何复选框时,它会自行选择\取消选择,然后更改状态。 因此,问题在于重新渲染后,此容器又回到了顶部。是否可以在渲染后保持容器的滚动而不将其保存到状态? 问题答案: 您可以在提交阶段之前保存滚动位置的“快照”。 getSnapshotBeforeUpdate()显示您正在寻找的种类。 该文档示例将当前滚动位置保存在生命周期
我有一个标题,我想显示一个图像在它的右边,当鼠标在标题上。 > 我正在将变量editMode的状态设置为true/false 然后我使用onMouseOver和onMouse事件有条件地呈现图像。 现在,当我悬停在标题上时,编辑模式设置为true,图像显示出来,当我将光标移出标题时,editMode设置为false,图像消失。 我正在维护一个变量editMode的状态,该状态被设置为true/fa
我们当前的任务要求我们在openGL中使用较旧的固定管道方法。我们使用的是LWJGL 2.9.3。下面的代码显示一个三角形。问题是,它会疯狂地闪烁。显示器。swapBuffers()方法不会引发异常,并且无论是否包含它都没有任何区别。我根据这个问题创建了这个示例: gluPerspective、GluViewport、gluLookAt以及GL_投影和GL_MODELVIEW矩阵 编辑 还有一件事
其思想是用户选择一个输入,并且对应于该输入的标记(将从对应输入的数据集中提取的lat/long)显示在传单地图中(具有放大/缩小功能)。任何帮助/建议将不胜感激! (示例数据文件上载于此):