██▒ █▓ ▄▄▄ ██▓ ██░ ██ ▄▄▄ ██▓ ██▓ ▄▄▄
▓██░ █▒▒████▄ ▓██▒ ▓██░ ██▒▒████▄ ▓██▒ ▓██▒ ▒████▄
▓██ █▒░▒██ ▀█▄ ▒██░ ▒██▀▀██░▒██ ▀█▄ ▒██░ ▒██░ ▒██ ▀█▄
▒██ █░░░██▄▄▄▄██ ▒██░ ░▓█ ░██ ░██▄▄▄▄██ ▒██░ ▒██░ ░██▄▄▄▄██
▒▀█░ ▓█ ▓██▒░██████▒░▓█▒░██▓ ▓█ ▓██▒░██████▒░██████▒▓█ ▓██▒
░ ▐░ ▒▒ ▓▒█░░ ▒░▓ ░ ▒ ░░▒░▒ ▒▒ ▓▒█░░ ▒░▓ ░░ ▒░▓ ░▒▒ ▓▒█░
░ ░░ ▒ ▒▒ ░░ ░ ▒ ░ ▒ ░▒░ ░ ▒ ▒▒ ░░ ░ ▒ ░░ ░ ▒ ░ ▒ ▒▒ ░
░░ ░ ▒ ░ ░ ░ ░░ ░ ░ ▒ ░ ░ ░ ░ ░ ▒
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
░
Valhalla ist eine Open-Source-Routing-Engine und zugehörige Bibliotheken zur Verwendung mit OpenStreetMap-Daten. Valhalla umfasst außerdem Tools wie Zeit- und Entfernungsmatrixberechnung, Isochronen, Höhenmessung, Kartenanpassung und Tourenoptimierung (Travelling Salesman).
Linux/MacOs | Windows | Codeabdeckung |
---|---|---|
Valhalla und alle Projekte der Valhalla-Organisation verwenden die MIT-Lizenz. Avatar/Logo von Jordan.
OpenStreetMap-Daten in ./test/data
sind unter ODbL lizenziert und unterliegen dem Urheberrecht von OSM-Mitwirkenden. Weitere Informationen zu Lizenzen und anderen Anforderungen bezüglich der von Valhalla am häufigsten verwendeten Datenquellen finden Sie in den Dokumenten.
Es gibt mehrere Schlüsselfunktionen, von denen wir hoffen, dass sie das Valhalla-Projekt von anderen Routing- und Netzwerkanalyse-Engines unterscheiden können. Sie sind:
FOSSGIS eV betreibt unter https://valhalla.openstreetmap.de einen öffentlich zugänglichen Demoserver mit einem vollständigen Planetendiagramm und einer Open-Source-Web-App. Die HTTP-API ist über eine etwas andere Subdomain zugänglich, z. B. https://valhalla1.openstreetmap.de/isochrone. Die Nutzung des Demoservers folgt der üblichen Fair-Use-Richtlinie wie bei OSRM- und Nominatim-Demoservern (etwas durch Ratenbegrenzungen erzwungen).
Valhalla ist auf vielen Linux- und Mac OS-Distributionen voll funktionsfähig und wird auch auf iOS- und Android-Geräten verwendet.
Für Windows werden noch nicht alle Funktionen vollständig unterstützt. Der Aufbau der Valhalla-Bibliothek funktioniert einwandfrei, ebenso wie die folgenden Anwendungsmodule:
TOOLS
: Dienstprogramme zum Abfragen und Benchmarken verschiedener KomponentenDATA_TOOLS
: Dienstprogramme zum Erstellen von Eingabedaten und zur Abwicklung des TransitsPYTHON_BINDINGS
: Alle Aktionen (Route, Isochronen, Matrix usw.) über die Valhalla-Python-Bibliothek verwenden (benötigt eine vollständige (dh Entwicklungs-)Python-Distribution im PATH
) Die Valhalla-Organisation besteht aus mehreren Bibliotheksmodulen, die jeweils für eine andere Funktion zuständig sind. Der Aufbau der verschiedenen Module ist wie folgt:
loki
und thor
verwendet werden.mjolnir
oder als eigenständiger Dienst verwendet werden.thor
verwendet werden.odin
verwendet werden.tyr
verwendet werden.odin
und unterstützt die Ausgabe von JSON (und eventuell Protokollpuffer). Die Dokumentation wird im Ordner docs/
in diesem GitHub-Repository gespeichert. Es kann unter valhalla.github.io/valhalla eingesehen werden.
Um Valhalla lokal oder auf Ihrem eigenen Server auszuführen, empfehlen wir die Verwendung unseres Docker-Images. Schauen Sie sich unser Docker-Image hier an: https://github.com/orgs/valhalla/packages. Außerdem gibt es ein Community-Docker-Image mit mehr „Magie“ als das native.
Wenn Sie Valhalla aus dem Quellcode erstellen möchten, folgen Sie der Dokumentation.
Weitere Informationen zu Binärdateien finden Sie im Abschnitt „Befehlszeilentools“ weiter unten und in den Dokumenten.
Wir ❤️ Beiträge für Walhalla. Sie können nicht-technischer Natur sein, z. B. Übersetzungen in andere Sprachen über Transifex oder Dokumentationsverbesserungen, oder technischer Natur wie Fehlerbehebungen oder Funktionsimplementierungen. Es ist wichtig, ein Problem zu eröffnen, bevor Sie mit der Arbeit an einer PR beginnen.
Machen Sie sich im Idealfall zunächst mit unseren Beitragsrichtlinien vertraut.
Valhalla enthält mehrere Mikrobenchmarks, die Sie erstellen und ausführen können mit:
make benchmarks
make run-benchmarks
Sie werden durch das Flag -DENABLE_BENCHMARKS=On
CMake aktiviert und sind derzeit nur für Linux und MacOS verfügbar.
valhalla_service
auch bekannt als One-Shot-ModusWenn Sie die vollwertige HTTP-API nicht ausführen können (z. B. Windows Server) oder nicht möchten, können Sie das (fast) exakt gleiche Verhalten mit der ausführbaren Datei „valhalla_service“ im sogenannten „One-Shot“ erzielen. Modus. Es ist ganz einfach: Übergeben Sie einfach die Konfigurationsdatei, die Aktion (Route, Isochrone, Matrix usw.) und die stringifizierte JSON-Anfrage (oder alternativ eine Datei, die die Anfrage enthält, um Probleme mit der Shell-Befehlslänge zu umgehen):
valhalla_service valhalla.json isochrone '{"locations":[{"lat":42.552448,"lon":1.564865}],"costing":"auto","contours":[{"time":10,"color":"ff0000"}], "show_locations":true}'
# Alternatively you can pass a file with the same contents
valhalla_service valhalla.json isochrone isochrone_request.txt
Es ist wichtig zu beachten, dass alle Valhalla-Protokolle für den One-Shot-Modus an stderr
weitergeleitet werden, während die eigentliche JSON-Antwort in stdout
erfolgt. Um die Protokolle vollständig stummzuschalten, übergeben Sie type: ""
an midgard.logging
in der Konfigurationsdatei.
Die folgenden Projekte sind Open Source und wurden mit der Absicht entwickelt, die Nutzung von Valhalla und seinen Funktionen zu vereinfachen:
mjolnir.default_speeds_config
festgelegt wird.docker-compose.yml
erfordert, um eine Valhalla-Instanz mit vollem Funktionsumfang zu erhalten.