Использование Open Street Map в R с get_osm {osmar}

Я хотел бы добавить набор путей, которые связаны между собой и определяют границу района. Я пробовал следующее, но застрял:

require(osmar)
require(XML)

# a set of open street map ways (lines) related as given by a relation..
# (if connected these ways represent the boundary of a political 
#  district in Tyrol/Austria)
myxml <- xmlParse("http://api.openstreetmap.org/api/0.6/relation/85647")

# extracting way ids at the according xml-nodes:
els <- getNodeSet(myxml, "//member[@ref]")
ways <- as.numeric(sapply(els, function(el) xmlGetAttr(el, "ref")))

# now I try to get one of those ways as an osmar-obj and plot it,
# which throws an error:
plot_ways(get_osm(way(ways[1])))

очевидно, отсутствует ограничительная рамка, но я не знаю, как назначить ее объекту такого рода. Если я решу эту проблему, я бы хотел сделать один многоугольник из линий/путей.


person Kay    schedule 23.01.2012    source источник


Ответы (1)


автор пакета был так любезен, что дал информацию, которой не хватало в текущей документации: аргумент get_osm(.., all = T) просто отсутствовал... с all = T извлекаются все связанные элементы.

чтобы получить желаемую границу района, применяется следующий код:

District_Boundary <- get_osm(relation(85647), all = T)
person Kay    schedule 26.01.2012