██▒ █▓ ▄▄▄ ██▓ ██░ ██ ▄▄▄ ██▓ ██▓ ▄▄▄
▓██░ █▒▒████▄ ▓██▒ ▓██░ ██▒▒████▄ ▓██▒ ▓██▒ ▒████▄
▓██ █▒░▒██ ▀█▄ ▒██░ ▒██▀▀██░▒██ ▀█▄ ▒██░ ▒██░ ▒██ ▀█▄
▒██ █░░░██▄▄▄▄██ ▒██░ ░▓█ ░██ ░██▄▄▄▄██ ▒██░ ▒██░ ░██▄▄▄▄██
▒▀█░ ▓█ ▓██▒░██████▒░▓█▒░██▓ ▓█ ▓██▒░██████▒░██████▒▓█ ▓██▒
░ ▐░ ▒▒ ▓▒█░░ ▒░▓ ░ ▒ ░░▒░▒ ▒▒ ▓▒█░░ ▒░▓ ░░ ▒░▓ ░▒▒ ▓▒█░
░ ░░ ▒ ▒▒ ░░ ░ ▒ ░ ▒ ░▒░ ░ ▒ ▒▒ ░░ ░ ▒ ░░ ░ ▒ ░ ▒ ▒▒ ░
░░ ░ ▒ ░ ░ ░ ░░ ░ ░ ▒ ░ ░ ░ ░ ░ ▒
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
░
Valhalla es un motor de enrutamiento de código abierto y bibliotecas que lo acompañan para usar con datos de OpenStreetMap. Valhalla también incluye herramientas como cálculo de matriz de tiempo + distancia, isócronas, muestreo de elevación, coincidencia de mapas y optimización de recorridos (Travelling Salesman).
Linux/MacOs | ventanas | Cobertura del código |
---|---|---|
Valhalla y todos los proyectos de la organización Valhalla utilizan la licencia MIT. Avatar/logotipo de Jordan.
Los datos de OpenStreetMap en ./test/data
tienen licencia ODbL y son propiedad intelectual de los contribuyentes de OSM. Puede encontrar información adicional sobre licencias y otros requisitos relacionados con las fuentes de datos utilizadas con mayor frecuencia por Valhalla en los documentos.
Hay varias características clave que esperamos puedan diferenciar el proyecto Valhalla de otros motores de análisis de red y enrutamiento. Ellos son:
FOSSGIS eV alberga un servidor de demostración abierto al público e incluye un gráfico planetario completo con una aplicación web de código abierto en https://valhalla.openstreetmap.de. Se puede acceder a la API HTTP en un subdominio ligeramente diferente, por ejemplo, https://valhalla1.openstreetmap.de/isochrone. El uso del servidor de demostración sigue la política habitual de uso justo de los servidores de demostración de OSRM y Nominatim (de alguna manera impuesta por límites de velocidad).
Valhalla es completamente funcional en muchas distribuciones de Linux y Mac OS, y también se utiliza en dispositivos iOS y Android.
Para Windows, aún no todas las funciones son totalmente compatibles. La construcción de la biblioteca Valhalla funciona a la perfección, así como los siguientes módulos de aplicación:
TOOLS
: utilidades para consultar y comparar varios componentes.DATA_TOOLS
: utilidades para generar datos de entrada y manejar el tránsitoPYTHON_BINDINGS
: use todas las acciones (ruta, isócronas, matriz, etc.) a través de la biblioteca Valhalla Python (necesita una distribución Python completa (es decir, desarrollo) en PATH
) La organización Valhalla se compone de varios módulos de biblioteca, cada uno de los cuales es responsable de una función diferente. La distribución de los distintos módulos es la siguiente:
loki
y thor
.mjolnir
o como servicio independiente.thor
.odin
.tyr
.odin
y admitirá la salida json (y eventualmente el búfer de protocolo). La documentación se almacena en la carpeta docs/
de este repositorio de GitHub. Se puede ver en valhalla.github.io/valhalla.
Para ejecutar Valhalla localmente o en su propio servidor, recomendamos utilizar nuestra imagen de Docker. Consulte nuestra imagen de la ventana acoplable aquí: https://github.com/orgs/valhalla/packages. Además, hay una imagen comunitaria de Docker con más "magia" que la nativa.
Si desea construir Valhalla desde el código fuente, siga la documentación.
Para obtener más información sobre archivos binarios, consulte la sección Herramientas de línea de comandos a continuación y los documentos.
Nosotros ❤️ contribuciones a Valhalla. Podrían ser no técnicos, por ejemplo, traducciones a otros idiomas a través de Transifex o mejoras en la documentación, o técnicos como correcciones de errores o implementaciones de funciones. Es importante abrir una incidencia antes de empezar a trabajar en un PR.
Lo ideal es familiarizarse primero con nuestras pautas de contribución.
Valhalla incluye varios microbenchmarks que puedes construir y ejecutar usando:
make benchmarks
make run-benchmarks
Están habilitados mediante el indicador -DENABLE_BENCHMARKS=On
CMake y actualmente solo están disponibles para Linux y MacOS.
valhalla_service
también conocido como modo de una sola vezSi no puede (por ejemplo, Windows Server) o no desea ejecutar la API HTTP completa, puede tener (casi) exactamente el mismo comportamiento con el ejecutable 'valhalla_service' en el llamado "one-shot". modo. Es simple, simplemente pase el archivo de configuración, la acción (ruta, isócrona, matriz, etc.) y la solicitud JSON en cadena (o, alternativamente, un archivo que contenga la solicitud para evitar problemas de longitud de los comandos del 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
Es importante tener en cuenta que todos los registros de Valhalla para el modo de una sola vez se canalizan a stderr
mientras que la respuesta JSON real estará en stdout
. Para silenciar completamente los registros, pase type: ""
a midgard.logging
en el archivo de configuración.
Los siguientes proyectos son de código abierto y se crearon con la intención de facilitar el uso de Valhalla y sus funciones:
mjolnir.default_speeds_config
.docker-compose.yml
para obtener una instancia de Valhalla con todas las funciones.