Использование Open Street Map в R с get_osm {osmar} - PullRequest
3 голосов
/ 24 января 2012

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

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 Ответ

4 голосов
/ 26 января 2012

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

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

District_Boundary <- get_osm(relation(85647), all = T)
...