Rail Map a OSM

Witam

Przez Tomka zostałem wywołany do tematu naszej bazy/mapy kolejowej (http://www.kolej.one.pl) i wsparcia swoimi danymi OSM.

Podstawową róznicą jest to, że nasza mapa posiada 4 wymiar - czas. Jeżeli część naszych danych ze śladami linii miałaby migrowac do OSM to nasuwa mi się parę pytań:
a) nasza mapa (kolej.one.pl) często zawiera linie kolejowe po których nie zostały ślady w terenie (może jakiś mostek). Szczególnie to dotyczy kolejek folwarcznych czy wąskotorowych.

Przykładem tutaj była by linia Poznan Wschod - Poznan Kobylepole po której pozostały tylko “ogryzki” w postaci bocznic a część terenu gdzie przebiegała linia to jezioro Malta w Poznaniu.

Nie wydaje mi się aby można było przeprowadzć linię przez środek jeziora, kilku ulic, zabudowań i zaznaczyć linię rozebraną. Powstałby mały bałagan. Co o tym myślicie?

b) przystanki “wędrowniczki”
Zdarza się tak, że czasami przystanek jest przeniesiony w inne miejsce. Takie fakty też odnotowujemy. Czasami po starych miejsach pozostają ślady - czasami nie. My jednak często dostajemy stare zdjęcia dokumentujace te miejsca.

Czy jest na to miejse w OSM?

c) posterunki ruchu inne niż stacja, przystanek
Na kolei funkcjonuja miejsca które są istotne dla ruchu pociągów ale nie służą pasażerom czy wyładunkowi towarów. Przykłady to posterunek odgałęźny, posterunek blokowy, bocznica szlakowa, mijanka. Czy można takie rzeczy umieszczać i jak?

d) posterunki (w tym stacjie przystanki) zlikwidowane
Czy można umieszczać w OSM posterunki które zostały zliwkiwdowane a linia istnieje? I jak to można zrobic?

e) powiązania pomiędzy OSM a danymi w kolej.one.pl
Posiadamy największa bazę informacji o liniach kolejowych. Zakładajać, że ślady będą w OSM to potrzebujemy referencji do naszej bazy. Mamy nasze identyfikatory linii i posterunków. Ani SRJP ani D29 nie zawierają całej sieci kolejowej. W przypadku D29 to są tylko linie w PKP PLK. Linii z PKP Nieuchomosci już tam nie znajdziemy nie mówiąc już o całej masie linii w GOP (koleje piaskowe etc).

Czy można dodawać własne tagi do obiektów w OSM z referencją do naszej bazy?

Uff tyle narazie pytań z mojej strony.

Pozdrawiam

Jeśli linii nie jest dużo, to pewnie bałagan też nie byłby wielki. OSM ma przewidziany tag railway=abandoned, który gdzieniegdzie jest używany.

W niektórych krajach jest zmapowana sieć linii wysokiego napięcia, których powinno być więcej, niż kolei, a nie słyszałem narzekania na bałagan :slight_smile:

Jeśli nie ma jeszcze schematu tagowania w OSM dla posterunków kolejowych, to można go wymyślić. Nie wiem, w jakim formacie jest zrobiona wasza baza, ale jeśli ma coś, co przypomina tagi, to myślę, że można byłoby zacząć od tego.

Jeśli chodzi o samo umieszczenie, to najłatwiejsza pewnie byłaby automatyczna konwersja jakimś sprytnym skryptem.
Myślę, że nawet, jeśli w OSM powstałby mały bałagan, to warto byłoby przenieść do niego wszystkie dane i korzystać z niego jako z głównego źródła - odpadłyby problemy synchronizacji dwóch baz. Z drugiej strony trzeba byłoby zaadaptować renderer.

Tagi tego typu już są robione, z Wikipedią jako źródłem informacji. Nie widzę powodu, czemu nie można byłoby zawrzeć tam linków do kolej.one.pl.

Nie wiem czym autorzy tagu “railway=abandoned” się kierowali. Wydaje mi się jednak, że chodzi tylko o takie linie których są widoczne ślady (nasyp/wąwóz) bo one maja wpływ na to co widzimy obecnie w terenie. OSM nie przedstawia tego co było, jak droga jest przebudowana to nikt nie zostawia starego układu dróg… Stąd moje wątpliwości co do tego tagu.

Prawdę mówiąc, to railway=abandoned oznacza tylko, że coś tam było - na wiki nie ma informacji o tym, czy należy zaznaczać tylko, gdy coś pozostało. Myślę, że dałoby się to podciągnąć pod przeszłe linie. Ale obecnie chyba rzeczywiście nie warto go wykorzystywać, dopóki widać takie linie na mapie do ogólnego uzytku.

Mi sie wydaje ze czemu nie :slight_smile:

Jest taka inicjatywa w OSM tagowania objetow z start_date i end_date (oczywiscie jesli juz nie istnieja to musza miec tag z przedrostkiem historic: zeby nie byly brane pod uwage)

Do rozebranych / nieuzywanych torow mozna uzyc railway=abandoned albo disused, albo historic:railway jest rzeczywiscie nic nie zostalo.

Dodatkowo niejaki uzytkownik ShakespeareFan00 ma manie odtwarzania stanu kolei i innych rzeczy ze starych map Wielkiej Brytanii (ooc.openstreetmap.org) i z tego co wiem dostal tez do tego oddzielny serwer na ktorym to moze trzymac wersje robocze. (jakkolwiek nie jest on ulubiona postacia wszystkich w projekcie OSM)
Gdzies na wiki udokumentowal tagi ktorych uzywa, np http://wiki.openstreetmap.org/wiki/Proposed_features/Former_stations

Mysle ze wymyslimy na to tagi, ja narazie umiescilem chyba tylko jeden taki, http://www.openstreetmap.org/browse/node/33240633

Zgadzam sie z rhn, mozna by uzyc tagu takiego jak railmap=Id albo railmap_ref=cos

Dla ulatwienia dodam ze to osoba ktora zaproponowala schemat tagowania dla nawiedzonych domow :slight_smile:

Wow, już myślałem, że byłoby to pionierskie przedsięwzięcie, ale dobrze, że jest już ktoś o podobnych zamiarach.
Railmap, mógłbyś coś opowiedzieć o bazie danych, której używacie? Chodzi mi o format - myślę, że warto się mu przyjrzeć, bo np. ja nie wiem, na co należy zwracać uwagę przy mapowaniu linii kolejowych.

Witam

Na stronie mniej więcej widac co u nas w srodku siedzi.

Mamy stacje i linie kolejowe. Wszystko jest to w relacyjnej bazie danych.

Stacje posiadają swoją historię w postaci znaczenia stacji jak i nazw.

Linie posiadają swoją historię, prędkości oraz przypisanie do D29, SRJP.

Ja z uwagą przeczytałem Wasze opinie i postaram się wszystko przemyśleć i przedstawić konkretniejszy projekt przerzucenia naszych linii do OSM.

Ja w swojej aplikacji mam rozbudowany rendering. Stacje mają pokazane gdzie jest budynek, pokazane są linie wąskotorowe, szerokotorowe wraz z ilością torów itp… tego niewątpliwie brakuje na http://www.öpnvkarte.de/

Pozdrawiam

Wracając do danych z railmap to mam nastepująca koncepcję:

  1. Co mamy na początek:
  • w OSM nie ma żadnego mapowania na naszą bazę,
  • nasza baze umożliwi eksport do OSM linii (z prośbą/warunkiem utrzymania
    mapowania do naszej bazy),
  • nasza baza zawiera informacje historyczne o liniach
  • RailMap udostepnia rendering z naniesiem historii linii
  1. Rendering RailMap:
  • stacja jest renderowana na naszych danych dopoki nie bedzie zamapowana na
    dane (node) w OSM
  • linia jest renderowana na naszych danych dopoki linia nie bedzie
    zamapowana na relacje w OSM, gdzie wszystkie stacje na linii są w ścieżce
    relacji w OSM
  • dodatkowo RailMap renedrować bedzie tory należace do stacji zamapowane
    przez relacje typu kolekcja,
  1. Baza OSM i interesujące RailMap informacje:
    Node:
    railway=station/halt/service_point
    disused=yes/no - zamknieta
    abandoned=yes/no - - zlikwidowana
    _railmap_id= - identyfikator stacji w kolej.one.pl

Wyjaśnienia do niestandardowych rzeczy:
service_point - zaliczam tu wszystko to co nie jest przystankiem lub stacja (posterunek odgałęźny, ładownia, posterunek blokowy).
Chce uniknąć wchodzenia w szczegóły. Dla przeciętnego śmiertelnika to nie ma
znaczenia. W bazie znajdzie sie odpowienia informacja co to dokladnie jest.
Do plusów zaliczam to, że taki punkt nie jest renderowany.

disused,abandoned - jedyna wątpliwość czy jest to brane przez renering,
szczególnie ważne jest to że dla stacji abandoned nie chcialbym aby byly
wyswietlane przez inne programy… Może wtedy ustawić
railway=station_abandoned ?

_railmap_id - id stacji w kolej.one.pl

Zalety po stronie bazy korzystając z mapowania:

  • import wspolrzędnych z OSM do bazy
  • sprawdzenie zgodnosci danych jak nazwa, disused i abandoned
  • niezgodnosci raportowane beda na stronie kolej.one.pl (na poczatek -
    pozniej moze jakas automatyzacja poprawek w OSM)

Way:
railway=rail/narow_gauge
electrified=contact_line/no
gauge=1435 (może byc też 1435/1520 gdy mamy do czynienia ze splotem)
tracks=1/2 (przy splocie 1 mino ze są 3 lub 4 szyny)
disused=yes/no - zamknieta
abandoned=yes/no - zlikwidowana

Lista way bedzie mapowana na linie poprzez relacje:
route=railway
type=route
_railmap_id= id linii w bazie

Zalety po stronie bazy korzystając z mapowania:

  • import przebiegu linii pod warunkiem, że linia posiada wszystkie stacje
    takie jak w bazie
  • sprawdzenie zgodnosci danych OSM z bazą takich jak disused, abandoned, gauge, tracks,
    electrified
  • niezgodnosci raportowane beda na stronie kolej.one.pl (na poczatek -
    pozniej moze jakas automatyzacja poprawek w OSM)

Mapowac będzie można także tory stacyjne do stacji w bazie. Pozwoli to
pokazac okolice stacji na stronie kolej.one.pl.
Relacja:
route=railway
type=collection
_railmap_id= id stacji w bazie

Czekam na wszelkie sugestie. Czy zaproponowane tagowanie ma sens? Czy aby napewno linie “abandoned” nie są renderowane?

Generalnie chce utrzymac dotychczasowy rendering z Railmap korzystając z danych OSM i częsciowo naszych jeszcze nie wyeksportowanych do OSM nakładając historię. Z góry mówię, że wprowadzenie tych zmian po naszej stronie w oprogramowaniu troche potrwa…

Tu można skorzystać z podobnych propozycji dotyczących linii i przystanków autobusowych. Tam główne role grają: linia, przystanek (nie na drodze) i miejsce postoju.

Dobry pomysł. Na początek można byłoby to zastosować, a po pewnym czasie przejść na abandoned=yes - gdy inne programy już się nauczą.

Linie “abandoned” są renderowane:
http://www.informationfreeway.org/?lat=53.34135015629048&lon=23.328241463794463&zoom=15&layers=B0000F000F
ale to chyba nie powinien być większy problem.

W Twoim linku nie widzę linii rozebranej ale mam inny przykład (Oborniki Wlkp i linia na zachód):
http://www.informationfreeway.org/?lat=52.65162619002315&lon=16.80249271701418&zoom=14&layers=B0000F000F

Renderowana jest jako przeźroczysta - ledwo widzoczna. Czyli w przypadku rozebranej linii w Poznaniu ze Wschodu do Kobylepole to przejdzie ona przez srodek jeziora Maltańskiego (sic!). Czy tego oczekujemy?

Teraz zauwazyłem dopiero że w przypadku abandoned stosuje się:
railway=abandoned a nie abandoned=yes…

W przypadku unused to każdy sobie radzi po swojemu:
Mamy:
railway=unused

lub

railway=rail
unused=yes

lub

railway=usused
unused=yes

Preferowalbym jednak 2 opcje…

Wracając do problemu renderingu to co jest priorytetem - czy chemy przedstawiać bezwzględnie teraźniejszość czy też teraźniejszość z pewnymi elementami historycznymi… ? Na przykładzie Obornki Wlkp. mapa przedstawia linię kolejową (torchę przeźroczystą) - znaczy, że w terenie powinna ona być.

W/g mnie na ogólnej mapie nie powinno być jej wogóle zaznaczonej bo to myli przeciętnego użytkownika. Powinny byc renderowane co najwyżej nasypy lub wąwozy, mosty z tej linii. To tak jakbyśmy przestawili zaoraną drogę polną na mapie, to tylko wprowadza w błąd.

Mi też bardziej podoba się druga opcja.
W tym momencie mamy w railway=* pomieszane informacje o rodzaju linii oraz o jej użytkowaniu. Jako, że tagi disused i abandoned wykluczają się, proponuję coś takiego:

railway=rail|monorail|…
historic(?)=disused|abandoned

Co do renderingu - w moim przykładzie opuszczona była ta szara linia, która dosyć się wyróżnia na tle lasu. W miastach, jak pokazałeś, prawie jej nie widać, dlatego myślę, jest z tym w porządku - w lasach taka linia jest widoczna nawet bez nasypu, a w mieście nie. Trzeba byłoby tu zapytać, jaki cel przyświecał tym, którzy tworzyli zasady renderowania, i zaproponować własny styl.

Hm, czasem zdarza mi się mapować polne ścieżki :wink:

W poprzedniej odpowiedzi nie poruszyłem jednej sprawy - mówisz, że linia jest pojedyńczą “way” z tracks=*. Widzę tu pewien problem - gdzieniegdzie w miastach linie są rozplecione, np. na peronach oraz na bocznicach, z zaznaczonymi barierkami między nimi itp. Myślę, że to jest dla przeciętnego człowieka ważna informacja, bo wie, na którym peronie ma stać. To komplikuje sprawę, ale wg mnie powinno być zachowane.

http://osmdoc.com/en/tag/railway/#values pokazuje rozne wartosci railway= ktorych ludzie uzywaja, moze znajdzie sie cos do tagowania nawet takich szczegolow.

Tu znow polecam te liste uzywanych wartosci. Jeszcze inny sposob zaznaczania rzeczy ktorych juz nie ma to historic:railway=*

Ja bym sie nie przejmowal renderingiem w OSM, ale mozna pod uwage jeszcze wziasc tag dismantled zamiast abandoned.

Moze lepiej railmap=* albo railmap:ref / ref:railmap ?
Nazwy zaczynajace sie od _ kojarza mi sie z C :slight_smile:

Generalnie pomysl wykorzystania bazy osm jest swietny tylko obawiam sie ze bedzie kosztowal duzo pracy.

Ok widzę teraz tą rozebrana linię na mapie.

Narazie widzę, że optymalnie pod względem renderingu jest używać:
linia rozebrana (tak jak ten way na Twoim przykładzie):
railway=abandoned

linia istniejąca ale nie użuywana:
railway=rail
unused=yes

Patrząc na dwa renderery (Mapnik/OSMrender) to jest najlepsze rozwiazanie i chyba przy tym zostanę.

Celna uwaga co do tracks. Linia kolejowa w PKP to 1 lub dwa tory. Są ze soba skorelowane pod względem techniczno - ruchowym i niepodzielne pod względem logicznym. Stąd naturalne jest rysowanie dwoch torów jako jednego track. Zgodzę się, że jezeli dwa tory się rozbiegają znacznie (czasami się to zdarza) to powinny być rozwidlone (peron, dwa oddzielne nasypy, mosty). W takim przypadku powinno być tracks=1. Ten wyjatek trochę komplikuje mi koncepcje mapowania przez relacje typu ‘type=route’ na RailMap. Zakładałem, że relacja bedzie zawierała zestaw kolejnych way, a tu moga sie pojawić rozgalęzienia toru…

Jasne mogę używać ref:railmap.

Co do pracy. Na początek chcemy oprogramować to. Mapowanie bedzie robione tylko wtedy gdy bedziemy chcieli cos przeedytować. W takim przypadku musimy wrzucic brakujace dane do OSM i zamapowac na railmap aby moc renderowac to programem RailMap (cześciowo na naszych zamrożonych danych i cześciowo na danych OSM). Także może bedzie trochę pracy pogramistycznej, ale danych nie trzeba bezie odrazu przenosić…

No własnie, rendering w OSM wymagałby wprowadzenia kilku poprawek, przykladowo w Mapniku railway=unused i railway=abandoned są renderowane dokladnie tak samo.

Co do omawianego tu schematu tagowania, nie wiem czy nie warto przewidziec tez opisu dla funkcjonujących linii na ktorych zwinięto sieć elektryczną.

Temat importu z railmap ucichł, ale chciałbym poruszyć kwestię, która została tutaj wspomniana.

Chodzi o zasady rysowania linii dwutorowych. W tej chwili w większości przypadków linie dwutorowe rysowane są tak samo jak jednotorowe. Rodzi to jednak problem przy renderowaniu, szczególnie różnie rozwiązywane są kwestie, kiedy tory takiej linii w pewnym miejscu biegną w pewnym oddaleniu od siebie omijając jakąś przeszkodę, czy chociażby peron wyspowy.
Moim zdaniem linie dwutorowe powinny być rysowane tak samo jak drogi dwujezdniowe w całym przebiegu, co jest sprzeczne z tym co zostało stwierdzone kilka postów wyżej:

Dodam jeszcze, że o ile są “skorelowane pod względem techniczno - ruchowym i niepodzielne pod względem logicznym” to mogą występować różnice na przykład w prędkościach maksymalnych dla poszczególnych torów linii, co dla mnie jest kolejną argumentem za rysowaniem torów oddzielnie.

Przeglądając jak to robią nasi zachodni sąsiedzi stwierdzam, że spotykane są oba podejścia:
tu jest linia dwutorowa:
http://www.openstreetmap.org/?lat=52.3393499851227&lon=14.5174241065979&zoom=16

i tu też:
http://www.openstreetmap.org/?lat=52.6054988801479&lon=12.9143482446671&zoom=17

Jakie są tendencję w społeczności w tym temacie?

Raczej to drugie rozwiązanie jest lepsze.
Wydaje mi się ze pojedyncze wyrysowanie może być spowodowane brakiem danych / pośpiechem.
Np tu wyrysowałem to w ten sposób: http://osm.org/go/0OuHpfEGS-

Tylko pozostaje kwestia nie osadzania przystanków i stacji na takich liniach dwutorowych. Dla porządku należałoby na każdym torze dodać węzeł oznaczający stację, a stacja jest jedna, co najwyżej są dwie krawędzie peronowe.

No nic, temat do poruszenia wśród całej społeczności, bo wydaje mi się, że za mały jest aparat dostępnych tagów.

Sam sobie odpowiem, bo przeczytałem trochę dyskusji.

Tendencje są takie, aby railway=station i railway=halt używać do samych budynków stacyjnych. Natomiast do węzłów na liniach kolejowych, gdzie pociąg staje używać railway=stop