闪亮的应用程序崩溃,小册子Shiny RStudio问题

时间:2017-06-04 00:12:22

标签: r mongodb shiny leaflet rstudio

我正在构建闪亮的应用程序,使用传单绘制带有标记和多边形的地图。

此时我有一张地图,有时会有一些标记和一个多边形

这是我的代码的一部分,我可以在传单地图中渲染多边形,但只有com <- mongo$find('{"id" : "Temuco"}')有一个名称(特木科或圣地亚哥),如果我把'{"id" : {"$in":["Temuco", "Santiago"]}}'所有崩溃出现此错误: &#39;选项&#39;必须是完全命名的列表,或者没有名称(NULL)

    com <- mongo_comunas$find('{"nombre": {"$in":["Temuco", "Santiago", "etcetcetc"]}}')
    build_list <- split(com, com$id)
    build_list <- lapply(build_list, function(x){x["id"]<- NULL;x})
    build_list <- lapply(build_list, function(x){x["order"]<- NULL;x})
    build_list <- lapply(build_list, function(x){x["hole"]<- NULL;x})
    build_list <- lapply(build_list, function(x){x["piece"]<- NULL;x})
    build_list <- lapply(build_list, function(x){x["group"]<- NULL;x})
    ps <- lapply(build_list, Polygon)
    ps <- Polygons(ps, ID = 1)
    ps <- SpatialPolygons(list(ps), proj4string =CRS("+proj=longlat"))


  output$mymap <- renderLeaflet({
    leaflet(data = ps) %>% addTiles() %>% addPolygons())       

  })

只有com <- mongo$find('{"id" : "Temuco"}')(或其他ID)才有好处。我使用了ggplot和那个函数,并且在时间上渲染了两个或三个或更多的多边形,但是传单全部崩溃了。

存储在mongo中的数据如:

        long      lat    order  hole piece   id      group
    1 -72.8012 -38.8337 914361 FALSE   1     Temuco Temuco.1
    .
    .
    .
  200 -72.5503 -38.7324 919738 FALSE   1     Santiago Santiago.1

如果有人能指导我解决这个问题我很感激

1 个答案:

答案 0 :(得分:0)

第一

您使用的是

吗?
  

蒙戈$找到(...)

  

mongo_comunas $找到(...)

因为mongo命令不能用于查询数据库。它用于建立与你的mongodb的连接。

你需要的是:

mongoConnection <- mongo(collection = "test", db = "test", url = "mongodb://localhost",
  verbose = FALSE, options = ssl_options())

请参阅?mongo寻求帮助。

然后,您可以为查询,聚合等查询调用此连接

com <- mongoConnection$find(...)

我猜这个连接是你为mongo_comunas分配的,但没有看到你的代码,我不确定。

第二

您提取的数据是否包含任何数组?如果是这样,您将需要使用$ unwind命令来取消嵌套这些数组。

您可能还需要使用jsonlite包中的“flatten”来进一步将数据展平为非嵌套数据框。