“Implementierung einer Routensuche anhand von OHDM Karten
unter Berücksichtigung der zu dem Zeitalter verwendeten
Transportwege und – Mitteln”
Abschlussarbeit von Kirill Mishin
Einleitung - Zielsetzung
● Entwicklung eines Systems zur Routenfindung unter Berücksichtigung der Einwirkung von Transportwegen und verschiedener Faktoren auf die
Zurücklegung von Strecken.
● Welchen Einfluss haben zeitgeschichtliche Ereignisse auf die Dauer einer bestimmten Strecke?
● Projekt von Prof. Dr.-Ing. Schwotzer an der Hochschule für Technik und Wirtschaft Berlin
● 2015 im Zuge der fakultären Lehre an der HTW ins Leben gerufen
● Speicherung und Darstellung der Daten als Vektorgeometrien durch PostGIS-Datenbank
Open-Source Projekt Open Historical Data Map (OHDM)
Reisen in der Vergangenheit
● Zeit vor Globalisierung
● Sozialer Status und Wohlstand beeinflussten die Wahl des Transportmittels
● Kriege, Seuchen, Religionskonflikte etc.
Technische Analyse - Routing Tool
● GraphHopper
■ Customize-Möglichkeiten
■ nicht lizenzfrei
● pgRouting
○ erweitert PostGIS-Datenbank
○ OpenSource
OHDM Datenbank
3 Schemata:
● intermediate
● ohdm
● rendering
Für jede Klasse aus ohdm.classification werden 3 Tabellen im Schema rendering angelegt:
● *_lines
● *_points
● *_polygons
Topologie
● pgr_createTopology()
○ Erweiterung der Tabelle durch Knoteninformationen
○ Knoteninformationen in neu angelegten Tabelle *_vertices_pgr
● pgr_analyzeGraph()
○ Untersuchung nach isolierten Knoten oder “Überschneidungen”
○ tolerance-Wert in Meter
● pgr_nodeNetwork()
○ Löschen unerreichbaren Segmenten
○ Zusammenfassung von Knoten unter tolerance-Wert
Anforderungen an das zu entwickelnden System(Prototyp)
● Auswahl an Transportmitteln
● Ein- oder Ausschließung von Wasserwegen
● Start- und Endkoordinaten
● Genaues Reisedatum
● Personenklasse
● Historische Ereignisse
Konzept
Interpretation von Klassifikationen im rendering Schema
Transportmittel:
● Mensch zu Fuß
● Pferd
● Kutsche
● Auto
● Schiff
Sequenzdiagramm
Suchparameter-Konfigurationsdatei
• classofperson:[ID aus der people-Tabelle]
• transporttype:[ID aus der transport_mittel-Tabelle]
• waterwayincl:[true/false]
• startpoint:[Längengrad Breitengrad]
• endpoint:[Längengrad Breitengrad]
• day:[YYYY-MM-DD]
Transportmittel
• id serial PRIMARY KEY
• type VARCHAR (255) UNIQUE NOT NULL
• speed INTEGER
Personenklassen
• id serial PRIMARY KEY
• titel VARCHAR (255) UNIQUE NOT NULL
Unzugängliche Gebiete
• id INTEGER PRIMARY KEY
• area geometry
• closedfor INTEGER
• valid_since DATE
• valid_until DATE
Ausschließen der Gebiete
● ST_Intersects()
Ermittlung der Start- und Endknoten
● ST_Distance()
○ Berechnung des kleinsten Abstandes zu einem Punkt aus routing_topology_noded_vertices_pgr
● ST_Transform()
○ Umwandlung von Koordinaten in WGS84(Meter)
Berechnung einer Route mithilfe von pgr_dijkstra() und Befüllung der Tabelle result_way_table
● routing_topology_noded Tabelle als Parameter
● Spalte length als Gewichtung
● Start- und Endknoten
● Berechnung innerhalb eines ungerichteten Graphen
● Ergebnis mithilfe von INNER JOIN-SQLOperator um Spalten aus der routing_topology_noded Tabelle erweitern
● Spalte subclass aus routing_topology in die neu entstandene Tabelle result_way_table übertragen
Berechnung der Reisezeit und Befüllung der Tabelle result_time_table
● result_way_table besitzt keine Information über die Reisedauer.
● Unterschiedliche Berechnung für den Weg auf dem Land und Wasser.
● Anhand den Werten aus der Spalte subclass der Ergebnistabelle result_way_table werden die einzelnen Abschnitte unterschieden.
Test
Verzichten auf Unit-Tests
● Daten basieren sich nicht auf einer historischen Grundlage.
● Tester soll ausreichende Kentnisse im Bereich Geschichte aufweisen.
● Enormer Aufwand, da die Daten händisch zu prüfen sind.
Arbeitsweise an konkreten Beispielen
● Allgemeine Kriterien für beide Beispiele
● Gleiche Start- und Endkoordinaten
● Gleiches Straßennetz, wobei die Auswahl der Wege vom Transportmittel abhängig ist.
● Die Personenklasse “Bauer” tritt den Weg zu Fuß an, wogegen die Personenklasse
“Adliger” das Transportmittel “Pferd” benutzt.
● “Pestausbruch” in der Stadt
Der Weg für die Personenklasse Bauer
Der Weg für die Personenklasse Adliger
Ergebnisvergleich zwischen Klassen Bauer und Adliger
Das Ergebnis der Routensuche für
Personenklasse Bauer:
Das Ergebnis der Routensuche für
Personenklasse Adliger:
Fazit
● Eine Antwort auf die Suche nach einer Möglichkeit der Routenplanung im Rahmen eines historischen Kontextes
● Speicherung und Interpretierung der historischen Ereignisse in der Datenbank
● Eine individualisierte Routensuche durch Klassifizierung der verschiedenen Personengruppen
● Flexible und anpassbare Implementierung
● Eine mögliche Weiterentwicklung : eine dynamische Berechnung der Fortbewegungsgeschwindigkeit