2012-01-23 5 views
2

Я хотел бы добавить набор способов, которые связаны и дают границу района. Я попытался следующие, но споткнулись до:Использование карты Open Street в 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]))) 

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

ответ

2

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

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

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