Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:sbd:2009:projekty:mpk-gis:raport_koncowy [2010/03/09 08:34]
sbd09
pl:dydaktyka:sbd:2009:projekty:mpk-gis:raport_koncowy [2019/06/27 15:50] (aktualna)
Linia 35: Linia 35:
  
 ====-. OSM a komunikacja publiczna ==== ====-. OSM a komunikacja publiczna ====
- +=== Linie komunikacji miejskiej === 
-Informacje o komunikacji publiczna w OpenStreetMap zapisane są przy wykorzystaniu znacznika Relation:​route:​ http://​wiki.openstreetmap.org/​wiki/​Relation:​route Pozwala on na zapisanie informacji o typie połączenia (key:​route):​ autobusowym (value:bus) i tramwajowym (value:​tram). Ważną informacją (choć niestety nieobowiązkową przy wprowadzaniu) jest nazwa linii (key:ref). OSM prawdopodobnie zakłada, że linie komunikacji miejskiej w obu kierunkach wyglądają jednakowo, w związku z czym nie ma znacznika opowiadającego za kierunek linii. Stanowi to (dla Krakowa) pewien problem, co można by rozwiązać np. dodanie do numeru linii litery - 173a, 173b. Niestety w chwili obecnej w danych dla Krakowa takiego rozróżnienia nie ma: http://​wiki.openstreetmap.org/​wiki/​WikiProject_Poland/​Ma%C5%82opolska +Informacje o komunikacji publiczna w OpenStreetMap zapisane są przy wykorzystaniu znacznika Relation:​route:​ http://​wiki.openstreetmap.org/​wiki/​Relation:​route Pozwala on na zapisanie informacji o typie połączenia (key:​route):​ autobusowym (value:bus) i tramwajowym (value:​tram). Ważną informacją (choć niestety nieobowiązkową przy wprowadzaniu) jest nazwa linii (key:ref). OSM prawdopodobnie zakłada, że linie komunikacji miejskiej w obu kierunkach wyglądają jednakowo, w związku z czym nie ma znacznika opowiadającego za kierunek linii. Stanowi to (dla Krakowa) pewien problem, co można by rozwiązać np. poprzez ​dodanie do numeru linii litery - 173a, 173b. Niestety w chwili obecnej w danych dla Krakowa takiego rozróżnienia nie ma.\\  
 +W skład relacji powinny wchodzić również przystanki. Najnowsze API 0.6 nie uwzględnia możliwości numerowania przystanków - powinny być one umieszczone w relacji w odpowiedniej kolejności. Niestety w przypadku danych dla Krakowa przystanki funkcjonują zupełnie niezależnie od linii komunikacji miejskiej, co uniemożliwiło import części danych (o czym innej części raportu).\\  
 +Inne informacje, jakie może zawrzeć dla odpowiednich linii, to rozróżnienie operatorów ją obsługujących czy też możliwość korzystania z niej przez niepełnosprawnych.  
 +=== Przystanki ===  
 +Przystanki w OSM występują w oparciu o tag highway:​bus_stop http://​wiki.openstreetmap.org/​wiki/​Tag:​highway%3Dbus_stop Poza informacją o nazwie (tag:name) pozwala na określenie kierunku (towards), w którym zmierza autobus z danego przystanku. 
 +=== Dane dla Krakowa === 
 +Aktualne informacje o naniesionych na mapę liniach krakowskiej komunikacji miejskiej można znaleźć na stronie: http://​wiki.openstreetmap.org/​wiki/​WikiProject_Poland/​Ma%C5%82opolska
 ====-. Pozyskiwanie danych ==== ====-. Pozyskiwanie danych ====
 === Automatyczne === === Automatyczne ===
Linia 62: Linia 67:
 To, czego potrzebujemy,​ to wyeksportowany z OSM plik XML oraz baza danych z rozszerzeniem PostGIS. Skrypt pozwala na wyświetlenie informacji dotyczących połączeń i przystanków zawartych w pliku XML, stworzenie struktury bazy danych oraz import danych z pliku do bazy. Dodatkową funkcją jest "​--update_distance"​ - wyszukuje ona najbardziej oddalone od siebie "​części przystanków"​ (small_stop) i oblicza czas potrzebny na przemieszczenie się w ich obrębie (na podstawie dystansu między nimi i prędkości poruszania się).\\ ​ To, czego potrzebujemy,​ to wyeksportowany z OSM plik XML oraz baza danych z rozszerzeniem PostGIS. Skrypt pozwala na wyświetlenie informacji dotyczących połączeń i przystanków zawartych w pliku XML, stworzenie struktury bazy danych oraz import danych z pliku do bazy. Dodatkową funkcją jest "​--update_distance"​ - wyszukuje ona najbardziej oddalone od siebie "​części przystanków"​ (small_stop) i oblicza czas potrzebny na przemieszczenie się w ich obrębie (na podstawie dystansu między nimi i prędkości poruszania się).\\ ​
 Przykład wyświetlenia danych (fragment): Przykład wyświetlenia danych (fragment):
-<​code>​+<code >
 Linie tarmwajowe Linie tarmwajowe
 Linia: 4        ​ Linia: 4        ​
Linia 86: Linia 91:
  
 ===Ręczne wprowadzanie === ===Ręczne wprowadzanie ===
-Więcej informacji o ręcznym wprowadzeniu danych w punkcie ​3.+Więcej informacji o ręcznym wprowadzeniu danych w punkcie ​4.
  
 ====-.Interfejs do prezentacji i obsługi danych w oparciu o diagramy FHF, DFD, STD ==== ====-.Interfejs do prezentacji i obsługi danych w oparciu o diagramy FHF, DFD, STD ====
Linia 135: Linia 140:
 ====-. Napotkane problemy ==== ====-. Napotkane problemy ====
  
 +Większość problemów, z jakimi zetknięto się podczas tworzenia projektu, dotyczyła wykorzystania danych dostępnych w OpenStreetMap. Mimo, że baza danych dotycząca krakowskiej komunikacji miejskiej jest dość obszerna, to jednak nie jest ona należycie przygotowana. Podstawowym problemem jest brak powiązania istniejących relacji autobusowych (i tramwajowych) z przystankami. Sam OSM daje taką możliwość,​ jednak jego krakowscy użytkownicy (poza nami samymi w celach testowych) nie korzystali z tej możliwości. Tym sposobem import istniejących linii oraz dróg stał się niemożliwy:​ nie można było określić przystanków początkowych i końcowych linii. W związku z tym pierwszym krokiem, jaki należałoby uczynić, jest uzupełnienie tychże danych. Sam parser jest do tego (częściowo) przygotowany.\\ ​
 +Kolejny, wspomniany wcześniej problem, to nieuwzględnienie przez twórców możliwości różnic w trasie przejazdu w poszczególnych kierunkach. Oznacz to, że należałoby albo wprowadzić dodatkowe taki, albo rozróżnić w nazwie (np. poprzez a/b) kierunek relacji.\\ ​
 +Można również odnieść wrażenie, że moduł eksportujący dane z OSM ma pewne niedociągnięcia - eksportując dane dotyczące jakiegoś obszaru może okazać się, że są one niekompletne. W relacjach znajdują się bowiem drogi (ways), ale brak jest informacji o ich przebiegu.\\ ​
 +Jeśli chodzi o problemy typowo techniczne, to pewne problemy pojawiły się podczas przetwarzania danych zakodowanych poprzez moduł pygresql w Pythonie, w związku z czym wykorzystano psycopg2, który radzi sobie z tym bez problemów (wysyła dane jako "​escape strings",​ poprzedzone prefiksem E).
 ====-. Wnioski ===== ====-. Wnioski =====
 +Zrealizowany projekt został zakończony połowicznym sukcesem. Cześć aplikacji oparta o prezencję danych udało się nam zrealizować w 100 %. Użytkownik uzyskał możliwość podglądu danych dotyczących funkcjonowania komunikacji miejskiej w Krakowie. Administrator ma możliwość prostego i intuicyjnego wprowadzania danych przez wizualny edytor. Niestety nie udało się nam do końca zrealizować importu i eksportu danych zawartych w [[www.openstreetmap.org]]. Napotkane problemy zostały szczegółowo opisane w punkcie 6 raportu końcowego. Podsumowując udało się stworzyć aplikację uniwersalną,​ która jest w stanie pracować w różnych miastach, a nie tylko w Krakowie. Użycie PostGIS pozwoliło w łatwy sposób konstruować zapytania geolokacyjne. Uważamy że należy dalej rozwijać tematyką związaną z komunikacją miejską, dlatego że pozwoli to użytkownikom w łatwy sposób uzyskać informacje o funkcjonowaniu transportu publicznego.
 +
 ====-. Rozwój ==== ====-. Rozwój ====
 +Rozważając perspektywy rozwoju projektu można wyróżnić kilka
 +potencjalnych kierunków dalszych prac. Jedną z możliwość jest
 +skupienie się na lepszym przystosowaniu systemu do wykorzystania na
 +urządzeniach mobilnych. Zastosowana obecnie w systemie wersja API
 +Google Maps umożliwia bardzo łatwą lokalizację na mapie urządzeń,
 +które są świadome swojego położenia (iPhone, telefony z systemem
 +Google Android lub Windows Mobile/​Phone). Zatem, kolejnym krokiem w
 +tym kierunku mogłoby być wyświetlanie kontekstowych informacji o
 +liniach i przystankach w zależności od położenia użytkownika,​ tak aby
 +włączając stronę projektu ma urządzeniu mobilnym można było od razu
 +zorientować się odnośnie znajdujących się w okolicy przystanków oraz
 +tras.
 +
 +Inna możliwością rozwoju systemu jest stworzenie na jego bazie
 +zupełnie innej warstwy informacyjnej. Warstwę tę może stanowić np
 +informacja o rozmieszczeniu bankomatów czy też innych, istotnych z
 +punktu widzenia określonej grupy docelowej przydatnych miejsc. Ta
 +droga rozwoju jest o tyle prostsza od pozostałych iż z punktu widzenia
 +administratora systemu wymaga właściwie zaznaczania na mapie
 +pojedynczych punktów a nie całych ścieżek.
 +
 +Odrębną warstwę informacyjną można również zbudować wykorzystując cały
 +dostępny potencjał systemu. Zamiast wyświetlania tras komunikacyjnych
 +mogłyby to być warte przejścia trasy widokowe, ścieżki kulturalne lub
 +spacerowe, co przy uwzględnieniu liczby turystów odwiedzających Kraków
 +i daniu im np. możliwości głosowania na najlepsze trasy mogłoby
 +rozwinąć się w ciekawy, niezależny projekt.
 +
 +Jeżeli chodzi o możliwości rozwoju systemu związane z trasami
 +komunikacyjnymi bardzo pożądaną funkcjonalnością była by możliwość
 +zaplanowania tras łączących dowolne punkty w mieście. Użytkownik
 +miałby wpływ na punkty pośrednie oraz możliwość wybrania najszybszej
 +lub najkrótszej opcji, których to inteligentne wyliczenie należałoby
 +do zadań systemu.
 +
 ====-. Pliki źródłowe ==== ====-. Pliki źródłowe ====
 {{:​pl:​dydaktyka:​sbd:​2009:​projekty:​mpk-gis:​bazy_danych.zip}} {{:​pl:​dydaktyka:​sbd:​2009:​projekty:​mpk-gis:​bazy_danych.zip}}
 +{{:​pl:​dydaktyka:​sbd:​2009:​projekty:​mpk-gis:​import.tar.gz|}}
  
 ====-. Żrodło ==== ====-. Żrodło ====
pl/dydaktyka/sbd/2009/projekty/mpk-gis/raport_koncowy.1268120070.txt.gz · ostatnio zmienione: 2019/06/27 15:55 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0