██▒ █▓ ▄▄▄ ██▓ ██░ ██ ▄▄▄ ██▓ ██▓ ▄▄▄
▓██░ █▒▒████▄ ▓██▒ ▓██░ ██▒▒████▄ ▓██▒ ▓██▒ ▒████▄
▓██ █▒░▒██ ▀█▄ ▒██░ ▒██▀▀██░▒██ ▀█▄ ▒██░ ▒██░ ▒██ ▀█▄
▒██ █░░░██▄▄▄▄██ ▒██░ ░▓█ ░██ ░██▄▄▄▄██ ▒██░ ▒██░ ░██▄▄▄▄██
▒▀█░ ▓█ ▓██▒░██████▒░▓█▒░██▓ ▓█ ▓██▒░██████▒░██████▒▓█ ▓██▒
░ ▐░ ▒▒ ▓▒█░░ ▒░▓ ░ ▒ ░░▒░▒ ▒▒ ▓▒█░░ ▒░▓ ░░ ▒░▓ ░▒▒ ▓▒█░
░ ░░ ▒ ▒▒ ░░ ░ ▒ ░ ▒ ░▒░ ░ ▒ ▒▒ ░░ ░ ▒ ░░ ░ ▒ ░ ▒ ▒▒ ░
░░ ░ ▒ ░ ░ ░ ░░ ░ ░ ▒ ░ ░ ░ ░ ░ ▒
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
░
Valhalla est un moteur de routage open source et les bibliothèques qui l'accompagnent à utiliser avec les données OpenStreetMap. Valhalla comprend également des outils tels que le calcul matriciel temps+distance, les isochrones, l'échantillonnage d'altitude, la correspondance de cartes et l'optimisation des visites (Travelling Salesman).
Linux/MacO | Fenêtres | Couverture des codes |
---|---|---|
Valhalla et tous les projets de l'organisation Valhalla utilisent la licence MIT. Avatar/logo par Jordan.
Les données OpenStreetMap dans ./test/data
sont sous licence ODbL et protégées par les droits d'auteur des contributeurs OSM. Des informations supplémentaires sur les licences et autres exigences concernant les sources de données les plus fréquemment utilisées par Valhalla peuvent être trouvées dans la documentation.
Il existe plusieurs fonctionnalités clés qui, nous l’espérons, pourront différencier le projet Valhalla des autres moteurs de routage et d’analyse de réseau. Ils sont:
FOSSGIS eV héberge un serveur de démonstration ouvert au public et comprenant un graphique planétaire complet avec une application Web open source sur https://valhalla.openstreetmap.de. L'API HTTP est accessible sur un sous-domaine légèrement différent, par exemple https://valhalla1.openstreetmap.de/isochrone. L'utilisation du serveur de démonstration suit la politique habituelle d'utilisation équitable en tant que serveurs de démonstration OSRM et Nominatim (quelque peu renforcée par des limites de débit).
Valhalla est entièrement fonctionnel sur de nombreuses distributions Linux et Mac OS et est également utilisé sur les appareils iOS et Android.
Pour Windows, toutes les fonctionnalités ne sont pas encore entièrement prises en charge. La construction de la bibliothèque Valhalla fonctionne parfaitement, ainsi que les modules d'application suivants :
TOOLS
: utilitaires pour interroger et comparer divers composantsDATA_TOOLS
: utilitaires pour construire des données d'entrée et gérer le transitPYTHON_BINDINGS
: utiliser toutes les actions (itinéraire, isochrones, matrice, etc.) via la bibliothèque Valhalla Python (nécessite une distribution Python complète (c'est-à-dire développement) dans le PATH
) L'organisation Valhalla est composée de plusieurs modules de bibliothèque, chacun responsable d'une fonction différente. La disposition des différents modules est la suivante :
loki
et thor
.mjolnir
ou comme service autonome.thor
.odin
.tyr
.odin
et prendra en charge la sortie JSON (et éventuellement le tampon de protocole). La documentation est stockée dans le dossier docs/
de ce référentiel GitHub. Il peut être consulté sur valhalla.github.io/valhalla.
Pour exécuter Valhalla localement ou sur votre propre serveur, nous vous recommandons d'utiliser notre image Docker. Découvrez notre image docker ici : https://github.com/orgs/valhalla/packages. En outre, il existe une image Docker communautaire avec plus de « magie » que l'image native.
Si vous souhaitez construire Valhalla à partir des sources, suivez la documentation.
Pour plus d'informations sur les binaires, consultez la section Outils de ligne de commande ci-dessous et la documentation.
Nous ❤️ contributions à Valhalla. Ils peuvent être non techniques, par exemple des traductions dans d'autres langues via Transifex ou des améliorations de la documentation, ou techniques comme des corrections de bugs ou des implémentations de fonctionnalités. Il est important d'ouvrir un ticket avant de se lancer dans le travail sur un PR.
Idéalement, familiarisez-vous d’abord avec nos directives de contribution.
Valhalla comprend plusieurs microbenchmarks que vous pouvez créer et exécuter à l'aide de :
make benchmarks
make run-benchmarks
Ils sont activés par l'indicateur -DENABLE_BENCHMARKS=On
CMake et ne sont actuellement disponibles que pour Linux et MacOS.
valhalla_service
alias mode one-shotSi vous ne pouvez pas (par exemple Windows Server) ou ne souhaitez pas exécuter l'API HTTP complète, vous pouvez avoir (presque) exactement le même comportement avec l'exécutable 'valhalla_service' dans ce que l'on appelle "one-shot". mode. C'est simple, il suffit de transmettre le fichier de configuration, l'action (route, isochrone, matrice, etc.) et la requête JSON stringifiée (ou alternativement un fichier contenant la requête pour contourner les problèmes de longueur des commandes shell) :
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
Il est important de noter que tous les journaux Valhalla pour le mode one-shot sont redirigés vers stderr
tandis que la réponse JSON réelle sera dans stdout
. Pour faire taire complètement les journaux, transmettez type: ""
à midgard.logging
dans le fichier de configuration.
Les projets suivants sont open source et construits dans le but de faciliter l'utilisation de Valhalla et de ses fonctionnalités :
mjolnir.default_speeds_config
.docker-compose.yml
pour obtenir une instance Valhalla complète.