Routing

Changelog

August 2023

Die Anwendungskpnfiguration lies sich unter Umständen nicht validieren, wenn keine GSS-Topics angegeben waren.

Oktober 2021

Die Anwendung wurde um die Nutzung von mehreren GSS-Topics erweitert. Dabei wurde die Konfiguration angepasst. An der Stelle, wo bisher nur ein GSS-Topic Key eingegeben wurde, kann man nun mehrere Topics mit einem passenden Label eingeben. Dieses Label wird innerhalb der Anwendung für Tooltips benutzt um den Nutzer einen Hinweis auf die verwendete Suche zu geben.

Nach einem Update musss ein eventuell vorher genutzter Key in der geänderten Konfiguration neu eingetragen werden.

Mai 2021

Routing-Komponenten wurden in den cardo-Kern übernommen sowie modernisiert und die Anwendung auf die Nutzung dieser Komponenten umgestellt.

Allgemeines

Die Anwendung wird zum Erstellen von Routen genutzt.

Es lassen sich Wegpunkte auf der Karte als auch über einen Suchprovider wie Gazeteer (und weitere) einfügen. Es besteht die Möglichkeit bestimmte, in der Datenbank hinterlegte, Gebiete bei der Routenerstellung zu umgehen.

weitere Informationen

Routing App

Anwendungseinstellungen

Allgemein

  • Datenbankverbindung
    • Hier wird der Verbindungsstring zur genutzten Datenbank hinterlegt.
  • Datenbankschema
    • Dieses Schema wird von der Anwendung genutzt.
  • Epsg-Code des Routing-Netzwerks
    • Dieser Code wird benötigt um eventuelle Transformationen zwischen den eingegebenen Geometrien und dem Routing-Netzwerk durchzuführen.
  • Maximale Punkt-Wegenetz-Abweichung
    • Ein manuell gesetzter oder per Suche ermittelter Wegpunkt wird an das Wegenetz eingerastet (neue Geometrie ermittelt) insofern sich innerhalb den angegebenen Entfernung ein passender Punkt auf dem Wegenetz befindet.
  • GSS
    • Hier kann man, sofern man über die Anwendung GSS verfügt ein GSS-Topic hinterlegen um darüber Routenpunkte auszuwählen

Bewegungsarten

In diesem Abschnitt lassen sich Bewegungsarten definieren, welche innerhalb der Anwendung für das Routing genutzt werden können.

  • Titel
    • In der Anwednung wird zur Auswahl der Bewegungsart dieser Titel gezeigt
  • Art
    • Die Art der Fortbewegung. Hier werden typische Fortbewegungsarten aufgelistet. Diese werden für die Darstellung von Piktogrammen genutzt.
  • Id der Bewegungsart
    • Hier wird die Id der Bewegungsart hinterlegt, wie sie in der Tabelle rt_vehicle hinterlegt ist
    • Auf diese ID wird bei der Routingabfrage zugegriffen
    • wird keine ID angegeben, so werden der angegebenen Art entsprechende IDs genutzt (Wert vor der Klammer entspricht einer ID in rt_vehicle):
      • Walking (Laufen)
      • Cycling (Radfahren)
      • Skiing (Skilaufen)
      • Riding (Reiten)
      • WheelChair (Rollstuhl)
      • PublicTransport (Öffentliche Verkehrsmittel)
      • Car (Auto)
  • Einbahnstraßen vermeiden
    • Diese Einstellung gibt an ob das Routing auch entgegen einer Einbahnstraße erfolgen kann.

cardo Einstellungen

Für die Darstellungen der Route werden globale Symbole genutzt. Damit kann man sich die Farbgebung und Symbolik frei wählen.

Sind keine Symbole in den Cardo-Einstellungen angegeben, werden Standard-Werte genutzt. Es ist also nicht zwingend erforderlich Symbole anzugeben.

Teilweise werden Icons der Schriftart FontAwesome verwendet. Die passende Unicode Darstellung ist hier zu finden. Beachten Sie bitte die folgende Konvertierung am Beispiel fa-archive: "" -> "\uf187". Damit lässt sich das Zeichen in der Anwendung als Text verwenden.

Damit die Routensymbolik im PDF-Ausdruck entsprechend der Darstellung in der Cardo Anwendung erscheint, ist es erforderlich dass auf dem Server die Schriftart FontAwesome (ab v4.7) installiert ist. (Dabei sollte darauf geachtet werden dass die Schriftart für alle Benutzer installiert wird)

Im Folgenden sind die Symbole und mögliche Wertebeispiele angegeben:

  • Routing.SuccessfulRoutedTrack

    • Ein erfolgreich gerouteter Streckenabschnitt
      IduIT.Core.Mapping.Style.GeometryStyleUtil.line(7, 'rgba(35, 105, 210, 0.8)')
      
  • Routing.UnsuccessfulRoutedTrack

    • Ein Streckabschnitt, welcher nicht geroutet werden konnte
      IduIT.Core.Mapping.Style.GeometryStyleUtil.line(5, 'rgba(255, 0, 0, 1.0)')
      
  • Routing.UnroutedTrack

    • Ein nicht gerouteter Streckenabschnitt (dieser entsteht direkt nach dem Setzen eines Punktes falls davor schon ein weiterer Punkt besteht)
      IduIT.Core.Mapping.Style.GeometryStyleUtil.line(5, 'rgba(255, 0, 0, 1.0)')
      
  • Routing.PreviewTrack

    • Ein möglicher neuer Streckenabschnitt welcher beim Ziehen von Wegpunkten als Vorschau dargestellt wird
      IduIT.Core.Mapping.Style.GeometryStyleUtil.line(7, 'rgba(35, 105, 210, 0.8)')
      
  • Routing.PreObsoluteTrack

    • Ein bestehender Streckenabschnitt welcher durch das Ziehen von Wegpunkten mit der Vorschau ersetzt wird
      IduIT.Core.Mapping.Style.GeometryStyleUtil.line(7, 'rgba(150, 150, 150, 0.2)')
      
  • Routing.HighlightedTrack

    • Ein hervorgehobener Streckenabschnitt. Ein Abschnitt wird hervorgehoben wenn der Pointer über das tabellarische Pendant des Abschnitts bewegt wird
      IduIT.Core.Mapping.Style.GeometryStyleUtil.line(7, 'rgba(255, 165, 0, 0.8)')
      
  • Routing.RouteStartMarker

    • Der Marker für den Start der Route.
      IduIT.Core.Mapping.Style.GeometryStyleUtil.textLabel({
      							text: '\uf276',
      							fontFamily: 'FontAwesome',
      							fontSize: 20,
      							baseline: IduIT.Core.Mapping.Style.ELabelTextBaseline.Bottom,
      							color: 'green'
      						})
      
  • Routing.RouteStopoverMarker

    • Der Marker für Zwischenziele.
      IduIT.Core.Mapping.Style.GeometryStyleUtil.textLabel({
      							text: '\uf041',
      							fontFamily: 'FontAwesome',
      							fontSize: 20,
      							baseline: IduIT.Core.Mapping.Style.ELabelTextBaseline.Bottom,
      							color: 'blue'
      						})
      
  • Routing.RouteTargetMarker

    • Der Marker für das Ziel der Route.
      IduIT.Core.Mapping.Style.GeometryStyleUtil.textLabel({
      							text: '\uf276',
      							fontFamily: 'FontAwesome',
      							fontSize: 20,
      							baseline: IduIT.Core.Mapping.Style.ELabelTextBaseline.Bottom,
      							color: 'orange'
      						})
      
  • Routing.RouteViaMarker

    • Der Marker für Vias (Punkte die durch Ziehen an der Route entstehen)
      //In einem Array werden zwei Styles mitgegeben. Dieses Beispiel hat zur Folge, dass ein dunkler Punkt unter einem hellen Punkt liegt.
      //Dies bedingt die Reihenfolge der Elemente im Array. Das Element welches zuerst im Array liegt, wird zuerst gerendert. Folgeelemente werden über diesem Element gerendert.
      //In diesem Beispiel erscheint ein heller Punkt mit dunklem Rand, da der dunkle Punkt darunter einen größeren Radius hat.
      [IduIT.Core.Mapping.Style.GeometryStyleUtil.point(5, 'rgba(0,0,0, 0.5)'), IduIT.Core.Mapping.Style.GeometryStyleUtil.point(4, 'rgba(255,255,255, 1.0)')]
      
  • Routing.RouteHighlightMarker

    • Ein Marker der erscheint, wenn sich der Mauszeiger auf der Route befindet, oder wenn der Mauszeiger über einen Wegpunkt in der tabellarischen Ansicht bewegt wird.
      IduIT.Core.Mapping.Style.GeometryStyleUtil.point(10, 'rgba(255,100,200, 0.5)')
      
  • Routing.RouteWaypointDropIcon

    • Mit diesem Symbol wird indiziert dass gerade eine Auswahl eines Wegpunktes auf der Karte stattfindet.
      IduIT.Core.Mapping.Style.GeometryStyleUtil.textLabel({
      							text: '\uf041',
      							fontFamily: 'FontAwesome',
      							fontSize: 20,
      							baseline: IduIT.Core.Mapping.Style.ELabelTextBaseline.Bottom,
      							color: 'gray'
      						})
      
  • Routing.LabelStyleFunction

    • Diese Funktion wird für die Labeldarstellung genutzt. Im Gegensatz zu den bisherigen Symbolen wird hier eine Funktion verwendet.
      function styleFunc(resolution)
      						{
      							return [IduIT.Core.Mapping.Style.GeometryStyleUtil.textLabel({
      								color: "green",
      								text: this.get("label") ? this.get("label").toString() : "",
      								fontSize: 14,
      								offsetX: 15,
      								offsetY: -10,
      								align: IduIT.Core.Mapping.Style.ELabelTextAlign.Left
      							})];
      						}
      
  • Routing.SourceRouteCompoundTrackStyle

    • Ein Streckenabschnitt "Originalverlauf". Wird zur optischen Unterscheidung zwischen originaler (geladener) Strecke und neu gerouteter bzw. bearbeiteter Strecke genutzt.
      IduIT.Core.Mapping.Style.GeometryStyleUtil.line(7, 'rgba(0, 255, 140, 0.5)')
      
  • Routing.Routing.WorkingRouteCompoundTrackStyle

    • Ein Streckenabschnitt "Bearbeiteter Verlauf". Wird zur optischen Unterscheidung zwischen originaler (geladener) Strecke und neu gerouteter bzw. bearbeiteter Strecke genutzt.
      IduIT.Core.Mapping.Style.GeometryStyleUtil.line(7, 'rgba(255, 160, 0, 0.5)')
      
  • Routing.UniqueSourceCompoundSectionTrackStyle

    • Zur Anzeige von Streckenabschnitten (Kanten) welche nur im unbearbeiteten Verlauf der Route vorhanden sind, jedoch nicht im bearbeiteten Verlauf.
      IduIT.Core.Mapping.Style.GeometryStyleUtil.line(7, 'rgba(0, 255, 140, 0.5)')
      
  • Routing.UniqueWorkingCompoundSectionTrackStyle

    • Zur Anzeige von Streckenabschnitten (Kanten) welche nur im bearbeiteten (neu gerouteten) Verlauf der Route vorhanden sind, jedoch nicht im Originalverlauf.
      IduIT.Core.Mapping.Style.GeometryStyleUtil.line(7, 'rgba(255, 160, 0, 0.5)')
      
  • Routing.Routing.BrokenSequenceRouteCompoundSectionTrackStyle

    • Darstellung der "Sequenzbrecher"-Kanten. Diese entstehen, wenn sie zwar in Original- und bearbeiteter Route vorhanden sind, aber Anfangs- und Endpunkte u.U. vertauscht sind. Dies lässt darauf schließen, dass jene Abschnitte aus unterschiedlichen Richtungen befahren werden.
      IduIT.Core.Mapping.Style.GeometryStyleUtil.line(7, 'rgba(160, 0, 255, 0.5)')
      

Ausschlußgebiete definieren

Die Erstellung der Ausschlußgebiete ist nicht Teil der Anwendung. Das Schema besitzt zwei Tabellen "rt_restrictioncategories" und "rt_restrictedareas".

Um Gebiete und Kategorien zu erstellen, empfiehlt sich die Nutzung des Daten-Browsers. Zu beachten ist, das zuerst mindestens eine Kategorie erstellt werden muss.

Die Tabelle "rt_restrictedareas" besitzt einen Fremdschlüssel auf die Tabelle mit den Kategorien. Danach lassen sich Geometrien erstellen und einer Kategorie zuweisen.

Die Kategorien werden dann beim nächsten Starten der Anwendung geladen und können beliebig selektiert werden.

Weitere Informationen: Ausschlussgebiete und Kategorien erstellen

Wegpunkte über Suchprovider

Meistens liefert ein Ergebnis keine Punktgeometrie. Dafür wird ein gewichteter Punkt innerhalb dieser Geometrie gewählt und übernommen.

SQL Update durch die Anwendung

Die Anwendung selbst erstellt beim Registrieren im cardo ein Schema, entsprechend der Einstellung "Datenbankschema", sofern dieses noch nicht besteht.

Abfragebeispiele für den Datenimport aus einem bestehenden Routing-Schema


Zuletzt geändert: 21.03.2024 09:46:22 (erstmals erstellt 11.08.2023)