██▒ █▓ ▄▄▄ ██▓ ██░ ██ ▄▄▄ ██▓ ██▓ ▄▄▄
▓██░ █▒▒████▄ ▓██▒ ▓██░ ██▒▒████▄ ▓██▒ ▓██▒ ▒████▄
▓██ █▒░▒██ ▀█▄ ▒██░ ▒██▀▀██░▒██ ▀█▄ ▒██░ ▒██░ ▒██ ▀█▄
▒██ █░░░██▄▄▄▄██ ▒██░ ░▓█ ░██ ░██▄▄▄▄██ ▒██░ ▒██░ ░██▄▄▄▄██
▒▀█░ ▓█ ▓██▒░██████▒░▓█▒░██▓ ▓█ ▓██▒░██████▒░██████▒▓█ ▓██▒
░ ▐░ ▒▒ ▓▒█░░ ▒░▓ ░ ▒ ░░▒░▒ ▒▒ ▓▒█░░ ▒░▓ ░░ ▒░▓ ░▒▒ ▓▒█░
░ ░░ ▒ ▒▒ ░░ ░ ▒ ░ ▒ ░▒░ ░ ▒ ▒▒ ░░ ░ ▒ ░░ ░ ▒ ░ ▒ ▒▒ ░
░░ ░ ▒ ░ ░ ░ ░░ ░ ░ ▒ ░ ░ ░ ░ ░ ▒
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
░
Valhalla는 OpenStreetMap 데이터와 함께 사용하기 위한 오픈 소스 라우팅 엔진 및 관련 라이브러리입니다. Valhalla에는 시간+거리 행렬 계산, 등시선, 고도 샘플링, 지도 일치 및 투어 최적화(Travelling Salesman)와 같은 도구도 포함되어 있습니다.
리눅스/맥OS | 윈도우 | 코드 적용 범위 |
---|---|---|
Valhalla 및 Valhalla 조직의 모든 프로젝트는 MIT 라이선스를 사용합니다. Jordan의 아바타/로고.
./test/data
에 있는 OpenStreetMap 데이터는 ODbL에 따라 라이센스가 부여되며 OSM 기여자에게 저작권이 있습니다. Valhalla에서 가장 자주 사용하는 데이터 소스와 관련된 라이센스 및 기타 요구 사항에 대한 추가 정보는 문서에서 찾을 수 있습니다.
Valhalla 프로젝트를 다른 라우팅 및 네트워크 분석 엔진과 차별화할 수 있는 몇 가지 주요 기능이 있습니다. 그들은:
FOSSGIS eV는 대중에게 공개되고 https://valhalla.openstreetmap.de의 오픈 소스 웹 앱과 함께 전체 행성 그래프를 포함하는 데모 서버를 호스팅합니다. HTTP API는 약간 다른 하위 도메인(예: https://valhalla1.openstreetmap.de/isochrone)에서 액세스할 수 있습니다. 데모 서버의 사용은 OSRM 및 Nominatim 데모 서버와 같은 일반적인 공정 사용 정책을 따릅니다(비율 제한에 의해 어느 정도 시행됨).
Valhalla는 많은 Linux 및 Mac OS 배포판에서 완벽하게 작동하며 iOS 및 Android 장치에서도 사용됩니다.
Windows의 경우 아직 모든 기능이 완전히 지원되지는 않습니다. Valhalla 라이브러리 구축은 다음 애플리케이션 모듈뿐만 아니라 완벽하게 작동합니다.
TOOLS
: 다양한 구성 요소를 쿼리하고 벤치마킹하는 유틸리티DATA_TOOLS
: 입력 데이터를 구축하고 전송을 처리하는 유틸리티PYTHON_BINDINGS
: Valhalla Python 라이브러리를 통해 모든 작업(경로, 등시선, 행렬 등)을 사용합니다( PATH
에 전체(예: 개발) Python 배포가 필요함) Valhalla 조직은 각각 다른 기능을 담당하는 여러 라이브러리 모듈로 구성됩니다. 다양한 모듈의 레이아웃은 다음과 같습니다.
loki
및 thor
에 대한 입력으로 사용될 수 있습니다.mjolnir
에 대한 입력으로 사용되거나 독립 실행형 서비스로 사용될 수 있습니다.thor
에 대한 입력으로 사용될 수 있습니다.odin
에 대한 입력으로 사용될 수 있습니다.tyr
에 대한 입력으로 사용될 수 있습니다.odin
의 출력 형식을 지정하고 json(및 최종적으로 프로토콜 버퍼) 출력을 지원합니다. 문서는 이 GitHub 저장소의 docs/
폴더에 저장됩니다. valhalla.github.io/valhalla에서 볼 수 있습니다.
Valhalla를 로컬로 실행하거나 자체 서버를 실행하려면 Docker 이미지를 사용하는 것이 좋습니다. 여기에서 도커 이미지를 확인하세요: https://github.com/orgs/valhalla/packages. 또한 기본 이미지보다 "마법"이 더 많은 커뮤니티 Docker 이미지가 있습니다.
소스에서 Valhalla를 빌드하려면 설명서를 따르십시오.
바이너리에 대한 자세한 내용은 아래 명령줄 도구 섹션과 문서를 참조하세요.
우리는 발할라에 ❤️ 기여합니다. 예를 들어 Transifex를 통한 다른 언어 번역이나 문서 개선, 버그 수정이나 기능 구현과 같은 기술적인 것일 수도 있습니다. PR 작업을 시작하기 전에 문제를 여는 것이 중요합니다.
이상적으로는 먼저 기여 지침을 숙지하는 것이 좋습니다.
Valhalla에는 다음을 사용하여 구축하고 실행할 수 있는 여러 마이크로벤치마크가 포함되어 있습니다.
make benchmarks
make run-benchmarks
-DENABLE_BENCHMARKS=On
CMake 플래그로 활성화되며 현재 Linux 및 MacOS에서만 사용할 수 있습니다.
valhalla_service
(일명 원샷 모드)Windows Server 등 완전한 기능을 갖춘 HTTP API를 실행할 수 없거나 실행하고 싶지 않은 경우 소위 "원샷"으로 'valhalla_service' 실행 파일과 (거의) 정확히 동일한 동작을 수행할 수 있습니다. 방법. 간단합니다. 구성 파일, 작업(경로, 등시성, 매트릭스 등) 및 문자열화된 JSON 요청(또는 셸 명령 길이 문제를 우회하기 위한 요청이 포함된 파일)을 전달하면 됩니다.
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
원샷 모드의 모든 Valhalla 로그는 stderr
로 파이프되는 반면 실제 JSON 응답은 stdout
에 있다는 점에 유의하는 것이 중요합니다. 로그를 완전히 침묵시키려면 구성 파일의 midgard.logging
에 type: ""
전달하십시오.
다음 프로젝트는 오픈 소스이며 Valhalla 및 해당 기능을 더 쉽게 사용할 수 있도록 구축되었습니다.
mjolnir.default_speeds_config
구성 옵션에서 경로를 설정하여 사용할 수 있습니다.docker-compose.yml
에서 몇 가지 환경 변수만 설정하면 모든 기능을 갖춘 Valhalla 인스턴스를 얻을 수 있습니다.