Dschungel-gif

BlogBlog JungleworksTookan

Entwicklung von Mapping-Lösungen

Von Team Tookan 28th September 2016

routenoptimierung-05

Die dringende Not

Wir neigen oft dazu, Google als selbstverständlich zu betrachten, insbesondere wenn wir der alltägliche Verbraucher sind – das heißt, wir konsumieren Dinge im Frontend, einschließlich Apps und anderer Dienste. Die Tatsache, dass wir ein Smartphone und einen Internetzugang haben, um es zu ergänzen, scheint uns auszureichen, um die Beteiligung von Google und eine gewisse Freiheit, die mit ihrem „kostenlosen“ Tag für die meisten Dienste einhergeht, auszuschließen. Dasselbe gilt leider nicht für den Entwickler oder das Geschäft, das mit Logistik zu tun hat.

Google Maps, einer ihrer Flaggschiff-Dienste, wird als DER Anlaufpunkt für fast alle Kartenlösungen angesehen. Das gilt zumindest für das indische Szenario – wie auch für die Vereinigten Staaten. Wenn Sie ein Unternehmen sind, das im Bereich Logistik und Transport tätig ist, können Google erhebliche Kosten entstehen. Angenommen, Sie sind im Möbelliefergeschäft tätig, müssen Sie für die Automatisierung des Logistik-Workflows auf der Karte bezahlen, da sich die Adressen zufällig innerhalb der Kartendomäne von Google befinden, selbst wenn diese Adressen Ihren treuen Kunden und beteiligten Handwerkern gehören. Sie müssen dies auch tun wiederholt.

Die Gründe, warum diese Kosten entstehen, sind einfach – nicht viele Regierungen investieren in einen öffentlichen Datensatz oder Kartierungslösungen aus eigenem Antrieb – was Google zur einzig gangbaren Option macht. Unternehmen für etwas bezahlen zu lassen, das sie bereits besitzen, scheint eine abgedroschene Ungerechtigkeit zu sein, insbesondere angesichts fahrlässiger Regierungen. Schweden, Dänemark, Frankreich und Deutschland sind Beispiele für Ausnahmen von dieser Regel – sie haben bedeutende Schritte unternommen, um Kartendaten und andere derartige Informationen öffentlich zugänglich zu machen. Die Tatsache, dass diese Regierungen proaktiv und fortschrittlich sind, kann durch ihren relativen wirtschaftlichen Wohlstand und Lebensstandard hervorgehoben werden – sie haben es nicht geschafft, dies aufrechtzuerhalten, indem sie einfach auf Krisen reagiert haben. Vielleicht können wir uns ein Beispiel nehmen, vielleicht auch nicht.

Unabhängig davon brauchen wir Abhilfe für diese Situation. Einfach gesagt, wir brauchen eine Mapping-Lösung, was leichter gesagt als getan ist. Menschen mit erheblichen Kartierungskosten wechseln zu verschiedenen kostengünstigen Dienstanbietern wie Mapbox, Mapzen, MapQuest usw. Sie können auch Ihre eigenen Lösungen entwickeln. Diese Aufgabe ist nicht ganz unmöglich – es ist jedoch schwierig, einen adaptiven Kartendienst zu entwickeln, da der OSM-Dienst (OpenStreetMap) regelmäßige, reißende Updates erhält. Ein weiteres Problem hat mit der digitalen Infrastruktur zu tun. Die Entwicklung einer Lösung mag im Westen mit erheblicher Genauigkeit funktionieren, aber das kann nicht für alle Länder behauptet werden.

Die notwendigen Maßnahmen

Es gibt drei wesentliche Schritte im Prozess der Entwicklung Ihrer eigenen Mapping-Lösungen:

  1. Geokodierung und umgekehrte Geokodierung
  2. Mapping
  3. Routing

Die Reihenfolge der Implementierung ist hier nicht wichtig und variiert je nach den Anforderungen des jeweiligen Unternehmens. Nehmen wir an, Ihr Unternehmen ist auf die Lösung von Vehicle-Routing-Problemen spezialisiert. Hier wäre es offensichtlich, dass dieser Service mehr wert ist, wenn Sie über eigene Routing-Systeme verfügen!

Die Aufgabe ist ziemlich gewaltig, wenn man die Zahlen zusammenzählt. Um die Probleme auf einer einzelnen Route für 10 Städte zu lösen, sind (10!) Permutationen erforderlich. Das ist das Fakultätszeichen, also ungefähr 10*9*8….*1, was 3.62 Millionen Möglichkeiten entspricht, die gecruncht werden müssen. Zahlen in dieser Region sind einfach nicht nachvollziehbar – also optimale Routen über mehrere Länder zu finden, mit vielen Fahrzeugen, Lieferstellen, (ganz zu schweigen von Mautstellen und tausend anderen komplizierten Einschränkungen und Variablen!) wird zu einer Herkulesaufgabe, die für Google mit hohen Kosten verbunden ist.

Was ist also die beste Lösung? Wir empfehlen OSRM (Open Source Resource Manager), um für diese Aufgabe geeignet zu sein. Wir können dieses Juwel dem Projekt OSM (oben erwähnt) zuschreiben – da es in C/C++ geschrieben ist, ist es zufälligerweise auch schnell.

Nun, wir befürworten nicht, dies sofort auf globaler Ebene anzustreben, da dies auch eine große Geldinvestition wäre. Die Idee ist, den Bedarf der Stunde zu definieren und gleich zu Beginn eine passende kleine Version zu bauen. Später können wir es beliebig skalieren.

Dies dient zu Routing-Zwecken. Wenn Sie mit Kartierung zu tun haben, sind Geokodierung und umgekehrte Geokodierung erforderlich. Geocodierung ist der Akt des Knirschens einer Reihe von Datenfragmenten, die mit einem bestimmten Ort zu tun haben. Dies kann in Form von Beschreibungen, Koordinaten, Adressen usw. erfolgen. Diese Datenfragmente werden dann in einen tatsächlichen Ort auf der Erde übersetzt. Während der Prozess simpel klingt, ist er der schwierigste Aspekt bei dem Versuch, eigene Systeme zu entwickeln.

Geocodierung und Herausforderungen

Das allererste Problem ist das der Normalisierung und der Adressanalyse, die Sie Ihren Datensätzen hinzufügen müssen. Beispielsweise haben viele Orte die gleichen Adressen – in vielen Städten gibt es eine Mayflower Avenue und schafft Datenredundanzen. Es können noch andere Probleme auftreten. Jeder mit literarischen Grundkenntnissen kann zwischen „Strand“ und „Stanford“ unterscheiden. Allerdings kommen Erweiterungen ins Spiel – was ist, wenn ich mich auf die Stanford Church beziehe und nicht auf die Universität?

Buchstaben und andere Erweiterungen verursachen größere Probleme. 36W 26 St. Fl#7 kann gelesen werden als – 36W, 26th Street, und das F kann alles sein, von Floor über Flat bis hin zu Florida. Was analysiert wird, ändert das Ergebnis in Ihrem Geocoder drastisch. Auch unterschiedliche Identitäten für gleiche Namen sind üblich – W St. John's St, W St. John's St, W St. John's Street und West St. John's Street sind alle gleichwertig.

Internationale Adressen machen es insgesamt mühsamer. Frankreich verwendet eine Mischung aus dem Dezimalsystem (Basis 10) und dem Vigesimalsystem (Basis 20). Quatre-vingt duze bedeutet hier zweiundneunzig, wobei quatre 40 ist, multipliziert mit 20 (vingt) und 12 addiert, was 92 ergibt. Adressschemata für verschiedene Länder sind sehr unterschiedlich.

Es gibt Licht in diesem scheinbar langweiligen, datenverseuchten Tunnel. Ein Großteil der harten Arbeit wurde von vielen Open-Source-Enthusiasten geleistet. 'Libpostal' ist ein mehrsprachiger, internationaler Adressparserator, der von vielen Open-Source-Datenbanken verwendet wird. Es handelt sich um eine maschinell erlernte Lösung mit einem hohen Maß an Genauigkeit. 'Usaddress' ist eine andere Lösung; aber es funktioniert nur für die Vereinigten Staaten. Im Zuge der Flexibilität von Open-Source-Lösungen können Sie Ihr eigenes Schema definieren und dieses an Ihre Bedürfnisse anpassen.

Es gibt verschiedene kostengünstige Lösungsanbieter für Geocoding MapQuest Open Initiative, PickPoint, OpenCage Geocoder, LocationIQ, MapZen und so weiter. Wenn wir uns entscheiden müssten, wäre OpenCage die beste Option unter diesen, da sie je nach Größe des Begrenzungsrahmens eine Genauigkeitsbewertung liefern.

Alle diese Namen verwenden „Nominatim“ (einen von OSM bereitgestellten Geocoder) hinter ihren Instanzen. Falls Sie nach Ihrer Open-Source-Lösung suchen, können Sie diese auch hosten.

Das meiste davon erfordert, wie bereits betont wurde, eine Übersetzung von Daten. Wenn Sie also 'a' in 'b' umwandeln möchten, wird die Anzahl der Änderungen, Löschungen usw., die erforderlich sind, um 'a' in 'b' zu ändern, als die bezeichnet Levenshtein-Distanz. Eine umsichtige Verwendung von Adressparsing und Herausfiltern des richtigen Geocodes ist derjenige, der die geringste Levenshtein-Distanz in Bezug auf die tatsächlich angegebene Adresse aufweist. Um in diesem Fall eine hohe Genauigkeit zu gewährleisten, ist ein wenig Reverse-Engineering erforderlich.

Mapzen unterstützt Pelia ist eine weitere Lösung, mit der Sie Ihr eigenes Dataset und Schema erstellen können. Es verwendet Elasticsearch für die Datenbank in seiner Architektur. Obwohl es einfach zu installieren ist, da seine vagabundierende Installation auf Github verfügbar ist, ist seine Genauigkeit nicht so gut. Flexibilität hat ihren Preis.

Hier also eine grobe Vorstellung davon, wie Sie eine Kartierungslösung für Ihr Unternehmen so entwickeln können, dass die Kosten optimiert werden und die Qualität des betreffenden Kartierungssystems nicht allzu sehr beeinträchtigt wird. Daumen drücken, man kann an dieser Front nur auf Entwicklungen in positiver Richtung hoffen.

Abonnieren Sie, um mit den neuesten Updates und unternehmerischen Erkenntnissen auf dem Laufenden zu bleiben!

  • Teile diesen Artikel:

  • Blog Jungleworks Blog Jungleworks Blog Jungleworks