Pobieranie wybranych danych z OSM

Witam, jestem nowym mapowiczem i zastanawiam się czy jest możliwe pobranie wybranych danych z serwera osm. Interesuje mnie pobranie np. sieci linii kolejowych z całej polski. Problemem jest tutaj również brak możliwości wczytania większego obszaru do np. JOSM. Próbowałem robić to po kawałkach w JOSM jednak stwierdziłem że jest to strasznie mozolna praca i musi istnieć inny sposób.
Ponad to problemem było zapisanie danych do XML, gdzie po zastosowaniu odpowiednich filtrów na danym obszarze i usunięcie wszystkich danych z wyjątkiem torów kolejowych do pliku zapisywały się również informacje o usuniętych danych.
Czy istnieje jakiś dużo prostszy sposób na wyciągnięcie tych danych??

Istnieje XAPI, w tym wypadku potrzebujesz zapytac XAPI o wszystko co ma [railway=*], dostaniesz wtedy wszystkie stacje, tory kolejowe i wezly ktore do nich naleza, ale nie dostaniesz relacji linii kolejowych ([route=railway]).

Informacje o XAPI pod http://wiki.openstreetmap.org/wiki/XAPI (uwaga nie wszystkie serwery dzialaja)

Inny sposob to pobrac poland.osm z geofabrik.de i przefiltrowac za pomoca osmosis.

Przy edytowaniu pamietaj, ze elementy ktore widac w edytorze moga nalezec rowniez do drog i relacji, ktorych nie masz pobranych.

Dzięki wielkie. Bawię się XAPI i jak na razie mam wszystko czego potrzebuje :smiley:

Podepnę się. Jak łatwo uzyskać granice województw w jakimś formacie GPS, idealnie jako .igc? O Osmosis wiem tyle, że jest obsługiwane wierszem, co dla mnie jest zaprzeczeniem słowa ,łatwy".

Sam odpowiem, może komuś przyda się. Za pomocą mechanizmu xapi wpisując zapytanie w przeglądarce np:
http://www.informationfreeway.org/api/0.6/relation[name=województwo mazowieckie]
uzyskamy granice województwa, ale także kilku powiatów, gdyż one są jakimś cudem częścią relacji.
albo
http://www.informationfreeway.org/api/0.6/way[admin_level=4][bbox=19.2,51,23.2,53.5]
dla granic wojewódzkich z mazowieckim po środku
Tymi sposobami otrzymamy plik tekstowy .osm zawierający punkty granicy. Nie są one jednak ułożone w kolejności występowania na mapie, ale w jakiejś kolejności dróg tworzących granicę - jak się skończą punkty z jednej drogi to następny punkt bywa z odległego miejsca, co jest chyba przyczyną, że zmierzona w ten sposób granica mazowieckiego ma tysiące kilometrów.
GPSbabel odczytuje dane z .osm i można je przekonwertować.

Jest taki sposob, moze lekko zawily, zeby zmierzyc dlugosc: otworzyc ten plik w JOSMie, wywalic to czego nie chce sie mierzyc, kliknac w prawym przyciskiem w warstwe i wybrac “Convert to GPX layer”. Po najechaniu myszka na ten layer pojawi sie dlugosc wszystkich drog (pojedyncze i suma).

Generalnie nie ma czegos takiego jak kolejnosc na mapie :wink: co najwyzej jedna granice moznaby uporzadkowac zgodnie z ruchem wskazowek zegara albo odwrotnie.

Zmierzenie długości to tyko skutek uboczny uzyskania konturu granic. Zdaję sobie sprawę, że trudno by było określić kolejność na mapie, chociażby dlatego, że drogi rozwidlają się. Rozwiązaniem byłoby, żeby przy ściągnięciu relacji lub określonego tagu, każda z dróg była zapisana do osobnego pliku. To pewnie wymagałoby napisania programu lub skryptu, a programować nie umiem, więc pozostaje mi PrintScreen i obróbka w programie graficznym.

DOPISEK
Ściągnięcie każdej drogi do osobnego pliku oznaczałoby potrzebę konwersji co najmniej kilkudziesięciu plików. To już wycinanie pajęczyny połączeń z konturu granic w programie graficznym chyba byłoby łatwiejsze.

DOPISEK II
Pojedyncze relacje najłatwiej ściągnąć z OSM Relation Analyzera
http://ra.osmsurround.org/

Odświeżę temat bo mi podane przykłady nie działają. Podane wyżej strony są jeszcze aktualne? No chyba że są już prostsze sposoby na wyciągnięcie konkretnych danych.

http://overpass-turbo.eu/ W “Load” masz trochę przykładów, a dokładny opis języka zapytań znajdziesz pod hasłem overpass.

Wielkie dzięki za pomoc, działa jak chciałem.