OpenStreetMap

starsep's Diary

Recent diary entries

Bing StreetSide is alternative to Google Street View which can be used for OpenStreetMap mapping. There is a MicrosoftStreetside plugin for JOSM but it doesn’t work for me due to dependencies of JavaFX/360 views.

I have managed to use it via Utilsplugin2.

  1. Edit => Preferences (F12) => Utilsplugin2 settings
  2. Add new row with name Bing StreetSide and url https://www.bing.com/maps?cp={#lat}%7E{#lon}&lvl=19.0&style=x.
    In the case of issues one can edit customurl.txt. For Linux/Flatpak it’s located at ~/.var/app/org.openstreetmap.josm/data/JOSM/plugins/utilsplugin2/customurl.txt.
  3. Choose Bing StreetSide in Data => Select custom URL
  4. Now you can see Bing StreetSide via Data => Open custom URL (Shift+H)

If StreetSide is available at given location it will be displayed. Otherwise map is shown with streets colored blue where it’s available.

Bing StreetSide to odpowiednik Google Street View, który można używać do mapowania w OpenStreetMap. Istnieje plugin MicrosoftStreetside do JOSMa, ale niestety u mnie nie działa ze względu zależność od JavaFX/widoki 360.

Poradziłem sobie za pomocą użycia pluginu Utilsplugin2.

  1. Edit => Preferences (F12) => Utilsplugin2 settings
  2. Należy dodać nowy wiersz klikając z nazwą Bing StreetSide oraz url https://www.bing.com/maps?cp={#lat}%7E{#lon}&lvl=19.0&style=x.
    W razie problemów można edytować plik customurl.txt. Dla Linuksa z Flatpakiem jest on w ~/.var/app/org.openstreetmap.josm/data/JOSM/plugins/utilsplugin2/customurl.txt.
  3. Należy wybrać Bing StreetSide w Data => Select custom URL
  4. Teraz można otworzyć Bing StreetSide za pomocą Data => Open custom URL (Shift+H)

Jeżeli w danym miejscu jest dostępny StreetSide to zostanie otwarty. Jeżeli nie to otworzy się mapa z ulicami na niebiesko w miejscach, gdzie jest dostępny.

Wprowadzenie

Stworzyłem stronę https://starsep.com/osm-wtp/. Można na niej znaleźć porównanie danych OpenStreetMap transportu publicznego aglomeracji warszawskiej z danymi Warszawskiego Transportu Publicznego. Głównym celem jest możliwość łatwego znalezienia błędów oraz brakujących danych. Porównuję dla każdego wariantu linii listę przystanków. Dodatkowo znajdowana jest część błędów związanych z tagowaniem w OpenStreetMap.

Treść strony

Na górze znajduje się lista linii. Dla linii z błędem wyświetla się link z ❌.

lines

Dla linii z błędami wyświetlone są tabelki porównujące nazwy i numery przystanków z OSM i WTP. Kolory oznaczają, co należy zrobić w OSM, aby doprowadzić do stanu z WTP: zielony dodać przystanki, czerwony usunąć, pomarańczowy zmienić. W nagłówku są przydatne linki.

error

Na dole strony można znaleźć inne błędy oraz statystyki generowania.

Dane

Dla każdej relacji type=route dodałem tag url do strony WTP z rozkładem tego wariantu linii.

Przykładowy link: https://wtp.waw.pl/rozklady-jazdy/?wtp_md=3&wtp_ln=166&wtp_dr=A&wtp_vr=1

Argumenty:

  • wtp_md=3 oznacza rozkład z listą przystanków
  • wtp_ln=166 to numer linii 166
  • wtp_dr=A to kierunek linii A/B
  • wtp_vr=1 to numer wariantu linii w danym kierunku. Na stronie są one oznaczone literami A/B

Do porównania listy przystanków wykorzystywane są numery przystanków (tag ref). W WTP numery przystanków mają sześć cyfr, gdzie pierwsze cztery oznaczają numer zespołu przystanków, a dwie ostatnie numer przystanku w zespole. Dodatkowo wyświetlane są nazwy (tag name).

Problemem był brak linku do ostatniego przystanku na stronie WTP. Wyświetla się tylko nazwa, a nie są one unikalne w aglomeracji warszawskiej.

Inne narzędzia

Aglomeracja warszawska jest skonfigurowana w PTNA Public Transport Network Analysis. Dobrym źródłem jest GTFS Warsaw, który też można znaleźć w powyższym narzędziu. Jest także sporo narzędzi Quality Assurance, które znajdują błędy w relacjach transportu publicznego.

Szczegóły techniczne

  • Strona jest hostowana za pomocą GitHub Pages.
  • Kod można znaleźć na GitHubie.
  • Wygenerowany HTML jest w osobnym repozytorium.
  • Skrypt jest zaimplementowany w Pythonie.
  • Ze względu na wydajność używam PyPy 3.9.
  • HTML generowany jest za pomocą Jinja2.
  • Używam styli SimpleCSS. Pozwalają na generowanie prostego HTMLa i wspierają jasny/ciemny motyw bez JavaScriptu.
  • Generowanie uruchamiam za pomocą GitHub Actions. Chwilowo jest to 3 razy na dobę wieczorem. Mogę też uruchomić ręcznie z komputera lub na GitHubie.
  • Dane z WTP (chwilowo HTML stron) są cache’owane. Dzięki temu kolejne uruchomienia danej doby są już dużo szybsze.
  • Dane OpenStreetMap pobierane są z Overpassa z relacji komunikacji WTP.

Plany na przyszłość

  1. Naprawić dane w OSM dzięki temu narzędziu.
  2. Zrobić refaktor kodu. Aktualnie jest to skrypt bez sensownego podziału na funkcje i bez testów.
  3. (być może) Testy poprawności geometrii relacji m. in. czy punkty zatrzymań są częściami odcinków dróg, spójność geometrii, czy platformy są po prawej stronie. Takie testy robią inne narzędzia.
  4. To podejście może dać się zastosować dla innych miast.

Ten artykuł można też znaleźć na https://starsep.com/pl/posts/osm-wtp/