Использование 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])))
очевидно, отсутствует ограничивающий прямоугольник, но я не знаю, как назначить его объекту такого типа. Если я решу эту проблему, я бы хотел сделать один многоугольник из линий / путей.
1 ответ
Решение
Автор пакета любезно предоставил информацию, в которой отсутствовала текущая документация: аргумент get_osm(.., all = T) просто отсутствовал... при all = T извлекаются все связанные элементы.
чтобы получить желаемую границу района, применяется следующий код:
District_Boundary <- get_osm(relation(85647), all = T)