Deep Dive 177 –

Navigation mit Robin Boldt

11.04.2025

Shownotes

In diesem Deep Dive geht es um eine Art von Produkt, das so gut wie alle regelmäßig nutzen. Egal ob im Auto, zu Fuß, auf dem Fahrrad oder Motorrad – Navigationssysteme sind aus unserem modernen Alltag kaum mehr wegzudenken.

Dennis und Jan haben in dieser Folge Besuch von Robin Boldt im Podcast-Studio. Robin ist der Gründer von Kurviger, einer Navigations-App speziell für Motorradfahrer:innen. Das macht ihn zum idealen Partner für ein Gespräch über die Entwicklung maßgeschneiderter Routenführung.

Robin berichtet, wie Kurviger Open-Source-Software wie GraphHopper und -Datenquellen wie OpenStreetMap nutzt und diese mit eigenen Daten und Berechnungen anreichert, um so eine Navigation basierend auf individuellen Wünschen zu ermöglichen.

Außerdem sprechen wir mit Robin über die Herausforderungen im UX-Design der App und wie man Ablenkungen während der Fahrt verhindert. Welche technischen Hürden Navigations-Apps vom Offline-Support bis zur Sprachausgabe sonst noch überwinden müssen, erfahrt ihr in dieser Folge.

/transkript/programmierbar/deep-dive-177-navigation-mit-robin-boldt
Jan
Hallo und herzlich willkommen zu einem neuen Deep Dive hier in der programmier.bar, heute in einem reinen virtuellen Studio. Mir gegenüber in dem, was kann ich, wie sagt man das, in der mittleren Ecke von diesem virtuellen Screen sitzt der Dennis. Moin Dennis.
Dennis
Hallo Jan. Eine mittlere Ecke musst Du noch mal definieren für mich. Das das kann ich ja nicht ganz nachvollziehen, wo ich auf deinem Screen bin. Aber
Jan
In der Mitte zumindest. In der Schön,
Dennis
schön, dass ich hier bin hier sein darf.
Jan
Schön, dass ich hier bin hier sein darf.
Dennis
Auch schön, dass ich
Jan
hier bin. Das das können wir eigentlich jetzt immer als Intro machen.
Dennis
Schön, dass ich hier bin.
Jan
Schön, dass ich auch hier bin. Cool. Wir wollen heute über ein Thema reden, was glaub ich alle da draußen irgendwie doch jeden Tag begleitet. Ich kann zumindest sagen, dass es mich auf quasi jeder meiner Autofahrten begleitet, weil ich fast immer, wenn ich das Auto benutze, das Navi anmach, zu gucken, wo fahr ich denn am besten lang und wo ist Stau und wie komm ich am besten da irgendwie hin und muss zwischendrin was laden und keine Ahnung, was alles. Wir wollen nämlich heute einmal über Navigation und Routenführung sprechen und was sich da alles so dahinter verbirgt. Und weil weder Dennis noch ich schon mal 'n Navi gebaut haben, haben wir uns jemanden eingeladen, der das schon gemacht hat, wie sich das so gehört und der Programmier war. Und wir haben den Robin dabei, den Robin von Kurvica. Hallo Robin.
Robin
Hi Jan. Schön, dass ich da sein darf.
Jan
Schön, dass Du da sein kannst und willst. Schön, dass Du da bist. Robin, vielleicht für alle da draußen, bevor wir anfangen, einmal der 30 Sekunden Pitch, was kurviger ist.
Robin
Kurviger Schnitt Motorrad Routenplanung und Navigationsapp. Man kann also man kann sich's vorstellen quasi wie Komoot für Motorradfahrer. Also man kann schöne kurvige Strecken planen, die Spaß machen zu fahren, kann die dann später bei uns in der Cloud mit der Community teilen et cetera. Also ich sag mal, ähnlich wie man's von Komoot oder vielleicht auch von Google Maps kennt, genau.
Jan
Und der Clou dabei ist, dass ihr eben Routenführung macht, extra angepasst für Motorradfahrer.
Robin
Genau, genau. Also als Motorradfahrer möchtest Du eben auf möglichst schönen kurvigen Strecken fahren. Du möchtest nicht so gern über Autobahn fahren, nicht so gern durch die Stadt fahren. Und beim Motorradfahren gilt eigentlich, dass der Weg das Ziel ist. Und anders wie jetzt zum Beispiel, wenn Du mitm Auto irgendwo hinfährst, möchtest Du nicht möglichst schnell ankommen, sondern eigentlich möcht ich eine möglichst schöne Zeit aufm Motorrad verbringen. Genau.
Jan
Dennis hast Du eigentlich 'n Motorradführerschein?
Dennis
Was denkst Du?
Jan
Ich würd es dir zutrauen.
Dennis
Danke, aber ich habe keinen, nein.
Jan
Auch nicht son Hundertfünfundzwanziger oder so was mal gemacht?
Dennis
Nee, nee, nee.
Robin
Nee, nee. Nee, nee.
Dennis
Ist mir alles zu gefährlich.
Jan
Dieses Wir haben tatsächlich versucht, für diese Folge einen bei uns im Team aufzutreiben, der vielleicht selber auch Motorrad fährt, son bisschen das authentischer machen zu können. Ich bin leider grandios daran gescheitert, Robin. Also Du musst leider mit uns beiden Vollarmateuren hier vorlieb nehmen.
Dennis
Wenn Robin denn überhaupt Motorrad fährt, vielleicht ist er einfach nur 'n Nerd, der irgendwie eine coole Website bauen wollte.
Jan
Boah, das wär jetzt 'n Meter Meter cool, wenn Rob jetzt sagt, nee, Motorrad fahre ich nicht, das das ist ja viel zu gefährlich, das machen ja nur die Irren, aber selber irgendwie die App dafür anbietet.
Robin
Na, ich würd schon sagen, dass ich irgendwo 'n Nerd bin, aber ich bin tatsächlich auch Motorradfahrer. Ich sag mal so als Grundidee von Kurviger, ich hab selber eben früher stundenlang wirklich Wegpunkte auf der Karte hin- und hergeschoben und hab mir halt irgendwann gedacht, na ja, wieso hatten eigentlich noch niemanden 'nem Computer erklärt, wie ich meine Routen plan. Es könnte man doch eigentlich viel einfacher machen. Glaubst Du, in retrospektiven habe ich deutlich mehr Zeit in Covid investiert wie in jeweils eine Routenplanung, aber egal.
Jan
Aber aber so gesamtwirtschaftlich in der Summe haben wir dadurch ganz viele andere Leute noch Zeit gespart. Also hast Du ja schon, würde ich mal sagen, 'n positiven Beitrag geleistet.
Robin
Ja, ich würd schon sagen, so für die Motorradcommunity auf jeden Fall.
Dennis
Aber Jan, obwohl ich keinen Motorradführerschein hab, hab ich tatsächlich Kurviger schon mal benutzt vorher. Denn
Jan
Fürs Fahrradfahren?
Dennis
Nee, nicht fürs Fahrradfahren, aber eine eine Kollegin von uns hatte Geburtstag und hat einen Motorradführerschein gemacht. Und wir haben ihr ein Geschenk gemacht, was ein Gutschein für, ja, was war das eigentlich? 'N Tandem Fallschirmsprung, also Du siehst da, dass Adrenalin nicht nur im Motorrad fahren, sondern auch in anderen Hobbys, die sie, dass sie sucht. Und den Weg dahin sollte sie eben auf eine schönen Strecke auf dem Motorrad machen. Und dann hab ich 'n bisschen gegoogelt und kam sehr schnell in 'n Kurviger und konnte ich einen Routenvorschlag machen und mir anzeigen lassen, wohin man denn schön fahren kann und vor allen Dingen, wie lange das dann als Motorradfahrer denn dauert, weil wir son gesamtes Wochenende geplant haben für Sie. Ja, also sprich, obwohl ich das eine, obwohl ich kein Motorradfahrer bin, bin ich tatsächlich privat schon vorher mit Kurviger in Kontakt gekommen.
Robin
Ah, sehr cool.
Dennis
Sollte das eigentlich, soll das irgend eine 2 so Die Frage hab, muss ich noch vorab, vielleicht schon mal die, irgend eine Zweideutigkeit in der Domain oder ist es wirklich auf das Motorrad an?
Robin
Also ich ich sag mal, die die Zweideutigkeit ist eigentlich nur 'n Nettobonus, muss man sagen. Okay. Ich hatt hatte ganz am Anfang tatsächlich noch einen anderen Namen und da da gab's dann jemand, der da Markenrechte eventuell an dem Namen hatten und dann mussten wir da eine Umbenennung machen. Und dann haben wir eben überlegt, na ja, was wäre denn cooler Name? Und Kurviger war 1 davon. Ich muss auch sagen, ich war überrascht, dass der Domainname noch frei war, weil eigentlich so in Retrospektive so crazy ist der jetzt nicht, dass der nicht schon mal vielleicht belegt wurde von irgendwas anderem. Aber zum Glück nicht. Ja, muss man auch mal Glück haben.
Dennis
Sehr gut.
Jan
Okay, Dennis, wenn Du's schon mal benutzt hast, dann kannst Du mir vielleicht die erste Frage beantworten. Erst mal so, Wie muss ich mir das Ganze architektonisch vorstellen? Gibt's da nur eine App? Gibt's da einen Client und einen Server? Wie ist kurviger aufgebaut? Erzähl mal was, Dennis. Das muss ja lustig.
Dennis
Also das, was ich als Nutzer sehe, ist letztendlich ein recht ähnliches Interface zu dem, was ich auf Google Maps habe. Das heißt, ich sehe eine Karte, wenn ich im Web darauf zugreife. Bin mir unsicher. Ich denke mal gehabt, ob's eine App gibt, weiß ich nicht. Hab ich wollt ja als Motorradfahrer nicht fahren. Ich hab ja nur die Planung gemacht. Die Planung habe ich an meinem Desktoprechner gemacht, von daher dort das User Interface der Webseite genutzt und letztendlich hast Du 'n Startpunkt und 'n Endpunkt von von wo nach wo Du fahren möchtest und hast dann, das unterscheidet sich dann direkt zu Google Maps, hast eben Optionen, was diese Route angeht. Gut, Google Maps hast das auch, indem Du sagen kannst, Du möchtest keine Mautstraßen fahren und willst vielleicht eine Autobahn vermeiden. Aber hier ist es eben dann zugeschnitten auf Motorradfahrer und Du kannst sagen, glaub ich, auch, wie kurvig es sein soll, ob Du, wie viel Wert Du darauf legst und es glaub, glaub ich, noch deutlich mehr Filter- und Detailmöglichkeiten, als die ich da genutzt habe.
Robin
Ja, dem hab ich nichts hinzuzufügen, super.
Jan
Wunderbar, aber wie muss ich mir das jetzt vielleicht nicht als komplett technischer Laie, aber als Navigationsleihe vorstellen? Was passiert da denn im Hintergrund? Also ich hab jetzt einen Startpunkt, ich hab einen einen Zielpunkt und ich hab diverse Parameter, ob das jetzt Mautstraße oder Autobahn oder kurviger oder was auch immer alles sein muss. Aber am Ende muss ja eine eine Strecke rausfallen, weiß ich gar nicht. Vielleicht fällt auch keine Strecke raus, vielleicht fällt nur eine Liste an Punkten raus und dann ergibt sich die Strecke irgendwie dadurch. Also was was passiert da?
Robin
Na ja, tatsächlich mehrere Sachen. Lass uns vielleicht mal ganz vorne anfangen, ja? Du gibst eine Adresse ein, weil also technisch interessiert kurviger oder die Routenplanung eigentlich die Koordinaten. Aber als Normalo kennst Du natürlich nicht die Koordinaten von allen Locations, wo Du hin möchtest, also musst Du als Erstes die Adressen zu Koordinaten auflösen. Das nennt sich Geocoding das Verfahren. Das ist quasi, kann man sich vorstellen, wie eine große Suchengine, wo alle Straßendaten et cetera eingelesen werden. Und dann wird eben versucht, auf dir deine Suchanfrage, ich sag mal, Du willst nach Berlin fahren, Du gibst Berlin ein, wird eben geguckt, okay, was könnte jetzt Berlin sein und wird Berlin zu Koordinaten aufgelöst.
Jan
Ist das ein ein Dienst, den ihr einkaufen müsst oder habt ihr da quasi so ein Adressbuch Star einmal irgendwoher bekommen und könnt das nutzen oder wo kommt das schon mal her?
Robin
Okay, also dann lass uns kurz bei den Daten anfangen. Also wir setzen überall die Open Street Map Daten ein. Denkmals werden wird auch für einige Hörer bei euch schon 'n Begriff sein. Open Street Map, kann man sagen, wie Wikipedia nur halt für Straßenkarten oder für Straßendaten, communitybasiert, wo einfach ganz viele Leute ihre Heimatgegend oder so auf 'ner Karte eintragen, sagen, hier, die Straße heißt soundso, hier ist der Bäcker, ABC, da weiß ich nicht, die Kirche und so weiter, wird eben alles dann auf der Karte eingezeichnet. Und diese Daten werden dann eingelesen von 'nem Geocoding Service und der versucht dann rauszufinden, okay, wie wichtig sind die Ergebnisse? Wie passend sind die Ergebnisse et cetera p p. Also der Versuch hier gibt's noch 'n paar andere Quellen, aber ich sag mal, das Wichtigste ist eigentlich mal die OMSet Map Daten. Geocoling ist tatsächlich der einzigste Service, den wir aktuell nicht selber horsten. Den kaufen wir tatsächlich ein. Hat eigentlich gar keinen so superspezifischen Grund. Da da muss ich sagen, da haben wir einfach ganz gute Anbieter, die die sind okay und wir versuchen zwar eigentlich sonst so ziemlich alles selber zu hosten, eben, dass auch die Nutzerdaten bei uns in Deutschland bleiben und so weiter. Bei den Anbietern ist zum Beispiel auch so, sind deutsche Firmen, da die gehen ordentlich mit den Daten da kenn ich auch die Leute dahinter und so und das passt. Genau, aber ansonsten könnte man das auch selber hosten. Also da gibt's mehrere Open Source Bibliotheken für Geocoding. Genau. Also kann man einfach in Anführungszeichen einfach hosten.
Jan
Also habt ihr am Ende eine Start- und eine Zielkoordinate und was passiert dann?
Robin
Genau, dann gehst Du mit den Start- und Zielkoordinaten gehst Du bei uns an die Routing Engine und die versucht dann, eine möglichst schöne Verbindung von diesen 2 Koordinaten zu finden. Wir verwenden für die Routenberechnung Grafhocker, ich weiß nicht, ob ob euch das was sagt, dass ich eben in der Open Source Library, die Routenplanung anbietet als als Service. Und wir haben quasi Grafhopper eben für den Motorrad Use Case stark optimiert und haben da eben lauter Verbesserungen, eigene Profile et cetera für unseren Use Case eingebaut.
Jan
Und wenn das schon Graphhopper heißt, hat das was mit Graph Datenbanken zu tun?
Robin
Gar nicht Datenbanken unbedingt, aber mit Graphen, genau. Also 'n Graph, genau so aus der theoretischen Informatik, das sind ja immer Knoten und Kanten. Und so werden eigentlich Straßennetzwerke dargestellt mit Punkten, also Knoten, die eben über Straßen, sprich Kanten verbunden sind. Die Knoten sind typischerweise Kreuzungen, wenn man's stark vereinfacht darstellt. Und dann sagt man also, Kreuzungen sind eben dann über Kanten miteinander verbunden. Und da gibt's dann eben bekannte Algorithmen, wie man die kürzeste Strecke in 'nem Graph finden kann. Klassischerweise zum Beispiel 'n Deichstra, aber es gibt auch 'n a-Stern und so weiter. Also da gibt's verschiedene Algorithmen, wie man die kürzeste Strecke rausfinden kann in 'nem Graph.
Jan
Da da musst Du mich vielleicht noch mal abholen, weil ich bin ja hier der Nichtinformatiker in der Runde und würde einmal noch gerne versuchen, besser verstehen zu wollen, was da genau passiert. Weil wenn ich mir das jetzt sehr laien hervorstell, okay, ich versteh, wie son Graph aufgebaut ist mit Knoten und Kanten, aber wie find ich denn jetzt tatsächlich die kürzeste Strecke? Und die die kürzeste Strecke ist ja auch nur eine Ausprägung von 'nem Ziel. Ich kann ja auch die die billigste Strecke oder die einfachste Strecke oder keine Ahnung, was an Anforderungen haben, aber bleiben wir jetzt mal bei der Kürzesten. Außer, dass ich da jetzt Brude Force durchgeh und versuche halt, alle möglichen Strecken zu finden und durchzuberechnen und zu vergleichen, was kann ich denn da machen, das einfach in Anführungszeichen zu berechnen?
Robin
Na ja, zum Beispiel der Extra Algorithmus oder Du kannst natürlich eine Breiten- oder eine Tiefensuche machen, das wär wahrscheinlich so das Einfachste, was Du machen kannst. Also Tiefensuche würde zum Beispiel bedeuten, Du hast deinen Startpunkt und Du biegst immer links ab, ja? Gehst so lang, bis Du nicht mehr weiterkommst, biegst immer links ab. Dann geh ich wieder zurück, dann biegst mal rechts ab und erforsch quasi sozusagen eine eine den ganzen Baum random. Dann kannst Du natürlich die Breitensuche machen und sagen, ich beweg mich wie in 'nem in 'nem Kreis meinen Punkt raus. Das ist auch so ähnlich wie der Deichstraff funktioniert. Kannst dir vorstellen, Du Du gehst quasi in 'nem Kreis auseinander deine Location und Du kannst es auch von beiden Seiten tatsächlich machen. Vom Start und vom Ziel öffnest Du quasi Kreise, die werden immer größer und am Schnittpunkt der Kreise, da ist dann quasi den kürzesten Weg gefunden. Und das Ganze lässt sich noch mal 'n bisschen verbessern mit astern nennt sich das. Da stand noch eine Heuristik. Also Heuristik bedeutet eine Abschätzung, dass Du weißt, in welche Richtung geht es tendenziell weiter? Als Stern machst Du üblicherweise, indem Du quasi die Luftliniendistanz zu deinem Ziel berechnest. Und dann siehst Du, ah, okay, der eine Punkt ist näher als der andere Punkt am Ziel. Dann geh ich lieber zu dem, der näher ist, weil dann beweg ich mich mehr in die richtige Richtung. So ist quasi das Grundprinzip an der Stelle. So kann man sich's vorstellen.
Jan
Und Und das heißt Dennis, ja? Dennis
Dennis
Zwischen diesen Punkten oder also diese Linien, nee, wie hast Du, wie wie nennt man sie offiziell?
Jan
Kanten, Kanten. Die Kanten,
Dennis
die Du hast, die haben praktisch Parameter auch. Also ist da so was dann einfach wie die Länge der Kante. Und wahrscheinlich, wenn man dann irgendwie noch Details später hat, ist, keine Ahnung, bei Google Maps, wie die Geschwindigkeit auf dieser Kante ist oder so was.
Robin
Genau, genau. Also so kann man sich's vorstellen. Und wir wir sprechen ja jetzt bisher immer nur über die kürzeste Route. Man kann sich jetzt natürlich eine Kostenfunktion für eine Kante überlegen. Die einfachste Kostenfunktion wäre zum Beispiel die Länge, aber ich kann natürlich, wenn ich die Geschwindigkeit auch noch hab, dann kann ich die schnellste Route ausrechnen, weil da mach ich eine Kostenfunktion, Geschwindigkeit, also quasi Distanz und und Zeit verrechnen und dann hab ich die Geschwindigkeit auf der Kante und dann ist das eben meine Kostenfunktion. Dann ist die kürzeste Route, in dem Fall die schnellste Route, weil meine Kostenfunktion die Geschwindigkeit ist. Und so in die Richtung kann man sich das dann eben auch bei COVIKA vorstellen, nur dass die Kostenfunktion eben noch mal bisschen komplizierter ist.
Jan
Das heißt, die Routenführung baut ja im Prinzip auf 2 Bestandteilen auf. Ihr habt die Routing Engine Grafhopper eben, die quasi die die Logik für euch ausführen kann. Und ihr braucht aber auch eine gute Ausgangslage an Daten, so, ne. Was wir grade gesagt haben, Du musst deine Kanten ja mit Metainformationen versehen über Strecke, Tempolimit. Ist das eine Mautstraße? Was kostet die? Keine Ahnung, was man sich so alles noch vorstellen kann. Und das ist ja wahrscheinlich so, ohne jetzt zu sehr in eure Betriebsgeheimnisse reingehen zu wollen, aber das ist ja das, was am Ende 'n gutes Ergebnis ausmacht. Wo bekomm ich denn so Informationen her?
Robin
Ach so, wir verwenden die OpenStreet Map Daten.
Jan
Was heißt in der OpenStreet Map, ist ist alles an diesen Metadaten auch mit hinterlegt?
Robin
Jein. Also ich sag mal, man man kann natürlich auf Basis verschiedener Daten natürlich auch was anderes berechnen. Also wenn ich zum Beispiel weiß, wie ist die Form der Straße, dann kann ich da draus berechnen, wie ist denn die Kurvigkeit dieser Straße. Also in Open Street Map steht jetzt nicht drin, sehr kurvig, wenig kurvig oder irgendwie so ähnlich. Das sind Zahlen, die müssen wir halt aus den Daten rausrechnen, aber es steht quasi implizit in OpenStreetmap drin.
Dennis
Macht ihr das ad hoc bei jeder Anfrage oder ist das einmal erstellt worden und ist praktisch hinterlegt hinter dem Datensatz?
Robin
Also wir aktualisieren unsere Daten regelmäßig und beim Import werden quasi diese wichtigen Metadaten dann berechnet. Mhm. Und wir importieren aktuell alle 2 Tage, also wir sind relativ aktuell. Glaub, wir sind da im Open Street Map Bereich gehören wir auch zu den Diensten, die relativ schnell aktualisieren. Es gibt auch andere, die nur alle paar Monate oder auch mal nur einmal im Jahr oder so was aktualisieren und das ist uns zu wenig. Also weil ich find auch das Community Thema wichtig, wenn jetzt jemand Straßendaten in Open Street Map anpasst, dass er dann eben auch möglichst schnell die Ergebnisse dann auf kurviger sieht und sagt, daher, da darf man nicht lang fahren, da darf man lang fahren, wie auch immer. Und dann kriegt man quasi auch die Community dazu, mit den OpenStreet Map Daten zu arbeiten, ja.
Jan
Da hab ich dir 2 Folgefragen zu. Wieso macht ihr das denn alle 2 Tage? Also ich mein, jetzt kann man sich viel über deutsche Bürokratie beschwert, aber so schnell werden ja Straßen in der Regel nicht neu gebaut. Oder also was was tut sich denn da an den Daten, dass das son son Datenimport überhaupt erforderlich macht? Wenn ich zurückdenke an die Zeit von Straßenkarten oder DVD Navigationssystemen, ja, die sind ja bei Weitem nicht so häufig aktualisiert worden, es hat auch irgendwie funktioniert. Was sind denn so die Art von Änderungen, auf die ihr da so abstellt, dass ihr das so oft synchronisiert?
Robin
Also wie ich grad zum Beispiel gesagt hab, wenn User von uns beispielsweise über eine gewisse Straße nicht fahren können, die legal ist oder es gibt eine Baustelle, eine Straße ist grad gesperrt, wie auch immer, dann wird das eben direkt reingeladen und die User haben dann die neueste Änderung. Klar, man kann sich jetzt streiten, ist alle 2 Tage wirklich nötig oder nicht? Ich muss sagen, ich bin tatsächlich Fan von so häufig wie möglich. Ich würde eigentlich gerne auch irgendwann wieder auf täglich gehen. Wir haben früher täglich aktualisiert. Aktuell braucht der Import eben länger als 24 Stunden, deswegen haben wir gesagt, okay, machen wir halt alle 2 Tage. Dann war die Entscheidung für uns relativ einfach. Ja, man könnte jetzt irgendwann mal wieder mehr in Serverinfrastruktur vielleicht investieren in 'n größeren Importserver, dass man dann wieder 'n bisschen schneller importieren kann oder so, dass man's täglich schafft. Aber so wie Du's sagst, also ich glaub, alle 2 Tage ist auch noch im Rahmen dessen.
Jan
Das ist eine gute Überleitung zu meiner zweiten Frage von, wenn Du jetzt sagst, das dauert länger als 4 und 2 Stunden, das laufen zu lassen. Von was für 'ner Datenmenge bespricht man denn da? Also ich weiß nicht, macht ihr das für weltweit? Gibt's Kurviger überall? Macht ihr das nur für Deutschland? Wie viel Daten kommen da denn so aus OpenStreetmap? Und und vielleicht Anschlussfrage, wie sehr freuen die sich, wenn ihr die alle 2 Tage von denen einmal komplett ladet?
Robin
Also die Frage kurz zu beantworten, Du kannst dir nur die Changesets runterladen. Du musst nicht alle Daten neu runterladen.
Jan
Okay, cool.
Robin
Das ist also an der Stelle kein Problem. Und Teil 2, Open Street Map ist seit, ich weiß gar nicht, seit 2 Jahren oder so ist das jetzt, glaub ich, hat ABS da 'n bisschen gefahndet und 'n s 3 Paket zur Verfügung gestellt, wo man die Sachen runterladen kann. Also ja, ich sag mal, ich glaub, das macht s 3 oder aws jetzt nicht so viel aus, wenn man da bisschen Daten bei denen runterlädt, ehrlich gesagt. So, jetzt hab ich den anderen Teil deiner Frage vergessen.
Jan
Die andere war, wie wie groß, also was für eine Datenmenge muss man sich denn da da vorstellen, wenn man das jetzt von OpenStreet Map holt? Und ich mein, selbst wenn ihr nur die div ladets, am Ende müsst ihr trotzdem einmal das aktualisierte Set zusammenbauen, darauf eure Rechnung zu machen und wie groß ist denn dann dieses dieses Set?
Dennis
Und welche Region deckt ihr?
Robin
Genau, genau. Also kurviger ist tatsächlich weltweit verfügbar. Also wir rechnen einfach für die ganze Welt. Bei Open Street Map, ich müsst tatsächlich jetzt kurz reingucken, aber es sind so zwischen 90 bis 100 Gigabyte, aber stark komprimiert. Also wir, OpenStreetmap stellt die Daten im PBF Format, also Protokollbuffers zur Verfügung. Und Protokollbuffers sind eben extrem effizient dadrin, grad wiederholende Sachen wie zum Beispiel Tags zu komprimieren. Tags bedeutet also in Open Street Map alle also Notes, also alle Knoten sozusagen, alle Kanten, die Waise und Relationen in Open Street Maaps sind immer Key Value Daten. Also zum Beispiel bei 'ner bei 'ner Straße hat man eben den das den Highway Key und Value ist dann zum Beispiel Primary, Motorway oder so ähnlich, wo ich dann eben die Straßenklassifizierung hab. Jetzt wiederholt sich das aber natürlich millionenfach Highway Motorway zum Beispiel. Kommt ganz, ganz oft vor und da sind eben die Protokollbaffers sind sehr, sehr effizient dadrin, diese Informationen zu komprimieren. Das heißt, unkomprimiert sind die Daten noch mal deutlich, deutlich größer. Da müsste ich jetzt wirklich kurz nachgucken, weil das hab ich nicht im Kopf.
Jan
Ja, das ist ja ist ja okay. Ich mein, 100 Kilowatt ist ja schon mal eine Größenordnung, mit der man was anfangen kann,
Robin
ja. Genau. Also ich schau grad nach, hier steht jetzt grad 80 Gigabyte aktuell und Ist
Jan
auch schon sportlich.
Robin
Unkomprimiert als XML sind's 2 Terabyte circa. Also
Jan
Okay, also das ist richtig gut komprimiert. Aber den Faktor 20 ja dann quasi.
Dennis
Und diese Changesets sind wie groß ungefähr?
Robin
Kann ich dir nicht mal sagen, weiß ich nicht. Also die müsst ich jetzt auch nachgucken, aber die sind jetzt nicht so groß für einen Tag. Und das mal 100 Megabyte oder so.
Dennis
Müsst ihr dann, also arbeitet ihr dann auch auf dem Changeset, also der der Import, der stattfindet? Importiert ihr praktisch nur die Änderung oder appliziert ihr die Änderung und rechnet alles neu?
Robin
Wir rechnen alles neu.
Dennis
Okay.
Robin
Weil also es ist ja auch 'n bisschen schwierig, wenn Du jetzt nur die Änderung hast. Wenn sich dadurch jetzt eine Straße ändert, hat es ja teilweise auch Folgeänderungen für andere Straßen und so weiter. Deswegen ist sone teilweise Änderung gar nicht so einfach.
Dennis
Ja, okay. Das heißt, die Grunddaten werden wahrscheinlich, der ist wahrscheinlich relativ schnell, das Change Chat einzuimportieren, aber dann die neue Berechnung aller eurer spezifischen Daten. Das ist das, was 'n bisschen aufwendiger ist dann.
Robin
Genau, genau. Also wie gesagt, zur Größenordnung anderthalb, knappe 2 Tage. Ich brauch das grad.
Jan
Na, ich hatte in meinem vorherigen Leben viel mit Logistik und Routenberechnung und so was da zu tun. Und wir hatten immer son bisschen den Struggle, dass da viel normalisiert werden muss, wenn man grade mit unterschiedlichen Ländern halt arbeitet, ne. Ist das was, was OpenStreetmap für euch schon sehr gut löst oder ist das was, wo ihr tatsächlich für, ich sag mal, die Märkte, wo ihr sehr präsent sein wollt, immer noch son bisschen eure eure Routenbewertung, euren Algorithmus noch son bisschen anpassen wollt mit oder müsst mit na ja, was ist denn der Unterschied jetzt in Deutschland, ne, zwischen 'ner Landstraße und 'ner Autobahn und was macht das wirklich aus? Und na das das heißt ja in in allen Ländern irgendwie anders und hat in jedem Land irgendwie andere Charakteristika, wie sich so diese Straßen unterscheiden. Ist das eine eine Challenge für euch oder ist das 'n gelöstes Problem?
Robin
Also ich würd mal sagen, wir haben das mittlerweile relativ gut gelöst, aber es ist definitiv 'n Problem. Und Waschbär OpenStreetmap insbesondere das Problem, dass halt eine Community mitmacht. Also es sind über 1000000 Leute, die da beigetragen haben. Und ich sag mal so, jeder trägt halt mal so bisschen ein, wie er wie er meint, dass es richtig ist. Und es gibt auch, ich sag mal, innerhalb der Community mehrere Ströme. Manche sagen, es sollte so eingetragen werden, andere finden, es sollte anders eingetragen werden. Und wir als Routing Engine müssen halt einfach damit klarkommen und gucken, wie was machen wir draus? Wir wir sehen halt diese Key Value Tags und müssen uns überlegen, okay, was meint oder was bedeutet das wohl? Was ist diese Straße dann wohl befahrbar oder nicht? Ist diese Straße wohl schön oder nicht? Und da müssen wir dann schon auch bisschen raten manchmal.
Jan
Okay. Wieder son bisschen zurück zu der insgesamt Architektur zu kommen. Das Ergebnis der Routenführung ist aber erst mal was. Eine eine Menge an an Punkten, eine Menge an an Fahranweisungen, eine komische geplottete Linie. Was kommt denn aus diesem Routing aus dieser Routing Engine raus?
Robin
Genau, also typischerweise, ich schätze auch nicht nur bei Grafhopper Source, sondern auch bei anderen Routing Engines kommt üblicherweise die Linie raus, die Du fahren sollst. Fahranweisungen, dass Du weißt, okay, an diesem Punkt rechts abbiegen, an diesem Punkt links abbiegen. Da dritte Auswahl am Preisverkehr. Und noch son paar Metadaten, so was zum Beispiel wie, wie stand die erlaubte Geschwindigkeit entlang der Route, dass Du eben dem User das auch anzeigen kannst. Das scannt er wahrscheinlich auch von von typischen Navis, dass eben dran steht, hier ist 70, da ist 100 und so weiter. Genau und solche Metadaten kommen eben dann auch noch zusätzlich raus.
Jan
Und jetzt gibt es ja wahrscheinlich 2 Arten von Clients. So, der eine ist ist im Web für das, was Dennis auch so gemacht hat. Ich guck mir mal sone Strecke an und entweder ich speicher sie in meinem Kurviger Konto oder ich druck sie mir einfach aus oder ich will sie einfach nur mal sehen und fahr sie dann so aus Memory quasi so selbstständig ab, ja, wenn es vielleicht eine Gegend ist, wo ich mich auch 'n bisschen ausgehen. Und der andere Client ist ja wahrscheinlich dann eher so auf dem Gerät für, wenn ich wirklich am Fahren und unterwegs bin. Und ihr bedient ja auch beides davon.
Robin
Korrekt. Das heißt, genau.
Jan
Ihr müsst ja nicht nur eine Webseite mit schöner Kartenansicht bauen, die das alles rendern kann, was Du gerade gesagt hast, einmal so statisch raus, sondern ihr braucht ja auch ein ein Mobile Client. Und da ist natürlich die allererste technische Frage, weil das ja auch son bisschen unser Background ist, wie habt ihr denn euer Mobile Client gebaut?
Robin
Wir verwenden Capacital. Ich weiß nicht, ob euch das was sagt. Mhm. Das ist eben 'n Framework, mit dem man Webseiten relativ einfach als, ich sag mal, halbwegs Native App aufs Gerät bringen kann und haben da dann auch eine geteilte Codebase tatsächlich von unserer Webseite und der Routenplanungsansicht bei uns in der App. Also wenn Du im Browser in den Mobilmodus gehst oder mit deinem Smartphone auf com gehst, die Webseite aufrufst, dann hast Du quasi nahezu die identische Ansicht von unserer App. Erst mal so, dass wir möglichst wenig Codedupletten haben, haben wir uns daher dafür entschieden. Und dann kannst Du in die Navigation abspringen und die Navigation selber, da verwenden wir für die fürs Kartenrendering Map Libre. Ich weiß nicht, ob euch Map Libre was sagt. Das ist quasi vor Sagt euch Mapbox was? Ja. Ja. Okay und also Mapbox hat vor einigen Jahren Die waren ja früher mega Open Source mäßig drauf und hatten eine richtig coole Open Source Community Und die haben sich vor einigen Jahren entschieden, den Closed Source Weg zu gehen. Und aus deshalb hat sich Map Bleprek quasi gegründet, die dann den letzten Open Source Stand von Mapbox quasi weiter Open Source geführt haben. Sind jetzt auch mittlerweile große Sponsoren drin, zum Beispiel auch AWS, Meta und so weiter, die da Map Libre eben entsprechend sponsoren. Und wir verwenden Map Libre als Karten Rendering Engine für die Navigation und verwenden dann beziehungsweise das warten wir tatsächlich auch selber. Von Map Libri gibt's Navigation, also quasi Navigation, die wir dann noch verwenden, die Navigation dann bei uns aufm Gerät durchzuführen sozusagen.
Jan
Na cool, das heißt, da ist schon wirklich viel da, was man benutzen kann. Und man muss gar nicht so dieses, ich sag mal, in welchem Moment zeige ich jetzt welche Fahranweisungen an und und so was. Das das ist quasi schon für euch?
Robin
Genau. Es funktioniert mittlerweile mit dem mit der Navigation von Map Libre, die wir da verwenden, korrekt. Aber wie gesagt, wir warten die auch. Also wir kümmern uns mittlerweile auch dadrum, dass die funktioniert.
Jan
Und ist das nur Logik, die da aus dem library rauskommt oder ist das auch UI? Weil ich kann mir vorstellen so, ich mein, nichts gegen unsere Arbeit, Dennis, aber am Ende machen wir Spiele so. Dennis gut gut schon ganz kritisch, was jetzt der zweite Teil der
Dennis
Ist mit der
Jan
der Aussage. Aber ich kann mir vorstellen, dass so ein ein UX, ein UI für für Navi Software, die dafür gemacht ist, im Zweifelsfall auch während der Fahrt vielleicht benutzt zu werden, ja, hat ja vielleicht noch mal sonen anderen Anspruch an Lesbarkeit, an Buttongröße, an Touch Targets, an was weiß ich nicht, alles generell so Simplicity eben. Ist das ist das für euch 'n Punkt oder ist da auch einfach out of the box schon alles richtig in Anführungszeichen?
Robin
Na ja, also tatsächlich ist weder die eigentliche Navigationslogik noch die UI Logik standardmäßig richtig. Also wir haben noch mal unsere eigene Schicht für die Logik und wir haben tatsächlich unsere komplett eigene UI aus genau den von dir genannten Gründen. Also insbesondere eben beim Motorradfahren kommt ja noch das Thema dazu durchaus Handschuhe an. Dann wird die Bedienung noch deutlich schwieriger. Muss man gucken, okay, Buttons möglich groß gestalten, Abstand zwischen den Buttons, große Texte. Wenn man eben grad auch wenn die Sonne draufscheint aufs Display, lassen sich Dinge eben tendenziell schlecht lesen. Da muss man natürlich schon 'n bisschen was machen, was jetzt Ich sag mal, wenn Du unsere NaviUI in die Hand nimmst und's neben Google Maps hältst, wunderst dich her, wieso's denn, die Texte ist so groß und irgendwie Es wirkt alles 'n bisschen klobig, aber muss es halt sein, damit Du's während dem Motorradfahren eben entsprechend gut bedienen und und auch lesen kannst.
Dennis
Wenn ich es richtig gesehen habe, ist ja vielleicht auch 'n Unterschied son bisschen, ihr seid ja, glaub ich, relativ flexibel auch, was irgendwie den Export dann angeht, ne. Also weil ich glaub, es gibt dann beim Motorradfahren viele eigene Geräte, die irgendwie dafür gemacht sind, also irgendwie Motorradnervies und so was, wo die Hardware vielleicht 'n bisschen und nicht jeder sich sein Smartphone vorne irgendwie dran schraubt. Das heißt, da ist auch einfach eine hohe Kompatibilität zu anderen Diensten, die ihr da bereitstellt?
Robin
Ja, genau. Also ich sag mal, das Standardaustauschformat in dem Bereich ist eigentlich GPX. Also wir haben GPX Export, aber wir haben auch noch viele andere Spezialexporte. Also wir haben son Spezial TomTom Format. Wir haben noch diverse andere Spezialformate von anderen Navi Softwares, genau.
Jan
Okay. Wie gut ist ist so was dokumentiert oder muss man sich dann erst mal hinsetzen und so die die TomTom Dateien, dass man da irgendwie was hin exportieren kann?
Robin
Also die TomTom Dateien, die sind tatsächlich mittlerweile so communitymäßig ganz gut dokumentiert. Und ich sag mal, die sind relativ trivial tatsächlich, diese TomTom Dateien. Das ist im Endeffekt 'n CSV mit Koordinaten drin. Da muss man nicht viel an der Stelle, außer das Encoding, weil die benutzen irgend son komisches Encoding. Da muss man bisschen rumspielen, aber da kommt man dann auch drauf mit der Zeit. Und GPX ist leider, ist ist ja 'n total offenes Format, offener Standard, wird halt nur von jedem anders implementiert. Also was bedeutet das jetzt, was in der Datei steht? Das interpretiert wieder jeder anders und dann macht auch jedes Navi damit was anderes. Also zum Beispiel Garmin oder TomTom, die haben ja jeweils ihre eigenen Daten und zum Beispiel keine OpenStreet Map Daten. Und die Übertragung funktioniert für große Straßen ganz gut, aber ich sag mal grad son kleiner Feldweg. Da ist noch mal die Frage, ja, Open Street Map sagt zum Beispiel, darf ich durchfahren, Garmin sagt, darf ich nicht durchfahren und so. Und dann kommen da schon Unterschiede zustande, genau. Also wir empfehlen auch jedem, verwende unsere App. Mhm. Aber es gibt natürlich Leute, die haben sich son Navi gekauft und wollen das jetzt natürlich auch verwenden. Mhm. Anderer Trend, den man grad aber auch sieht, sind Android Auto beziehungsweise Apple Carplay Tablets, die man sich ans Smartphone ans ans Motorrad schraubt. Quasi 'n relativ einfaches Tablet so, 'n großes Screen, meistens wassergeschützt, kann nicht kaputtgehen durch Vibration und dann kann man eben das Smartphone in der Tasche lassen. Und das ist son ganz guter Kompromiss, der grad eigentlich von immer mehr Leuten eingesetzt wird. Und man findet auch mittlerweile mehr Hersteller, die eben das direkt ins Infotainment vom Motorrad einbauen.
Dennis
Okay. Das heißt, das kann eure App aber mit AirPlay kompatibel Also Android AirPlay. AirPlay. Sorry, heute. Ja, Android Auto oder CarPlay.
Robin
Ja, uns unsere App ist aktuell Android Auto Fake und je nachdem, wann der Podcast released, wird eventuell auch schon Carplay. Schauen wir
Jan
mal. Okay.
Robin
Sehr gut.
Dennis
Da ist ja dann wahrscheinlich schon noch mal 'n ganz anderes Ding, Ding. Oder also kannst Du da mit Capacitor irgendwie eine Webview anzeigen, wenn Du eine Navi App bist?
Robin
Nee, also Webview ist komplett verboten Ja. Auf den auf den Geräten und also ist bei uns auch nur die Routenplanungsansicht. Die Navigation läuft komplett außerhalb von. Die ist wirklich komplett nativ.
Jan
Mhm.
Robin
Während die Routenplanungsansicht mit läuft. Und also ist echt witzig, Android Auto und Apple Carplay ist 'n komplett eigenes Paradigma. Also man kann zum Beispiel keine UIs bauen, so wie man das standardmäßig kennt, sondern es gibt, also bei Android Auto heißt es eben Screens und ich mein, bei Carplay heißt's Templates. Da gibt's eben fertige Dinge, die man befüllen kann. Man kann sagen, hier mach mal da bitte den Button hin. Welche Farbe der Button hat, kann man manchmal noch bestimmen, wie groß der ist und so weiter, ne. Da kommt man schon so an die Grenzen, weil die erlauben einem wirklich nur ganz wenige Dinge einzustellen, eben weil's auch dieses ganze Thema geht. Also Du darfst natürlich den Fahrer nicht ablenken und deswegen stränken die dich schon maximal ein. Und das einzigste, wo Du eben relativ frei bist, ist auf der Karte, also dass quasi die Karte selber dann auf 'nem Canvas rendern sozusagen und der wird dann eben auf das Gerät gestreamt. Und ja, also wir hatten echt mit Google Play hatten wir son bisschen zu kämpfen, weil die ziemlich hart reviewen, was was Android Auto angeht, weil die da haben haben halt ihre Guidelines und die werden dann entsprechend frei von denen ausgelegt. Und dann hängt man da teilweise in irgendwelchen Review Schleifen und ja, deswegen gönnen wir leider auch nicht alle Funktionen, die wir zum Beispiel uns in der Navigation üblicherweise eingebaut haben, in Android Auto oder einbauen, weil wir einfach zu stark eingeschränkt sind von von den Templates und von den Möglichkeiten.
Jan
Mhm. Gibt es jenseits von Android Auto und Carplay allein bei der App noch andere Unterschiede zu so klassischen Apps? Also ich kann mir vorstellen, weiß nicht, Navigation, Du fährst so durch Feld und Wiesn und hast vielleicht auch nicht immer Internetabdeckung. Ist ist das was, mit dem ihr zu kämpfen habt oder ist so, na ja, sobald die Route einmal am Anfang runtergeladen ist, braucht ihr nichts mehr oder was sind noch andere Challenges, die euch quasi im echten Einsatz begegnen?
Robin
Ja, also dieses Offline Thema ist mit Sicherheit 'n Thema, was uns beschäftigt. Also wir machen das so, dass quasi, wenn Du die Route am Anfang lädst, dann werden eben die Daten für die Route runtergeladen, sodass wenn Du die eben fährst, hast Du kein Problem, auch ohne Internet. Aber wenn Das
Jan
heißt, ganz kurze Unterbrechung. Ihr ladet nicht nur die Route runter im Sinne von dem Pfad, sondern ihr ladet auch alles, was ihr braucht, die Map teils darzustellen unterwegs?
Robin
Ja, genau.
Jan
Okay.
Robin
Mhm. Und wenn Du aber von der Route abfährst, dann brauchen wir eben Internet, das entsprechend wieder neu zu berechnen. Also sowohl die Route als auch die Karten dann beziehungsweise Du kannst bei uns auch so Art Kartenpakete runterladen, dass Du kannst den Bereich auf der Karte auswählen und sagen, dafür möcht ich jetzt zum Beispiel einfach alle Karten runterladen. Dann hast Du die einfach safe, aber für die Routenplanung selber brauchen wir aktuell noch Internet, ja.
Jan
Wie viel wie viel Speicher braucht das? Also ich ich weiß nicht, wenn ich mir jetzt so hier meinen meinen Landkreis, meine nähere Umgebung irgendwie mal runterladen wollen würde, ist es viel?
Robin
Na ja, definiäre Umgebung und definiäre viel. Also aber ich sag mal so, für für Deutschland bist Du schon bei 'n paar Gigabyte. Also ich schätze eine super-, superviel, also ich würd sagen Deutschland. Aber ich müsste's mal noch mal testen, wo wir grad sind, aber ich schätze mal vielleicht 4 Gigabyte für Deutschland oder so.
Jan
Okay, aber das ist ja auf heutigen Geräten auch nicht mehr viel. Also selbst wenn Du jetzt nur 64 Gigabyte oder so was hast, das kriegst Du ja locker irgendwo noch noch unter dann. Ich kann mir vorstellen, dass es ja vielleicht auch, weiß nicht, 'n Performancethema ist. So kommt dann meine Route schneller? Krieg ich mein Ergebnis schneller, wenn halt nicht mehr die ganzen Kartenbestandteile auch noch mit übertragen werden müssen?
Robin
Nee, also tatsächlich ist von Performance eigentlich eher am besten, wenn wenn Du deine Routen, also quasi auch die Kartendaten einfach runterladen lässt, weil Also ich mein, Deutschland geht grad noch, aber die ganzen Kartendaten werden eben dann auch lokal gehalten. Die werden eben lokal in 'ner Datenbank gehalten. Und wenn Du da irgendwie die halbe Welt runterlädst, dann ist das eher auf deinem Gerät bisschen problematisch, weil dann die Datenbank viel zu groß ist und Krass. Dann zieht das eher extra speichern, extra Performance.
Jan
Okay. Spannend. Spannend. Was ist denn aus eurer Sicht noch so die ein, 2 großen ungelösten Probleme in diesem ganzen Navigationsspace?
Robin
Du meinst jetzt bei uns insbesondere oder im Allgemeinen?
Jan
Ja, gerne sowohl als auch, ja. Also worüber Du auch immer reden reden willst so.
Robin
Also so allgemein weiß ich jetzt ehrlich gesagt gar nicht so genau, wo da jetzt so die ungelösten Probleme sind. Schwer zu sagen. Also ich könnt mir vorstellen, dass, na, Nö, also ich weiß jetzt zum Beispiel nicht, woran Google Maps oder so arbeitet. Fällt mir jetzt bisschen schwer, da eine Antwort zu sagen. Für uns ist zum Beispiel noch 'n großes Thema, grad was die Routenberechnung angeht, dass wir zum Beispiel bei Baustellen 'n bisschen schneller werden, weil die sind teilweise in Open Street Map nicht so gut eingetragen. Und dann passiert's grad im Sommer, wenn Du halt ein, 2 Wochen eine Baustelle herrscht irgendwo, dass Du da halt doch in eine in eine gesperrte Straße reinfärscht und dann musst Du halt umplanen. Das ist so das Typische, was was eigentlich immer mal wieder für Probleme sorgt, zum Beispiel bei uns son Problem, was wir gern mal lösen würden, was wir verbessern würden. Aber ist halt auch nicht ganz easy, das das zu wissen, weil dadurch, dass Du die Open Street Map Daten auch verwendest, dass Du jetzt nicht einfach irgendwo Traffic Daten kaufen und die mit Open Street Map vermischen, weil das dann mit der Open Street Map Lizenz nicht so richtig kompatibel ist. Aha. Also Straßendaten wollen die Leute auch tendenziell nicht verkaufen, weil sind halt wertvolle Daten. Die sagen lieber, ja, verwende doch, also keine Ahnung, zum Beispiel, ob das jetzt TomTom oder wer auch immer ist, sagt halt, ja, verwende doch lieber gleich unsere Daten allgemein und da ist dann alles mit drin. Und die wollen dir tendenziell eher ungern dann ihre ihre Straßendaten verkaufen.
Dennis
Ja, interessant. Wär wär ja auch grad meine Frage gewesen, wie das dann mit so Livedaten oder so was ist, ob man die da drauf mappen kann. Aber okay, dann ist das 'n bisschen separat.
Robin
Ja, und also ich würd jetzt tatsächlich sagen, Livedaten in dem Sinne Stau oder so was, ist, glaub ich, gar nicht so relevant fürs Motorradfahren, weil Du fährst neben Strecken, Du fährst nicht Autobahn, Du fährst nicht durch die Stadt oder halt so wenig wie möglich. Daher ist meistens nicht so das Problem und selbst wenn mal was ist mit dem Motorrad, kommt man auch mal irgendwo bisschen schneller dran vorbei oder kann auch mal einfacher umdrehen oder so. Also das geht.
Dennis
Nee, ich denk nur, aber mittlerweile ist auch Also da war Google Maps ja auch viele Jahre sehr, sehr schlecht drin bei Straßensperrungen tatsächlich, ne, weil sie halt irgendwie immer den den Traffic gut hatten, aber bei Sperrung sehr schlecht war. Ich glaub, das ist auch deutlich besser geworden. Aber das wär ja auch so eine Komponente, wo man sagen könnte, ne, dass wenn man da irgendeine API, eine Datenquelle hat, die live eben Baustellen et cetera hat und die nicht erst in Obst remote eingebaut werden müssen und dann importiert werden müssen.
Jan
Oder ist das andersrum? Also ihr habt ja das schon mal gesehen, wenn ihr Google Maps benutzt und ihr steht im Stau oder so was und fangt an zu bremsen und dann kommt sone Nachricht, wo Du, hey, ist hier grade ein Stau oder ein Verkehrslinderist? Und Du kannst einfach ja oder nein drücken und so quasi in Echtzeit Input liefern für Google Maps. Das könntet ihr ja auch. Und im Prinzip, wenn ihr das einfach zurückspielt direkt an an OpenStreet Map, dann freuen sie sich ja wahrscheinlich auch im Zweifelsfall noch, ne?
Robin
Ne? Ja, tatsächlich so eher in die Richtung gehen auch unsere Gedanken, dass wir Also ich glaub, ich würd's jetzt nicht rein vom Abbremsen machen, aber dass eben möglichst einfach wird für die User, Straßensperrungen in Open Street Map einzutragen, weil die's eben auch wichtig für die ganze Open Street Map Community find. Also wir selber machen viel Open Source, wir wir machen viel möglichst offen an an vielen Stellen und da find ich's auch wichtig zurückzugeben. Ich mein, wir profitieren immer von den Daten, find ich, kann man auch irgendwie gucken, wie man wieder was zurückgeben kann. Find ich irgendwie nur fair dann an der Stelle.
Jan
Find ich auch cool, find ich auch cool. Und vielleicht ein letztes Thema, was son bisschen abseits von der eigentlichen Navigation und Routenführung ist, aber für viele Anwender wahrscheinlich auch superwichtig. Ich glaub, ihr macht das ja auch, ist Sprachausgabe. So, ne? Beim beim also beim Fahren so in 300 Metern die nächste Ausfahrt links und so weiter. Wie macht ihr das? Weil es gibt ja, glaub ich, sowohl unter iOS als auch unter Android APIs, so Sprache quasi einfach zu erzeugen, ja, das Gerät irgendwas sagen zu lassen. Aber ihr könntet ja auch quasi die die Sprachausgabe serverseitig oder irgendwie anders erzeugen und dann selber mitliefern. Wie wie macht ihr's?
Robin
Ja, wir verwenden aktuell noch diese diese, die eben standardmäßig on Bord sind. Also bei Android gibt's eben standardmäßiges Text to Speech, bei iOS auch. Die sind aber nicht so geil, weil also die klingen schon 'n bisschen robotermäßig und es wär schon cooler, wenn wir da eine schöne Sprachausgabe hätten. Das ist tatsächlich 1 uns unserer aktuellen Themen, die wir grad so aufm Schirm haben, wo wir mal reinschauen wollen und dann serverseitig quasi generieren. Und dann muss ich die natürlich auch möglich versuchen zu cachen, dass natürlich jetzt nicht mega, megaviele Sprachdateien runterladen muss und auch erzeugen muss und so weiter. Genau. Also da muss man, glaub ich, noch son bisschen optimieren, aber ich kann mir das gut vorstellen und fänd ich eine richtig coole Sache.
Dennis
Jan, weißt Du zufällig noch, wir hatten letztens sonen AI Text to Speech Modell, was im Browser läuft. Hast Du das grade noch aufm Schirm, wie das hieß? Nee. Weil das könnte vielleicht ja auch, ne, jetzt zukünftig was sein, wo die die dann einfach nicht so groß sind und grade irgendwie eine App beispielsweise Platz wenden würden und die sich ziemlich gut anhören. Und Du sie trotzdem einfach lokal jederzeit generieren könntest und dir gar nicht Server und Transfer und Caching und so weiter Gedanken machen müsstest.
Jan
Ja, Du musst halt einfach das Model mit deiner App ausliefern am Anfang, ne. Ja.
Robin
Also ich hatte da auch schon mal 'n bisschen recherchiert und die Modelle, die ich gefunden hab, haben mich jetzt nicht so überzeugt, die offline funktioniert haben. Aber wenn ihr da was habt, also da wär ich auf jeden Fall interessiert. Also auch wenn da jemand ausm Publikum was Passendes hat, meldet euch gern.
Dennis
Ja, also ich hab's gefunden grade. Schicke hier gerne mal im Nachgang oder wenn 1 der Hörerinnen da Interesse dran hat. Den Link, ich weiß grade tatsächlich, also es wird komplett im Browser geladen. Ich seh jetzt grade auf Anhieb nicht, wie viel wie groß das war, aber vielleicht ist das was.
Robin
Ja, cool.
Jan
Also ich muss auch sagen, wir das ist ja son Space, den wir uns auch aus Podcastsicht quasi regelmäßig immer mal wieder anhören, so. Wie geht das so mit mit Spracherzeugung und so was alles? Und da gibt es meiner Meinung nach nur so 2, 3 Anbieter, die das richtig, richtig gut machen. Aber vielleicht ist da unser Anspruch auch 'n bisschen Also long form Content ist vielleicht funktioniert auch noch mal anders, als jetzt nur so einen Satz ausgeben zu lassen. Aber ja, es es es kann auf alle Fälle ein sehr teures Unterfangen werden so, wenn man das nicht mit 'nem eigenen lokalen Modell irgendwie macht.
Robin
Ja, also ich glaub, serversig kann man ja auch brutal viel cachen. Also man muss ja nicht in 300 Metern jedes Mal mitsprechen lassen, sondern das kann man ja als fertigen Schnipsel
Jan
Dritter Punkt
Robin
und ja? Hauptstraße kommt wahrscheinlich auch öfters vor und dritte Ausbau im Kreisverkehr brauch ich auch nicht die ganze Zeit. Also ich glaub, da lässt sich schon 'n bisschen was optimieren, dass man nicht alles dauernd anfragen muss, aber ich hab mir schon auch die guten Modelle mal angeschaut und das haut dann natürlich schon rein auf Dauer. Aber auf der anderen Seite, ja, wir haben natürlich auch Subscriptions, also User, die eben auch Geld bezahlen für einen für einen Dienst. Und da müssen wir natürlich schon auch gucken, dass wir den möglichst gutes Ergebnis dafür liefern. Und wenn das dann über eine bezahlte API ist, wär's vielleicht auch so. Aber klar muss man immer schauen, es muss natürlich am Ende auch Business Sinn machen, so was einzubauen.
Jan
Cool. Cool. Dennis, noch eine Frage?
Dennis
Nö, vielleicht da noch. Also ganz kurz, das Produkt ganz zu verstehen, wie monetarisiert ihr dann?
Robin
Also wir haben 2 verschiedene Abos. Das die heißen bei uns kurvigo Toura und Toura plus. Toura ist quasi das kleine Paket, wo Du in der Routenplanung erweiterte Funktionen erhältst und Toura plus ist dann das große Paket, wo Du dann auch navigieren kannst. Dann hast Du Offline Karten, Du hast eine Routenaufzeichnung und so weiter. Dann hast quasi einfach eine Funktion mit dem Touro Plus. Genau, also das Touro liegt so bei 15 Euro im Jahr, Touro Plus bei 30. Also ich sag mal roundabout eine Tankfüllung, so ist eigentlich bisschen die Logik dahinter.
Dennis
Motorradtankfüllung.
Robin
Ja, genau. Also da kommen wir halt auch.
Jan
Deine Tankfüllung ist jetzt auch nicht teurer, oder, Dennis? Nee, aber das
Dennis
Ich muss auch nicht tanken in dem Sinne, klassisch.
Jan
Ja, aber auch eine Batterie kriegst Du ja für 30 Euro, also kriegst Du ja voll.
Dennis
Das stimmt. Das stimmt. Nee, cool. Cool.
Jan
Dann Frage an Robin, wie immer zum Schluss. Irgendeine Frage, die wir dir nicht gestellt haben, irgendeinem Punkt, wo Du denkst, boah, da hätt ich supergerne drüber gesprochen, aber die Pfeifen haben mich einfach nicht danach gefragt.
Robin
Och, eigentlich muss ich sagen, ne, passt. Fand, war echt 'n interessantes Gespräch. Und wir haben so querbeet mal irgendwie alles son bisschen bisschen angetoucht. Passt, glaub ich, ganz gut.
Jan
Das ist genau das, was wir erreichen wollen. Ja, natürlich können wir keinen dieser Aspekte irgendwie in in voller Tiefe irgendwie behandeln, aber es soll ja auch zugänglich sein für alle da draußen, die sich jetzt noch nicht mit Graphen und Kanten und Ecken und Kurven beschäftigt haben so. Und dann passt es, glaub ich, genauso. Aber wir sind ja noch nicht am Ende, Dennis, weil was kommt noch? The. Und weil Du das so schön angeteasert hast, Dennis, darfst Du auch anfangen.
Dennis
Ja, ich hab grad noch kurz überlegt, ob das vielleicht eher son ist statt 'n Pick of the day.
Jan
Was Richtig gute Art und Weise, das anzukündigen.
Robin
Ja, ich
Dennis
war nämlich am Anfang, also der Folge gefragt, ob ich einen habe und da war ich ganz stolz, dass ich einen gefunden habe, der in diesem in dem Space ist. In dem Sinne, weil mich was begeistert hat. Ich habe aber in 1 Navigationsapp etwas gesehen, Google Maps, und war davon begeistert und hab mich gleichzeitig darüber geärgert, dass wir das noch nicht in Deutschland haben oder zumindest noch nicht in unseren Städten. Und worum es geht und ich einfach nur darauf hinweisen wollte, dass es mega, dass ich es mega cool fand, es gibt bei Google Maps eine sogenannte Immersive View, Routen schon mal abzufahren. Und ich war vor 2 Wochen ungefähr, war ich in in New York und neben vielen anderen technischen Dingen, die da toll sind, dass man ne U-Bahn mit Live Daten so was, dann sind wir auch noch mal Zusätzlich ist das sehr negativ hier im Rhein Main Gebiet. Liebe Grüße an den RMV, der seine Daten nicht bereitstellen möchte für die für Google und deswegen man keine öffentlichen Verkehrsmittel in Google Maps finden kann. Das nur eine Randnotiz. Es ist schon beeindruckend, was da alles an Daten in in der Gartenanwendung mit drin ist.
Jan
Emotionaler oder Coaster, die Sache. Emotionaler oder Coaster.
Dennis
Ich komme trotzdem jetzt auf das das Feature zu sprechen, Immersive View und das ist letztendlich eine 3 D Ansicht. Man fliegt jetzt so, was natürlich in New York mit Hochhäusern vielleicht auch mal 'n bisschen imposanter ist, als auch anders. Man fliegt durch eine drei-d-Szenerie und kriegt die Route vorgeschlagen. Und was dann halt noch richtig krass ist, dass das bei Immersive, es wird halt auch noch eingeblendet, wie das grade so alles in real time ist. Das heißt, da sind kleine 3 D Autochien, also und und der Verkehr wird 3 D mäßig eingeblendet, zu viel, wie da grade los ist. Das Wetter passt, das hat bei uns einen Nachmittag geschneit, dann war einfach, ne, wirklich Schnee in dieser in diese Szenerie und es ist auch komplett Tag und Nacht. Also Du hast nachts dann Straßenlampen, die alles beleuchten und die kleinen Autochins, die alles beleuchten. Also da ist sone komplette 3D Szenerie, wo Du dir angucken kannst, wie ist es da grade, wenn ich jetzt diese diese Route machen würde? Was ich technisch einfach schon ziemlich beeindruckend finde und in dem Sinne, vielleicht teste ich's auch lieber noch mal in Frankfurt, bevor ich sage, es geht hier nicht. Also es geht auch in in Deutschland, in dem Also man kann auch hier einfach eine Adresse in New York suchen und eine Route machen, dann hat man auch diese Option der der. Und während ihr gleich weitermacht, teste ich's vorsichtig selber noch mal mit 'ner Route von Frankfurt, dass ich nicht irgendwie Quatsch erzählt habe.
Jan
Ich hab in der Zeit einen Minipick, der vielleicht dazu passt. Mir ist nämlich neulich aufgefallen, dass man in Google Maps sein Auto anpassen kann. Du kannst jetzt in Google Maps quasi sagen, so dieses Auto, was quasi dein Auto ist, wenn Du fährst so, welche Farbe hat es? Was für eine Also ist das eher 'n Cabrio, 'n Coupé, 'n Van, Pick-up, was auch immer. Und das fand ich komplett unnötig, aber irgendwie auch süß so, dass man das jetzt machen kann. Solang der Dennis noch weitersucht hat, bring ich einfach noch eine kurze Frage an Robin ein, weil Dennis grade über 3 D gesprochen hat. Ist es für euch interessant, weil normalerweise ist ja so Routenführung so 2 D von oben, klassische Karte, ne? Aber ich könnt dir mir vorstellen, gerade so mit 'nem Motorrad unterwegs, kurvige Strecke, Höhenmeter machen. Ist so 3 D was, was ihr euch mal angeschaut habt?
Robin
Ja, tatsächlich haben wir das uns schon angeschaut. Für die reine Navigation bin ich tatsächlich nicht überzeugt, ob's das jetzt wirklich besser macht, weil das sind eigentlich nur Informationen, die im Weg sind. Es wird zwar immer mal wieder bei uns so von den Usern angefragt, und ist auch was, was wir weiter aufm Schirm halten. Wie gesagt, ich bin mir aber nicht sicher, ob sich da der Aufwand lohnt, weil ich mein, Du hast 3 D-Mäßig natürlich auch 'n deutlich höheren Rechenaufwand, Du hast 'n deutlich höheren Datenaufwand. Dadurch hast Du 'n höheren Batterieverbrauch. Batterieverbrauch ist auch immer 'n Thema. Nicht jeder hat eine Energieversorgung am am Motorrad dran, die wo's dran haben. Manche haben eben nur relativ schwache USB Ports dann dran und das Smartphone geht dann langsam leer. Also es sind tatsächlich so so Dinge, die man da 'n bisschen im Hinterkopf haben muss, Aber rein sone, ich sag mal, eine Route irgendwie in 3 d abfliegen, find ich schon immer ganz witzig, vielleicht auch so im Nachhinein. Ich weiß nicht, ob ihr Relift kennt, die App. Mhm. Mhm. Mhm. Und so was in die Richtung könnt ich mir zum Beispiel schon auch ganz gut vorstellen, dass man einfach so seine Fahrt noch mal abfliegt und sagt, ah ja, hier war was besonders cool, da war was besonders schön und so weiter. Das so in in die Richtung spielen, das kann ich mir schon gut vorstellen.
Jan
Cool. Dennis, haben wir genug Zeit geschwindet für dich?
Dennis
Ja, ich stell grad fest, vielleicht muss ich mein RMV Rant kurz zurücknehmen. Also kann noch nicht so
Jan
lange Unser Account, da geht einfach weiter.
Dennis
Ich bin ich bin grade sehr beeindruckt. Ich hab zufällig noch die, es gibt ja diesen Layer in Google Maps, wo man öffentliche Verkehrsmittel einblenden kann. Und dann waren jetzt auf einmal all diese ganzen U-Bahn hier eingezeichnet, was ich schon neu fand. Und jetzt habe ich tatsächlich versucht, in in Frankfurt nur zu navigieren und ich weiß nicht, ob's der v der m v ist oder tatsächlich eher die Verkehrsbetriebe Frankfurt, die's gemacht haben. Aber man kann in Frankfurt jetzt auch mit Straßenbahnen und U-Bahn und S-Bahn fahren und hat das in die Google Maps mit wegen und wann die nächsten Sachen fahren. Also da bin ich grade sehr positiv überrascht und nein, die gibt's in Frankfurt nicht, also zumindest damit hab ich recht behalten.
Jan
Aber ja. Live Fact Checking hier in der programmier.bar. Wunderbar, wunderbar. Cool. Robin, was hast Du dabei?
Robin
Ja, und zwar 'n Kumpel von mir hat dem letzten beim, ich weiß gar nicht, was das war, Beta Servertest oder wie auch immer von Night Rain mitgemacht, fand ich ganz cool. Dürfte ich auch mal eine Runde spielen. Ich bin jetzt eigentlich nicht so der Riesen Gamer. Ich hab da meistens eigentlich gar nicht so richtig Zeit dafür, wenn ich ehrlich bin. Aber das hat mir mal wieder richtig Spaß gemacht. War echt cool.
Jan
Das ist ganz Das ist das erste Multiplayer jetzt, ne?
Robin
Genau, genau, wo Du quasi so zusammen im Team spielst und quasi in in dem Prinzip, dass Du immer wieder die gleiche Karte ist sozusagen spielst. Da natürlich vergessen, wie dieser Spieltyp heißt.
Jan
Aber das ist ja son son Also ich mein, Soulslike hat ja son eigenes Genre geprägt Ja. Und die die kurze Definition davon ist ja, Du kriegst einfach viel auf die Fresse und stirbst andauernd. Und als Casual Gamer, wie ich mich auch einordnen würde, frag ich mich dann, wie motivieren das das halt so für uns? Also wenn Du jetzt so Hardcore Gamer bist und Du willst so dieses Spiel unbedingt durchkriegen und hast da sone Motivation, cool. Aber jetzt so für dich, wenn Du selber sagst, Du spielst nicht oft und viel und segnest da aber relativ häufig das Zeitliche, wie war so deine Motivation nach 'ner Stunde davon?
Robin
Also ich muss sagen, ich hab ellenring, also das Basisgame hab ich tatsächlich durchgezockt, weil's mir so viel Bock gemacht hat, deswegen ging's.
Jan
Und dann darfst Du aber jetzt nicht hier hinstellen und sagen, eigentlich spiel ich gar nicht viel, weil ich hab keine Zeit. Und der nächste Satz danach, ich hab Elden Ring schon durch, ja?
Robin
Ja gut, aber ich mein, das war das war das einzige Spiel die letzten 3 Jahre, was ich durchgespielt hab. Also
Jan
ja, aber Das 3 Jahre braucht, bis Du's durchhast.
Robin
Ah, ganz so lange hat's nicht gedauert. Ich spiel grad seit über 'nem Jahr bei der Skate 3 und jetzt hab ich's schon wieder 3 Jahre Und
Jan
schon wieder, es spielt einfach noch mehr. Es kommt einfach 1 nach dem anderen raus hier.
Robin
Ja, ja, genau. Nee, aber tatsächlich, Enring fand ich sehr gelungenes Spiel und Night Rain fand ich auch cool.
Jan
Wunderbar. Das ist doch ein ein Pick von Herzen. Boah. Ich muss mich kurz sammeln nach dieser Reise. Ich hab auch einen Pick dabei. Ich hab neulich ein kleines Projekt aufgesetzt. Und wie das immer so ist am Anfang von sonem kleinen Hobbyprojekt, man weiß noch nicht so, wie son Datenmodell aussieht, was man so für eine API braucht und so weiter. Und ich wollte das Ganze mit 'nem im Prinzip mit 'nem Headless CMS bauen, damit ich mir so mein Datenmodell zusammenklicken kann und neue Felder hinzufügen, wie ich sie brauch und mit Rechten und Berechtigung bisschen rumspielen. Und hab dann was gesucht, weil meine Anforderung war, ich würde gerne nicht nur ein Headless CMS nutzen, sondern ich würde gerne meine ganze Backend- und Businesslogik sozusagen in diesem CMS abbilden können. Also Custom Endpunkte, Custom Eventlisten reinbauen. Wenn dieses Objekt angelegt wird, dann mach Folgendes damit oder trigger eine Webhoug und keine Ahnung. Und dann bin ich bei gelandet, JavaScript, type Script Projekte, Open Source und 1 der größten Headless CMS Systeme eigentlich. Die meisten da draußen werden jetzt wahrscheinlich nicht so vom Stuhl gerissen sein, weil man das schon kennt. Aber für jemanden, der noch nie damit gearbeitet hat, ich war superbegeistert, wie flexibel das ist, wie mächtig das ist, wie viele Extension Points es eigentlich hat, eigene Logik, eigene Interfaserweiterung, alles im Prinzip reinzubringen. Und bisher muss ich sagen, ist es mir tatsächlich gelungen, im Prinzip das komplette Backend von diesem Hobbyprojekt nur in dem CMS und in den Extensions davon im Prinzip abzubilden. Und das fand ich schon ganz cool. Also wer das nächste Mal ein Backend, eine API, einen kleinen Datastore braucht, der kann sich mal strappy einfach angucken und kann sich dann vielleicht viel viel Arbeit sparen, weil da einfach viel out of the box schon schon so mitkommt. Gut, das war's zu meinem Pick. Dann bleibt mir gar nicht so viel zu sagen, außer danke Robin für die Zeit, für das coole Gespräch. Es war echt interessant, auch wenn ich von Navigation überhaupt gar keine Ahnung hatte und von Grafen noch viel weniger, glaub ich jetzt, dass ich 'n bisschen mehr davon verstanden hab. Danke Dennis für die Zeit. Und dann danke an alle da draußen, die zugehört haben. Und wenn ihr Fragen, Anregungen, Kritik und Feedback habt, immer gerne an Podcast at Programmier Punkt bar oder als Kommentar bei Youtube, Spotify, LinkedIn, Instagram, Mastodon, Blues Guy, irgendwas hab ich bestimmt wieder vergessen, aber wir lesen alles fleißig mit und freuen uns immer über eure Nachrichten. Und damit bleibt uns nichts mehr zu sagen.
Dennis
Vielen Dank. Schön, dass ich hier bin.
Jan
Schön, dass Du hier bist, Dennis. Schön. Vielen Dank, Robin.
Robin
Danke auch. Habt ihr wieder was gemacht.
Jan
Bis denn. Bis denn. Tschau, tschau. Tschau.

Speaker Info

  • Robin Boldt

    Robin gründet als begeisterter Motorradfahrer „Kurviger“, eine App zur Planung und Navigation von Motorrad-Touren. Als Open-Source-Verfechter arbeitet Robin an mehreren Open-Source-Projekten wie GraphHopper und Maplibre mit. Wenn er nicht gerade an „Kurviger“ arbeitet, erkundet er am liebsten den Süden Deutschlands auf zwei Rädern. 

    Mehr Infos
Feedback