Autor Wątek:  Konwerter OSM > MaSzyna  (Przeczytany 3836 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline Hirek

  • Wiadomości: 296
  • ugułem to siemens fajne wozy robi
    • Zobacz profil
    • Kanał YT
  • Otrzymane polubienia: 213
Konwerter OSM > MaSzyna
« dnia: 20 Czerwca 2023, 08:28:12 »
Hej,
na samym początku chciałbym zaznaczyć że sam nie wiem czy jest się tu czym chwalić, jeśli nie to niech administracja zamknie i zepchnie na bocznicę.

Wczoraj z racji tego że mi się bardzo nudziło a chciałem się pobawić w scenerie w maszynie to napisałem prosty pythonowy konwerter pliku pobranoego z OpenStreetMap na format rozumiany przez symulator. Sam kod działa prawie dobrze i robi to co zakładałem żeby robił. Jego umiejętności są na ten moment prymitywne bo ograniczają się jedynie do wzięcia i wrzucenia prostych fragmentów torów i połączenia ich. Oznacza to że łuki będą składać się z prostych segmentów zamiast z ładnego łuku (ale na to chyba można zaradzić rainstedem). Z rzeczy które jeszcze nie działają poprawnie zostało nazywanie node tracków i rotacja mapy. W załącznikach pod postem macie przykładowy wycinek Warszawy od Centralnego do Grodziska z linią WKD włącznie, oraz spojrzenie na bazę WKD w Grodzisku.

W założeniu nie ma to być program który jednym kliknięciem stworzy nam scenerie/układ torowy do niej. Ma tylko położyć jakąś bazę torów na którą trzeba będzie nałożyć mnóstwo poprawek innym edytorem jak np. rainsted, dodając zwrotnice, odtwarzając łuki, dodawając profil pionowy

Ogólnie to program mam zamiar udostępnić jak przepisze go na C# i posprzątam w kodzie, poprawiając multithreading, a kto wie może dorobię jakiś interfejs który skonwertuje cały zaznaczony fragment mapy.

Także do potem a jak program będzie w takim stanie że będzie można go wydać tutaj to umieszczę link do pobrania tutaj. Odnośnie jakichkolwiek aktualizacji będę dodawać kolejne wiadomości. Otwarty jestem na chęć współpracy i pomocy.

Pozderki, na dniach powinna wlecieć wersja przepisana na c#
just because you see a smile, don't think you know what's going on underneath. A smile is a valuable tool, my dear. It inspires your friends, keeps your enemies guessing, and ensures that, no matter what comes your way, YOU'RE the one in control.

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6308
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 337
Odp: Konwerter OSM > MaSzyna
« Odpowiedź #1 dnia: 20 Czerwca 2023, 10:37:39 »
Z mojego doświadczenia mogę powiedzieć, że importowanie torów z OSM ma niewielki sens, chyba że ktoś lubi poprawiać krzywe tory (np. ja), a przy tym chce mieć szybko jakiś kawałek do przejechania. Przynajmniej kilka lat temu dokładność OSM w zakresie torów była słaba. Co jest i tak lepsze niż UMP, które z założenia ma niedokładność współrzędnych rzędu 1m. Natomiast z OSM jest sens importowania wszystkich innych rzeczy, np. dróg, ogrodzeń, linii energetycznych. Przy czym należałoby dopracować kwestie tworzenia dróg w MaSzynie, w szczególności skrzyżowań. Dane z OSM były parę lat temu importowane do świata w Outerra i automatycznie przetwarzane w drogi — wyglądało to średnio.

Kiedyś znalazłem jakiś program generujący model 3D z danych OSM. Niestety, chyba strona z tym programem zniknęła, ale może jest gdzieś indziej albo powstały inne programy tego typu. W załączeniu fragment Wielunia, który udało mi się wygenerować.

Przy tworzeniu scenerii z OSM trzeba uwzględnić kilka rzeczy, np. przeliczenie WGS84 na układ prostokątny płaski i wybór środka scenerii w tym układzie. Trzeba też uwzględnić wysokość terenu.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline mati222

  • Wiadomości: 205
    • Zobacz profil
  • Otrzymane polubienia: 80
Odp: Konwerter OSM > MaSzyna
« Odpowiedź #2 dnia: 20 Czerwca 2023, 14:59:33 »
Potwierdzam to co zostało napisane powyżej. Dużą pomocą przy tworzeniu otoczenia realnych scenerii byłby program, za pomocą którego można importować drogi (bryły budynków już są do podmiany,  brakuje m. in. dróg). Nawet gdyby te drogi nie wyglądały idealnie, to i tak stanowiłoby to duże ułatwienie. Próby tworzenia i poziomowania dróg edytorem na sceneriach realnych z profilem pionowym, to zadanie praco i czasochłonne, a tworzone w ten sposób drogi nie wyglądają dobrze. 

Offline Hirek

  • Wiadomości: 296
  • ugułem to siemens fajne wozy robi
    • Zobacz profil
    • Kanał YT
  • Otrzymane polubienia: 213
Odp: Konwerter OSM > MaSzyna
« Odpowiedź #3 dnia: 20 Czerwca 2023, 17:41:53 »
Opcję automatycznego wstawiania dróg mogę oczywiście dorobić, jest to w sumie kwestia podania inaczej spreparowanego pliku z danymi wygenerowanymi na overpassie - zamiast "railway" = "rail" użyć innego parametru na drogi. W tej kwestii będę to musiał jeszcze przejrzeć i pewno zaimplementuję taki generator dróg. Aktualizację wstawiłbym dzisiaj ale aktualnie ciągnę maraton 26h od ostatniego spanka także jak już będę miał do tego siąść to jutro.
just because you see a smile, don't think you know what's going on underneath. A smile is a valuable tool, my dear. It inspires your friends, keeps your enemies guessing, and ensures that, no matter what comes your way, YOU'RE the one in control.

Offline matek123

  • Moderator
  • Wiadomości: 6093
    • Zobacz profil
  • Otrzymane polubienia: 2069
Odp: Konwerter OSM > MaSzyna
« Odpowiedź #4 dnia: 20 Czerwca 2023, 18:17:27 »
Pomysł ciekawy, ale raczej tylko jako podkładowy. Licencji danych z OSM raczej nie przeskoczymy w bezpośrednim wykorzystaniu w Maszynie.
Poszukuję zdjęć na tekstury pociągów sieciowych. Szczególnie platform z pomostami.

Offline Ra

  • Zasłużony dla Symulatora
  • Wiadomości: 6308
  • Ostatni gasi światło...
    • Zobacz profil
    • Instalator+Starter+Edytor
  • Otrzymane polubienia: 337
Odp: Konwerter OSM > MaSzyna
« Odpowiedź #5 dnia: 20 Czerwca 2023, 18:23:30 »
Wczytywanie dróg o tyle się różni, że skrzyżowania są jakoś bardziej prostokątami z drogami dołączonymi na bokach, co nie ma bezpośredniego przełożenia na format MaSzyny. Trzeba by coś modelować na podstawie pobranych danych i raczej już z uwzględnieniem wysokości terenu. Kiedyś planowałem połączyć odcinki dróg z trójkątami terenu, co w efekcie miało dać drogę wkomponowaną w teren bez konieczności żmudnego dopasowywania niezależnych od siebie siatek.

W załączeniu obrazek z Lublińca w alternatywnym świecie, widzianym przez użytkowników Outerra. Tam, gdzie są te drzewa, powinny być tory od Jawornicy oraz Rusinowic, a droga przechodząca w poprzek przez nieużytki to wiadukt nad stacją. Parę lat temu czytałem o planach wprowadzenia linii kolejowych, ale nie interesowałem się tym bliżej i nie wiem, czy są jakieś postępy w tym zakresie. Użycie Outerra jako silnika graficznego do MaSzyny rozważałem około 2014 roku.
¯\_( ͡° ͜ʖ ͡°)_/¯ Ra

Polecam: kręgarz Wojciech Walczak, projekt masarni

Offline JAN21

  • Deweloper
  • Wiadomości: 493
  • Tory se robie se
    • Zobacz profil
  • Otrzymane polubienia: 1448
Odp: Konwerter OSM > MaSzyna
« Odpowiedź #6 dnia: 20 Czerwca 2023, 23:13:10 »
Pomysł ciekawy, ale raczej tylko jako podkładowy. Licencji danych z OSM raczej nie przeskoczymy w bezpośrednim wykorzystaniu w Maszynie.

Po wielokrotnym przeliczeniu współrzędnych i wypoziomowaniu nikt się nie doszuka ;)
Dobrowolne wsparcie: Tipply

Offline Hirek

  • Wiadomości: 296
  • ugułem to siemens fajne wozy robi
    • Zobacz profil
    • Kanał YT
  • Otrzymane polubienia: 213
Odp: Konwerter OSM > MaSzyna
« Odpowiedź #7 dnia: 29 Czerwca 2023, 22:12:44 »
Jako iż na ten moment nie chce mi się zabierać za przepisywanie tego na inny język to udostępnię dla pokoleń źródło w pythonie.

Do folderu ze skryptem wrzucić zawartość danych z osm pod nazwą export.json
Skrypt stworzy plik scm z nimi. Na początku skryptu trzeba pobawić się trochę w przesuwanie mapy coby symulator nie dostał za dużych wartości do interpretacji. Z fartem mordeczki.
just because you see a smile, don't think you know what's going on underneath. A smile is a valuable tool, my dear. It inspires your friends, keeps your enemies guessing, and ensures that, no matter what comes your way, YOU'RE the one in control.