我怎样才能有效地将 osmar 对象分成几个部分并将它们重新组合回来?
library(osmar)
src <- osmsource_api(url = "https://api.openstreetmap.org/api/0.6/")
bbox <- center_bbox(11.575278, 48.137222, 1000, 1000)
object <- get_osm(bbox, src)
根据班级,这是一个“osmar”“列表”。
class(object)
[1] "osmar" "list"
所以我试图用以下方法来划分它:
divide_a_vector_into_chunks <- function(x,n) split(x, cut(seq_along(x), n, labels = FALSE))
div_osmar<-divide_a_vector_into_chunks(object,2)
它创建一个列表:
$`1`
$`1`$nodes
osmar$nodes object
1690 nodes, 1210 tags
lat lon
min 48.13385 11.5675
max 48.14264 11.5800
$`1`$ways
osmar$ways object
239 ways, 1306 tags, 2144 refs
$`2`
$`2`$relations
osmar$relations object
136 relations, 1327 tags, 958 node_refs, 8034 way_refs
但是我不能像处理 osmar 对象那样处理这个列表。此外,osmar 包支持将 osmar 对象与
o1 <- subset(object, node_ids = find(object, node(tags(v == "Marienplatz"))))
o2 <- subset(object, ids = find_down(object, way(c(96619179, 105071000))))
o1
o2
c(o1, o2)
所以应该可以分割一个 osmar 对象并再次组合它。