我正在构建闪亮的应用程序,使用传单绘制带有标记和多边形的地图。
此时我有一张地图,有时会有一些标记和一个多边形
这是我的代码的一部分,我可以在传单地图中渲染多边形,但只有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
如果有人能指导我解决这个问题我很感激
答案 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”来进一步将数据展平为非嵌套数据框。