██▒ █▓ ▄▄▄ ██▓ ██░ ██ ▄▄▄ ██▓ ██▓ ▄▄▄
▓██░ █▒▒████▄ ▓██▒ ▓██░ ██▒▒████▄ ▓██▒ ▓██▒ ▒████▄
▓██ █▒░▒██ ▀█▄ ▒██░ ▒██▀▀██░▒██ ▀█▄ ▒██░ ▒██░ ▒██ ▀█▄
▒██ █░░░██▄▄▄▄██ ▒██░ ░▓█ ░██ ░██▄▄▄▄██ ▒██░ ▒██░ ░██▄▄▄▄██
▒▀█░ ▓█ ▓██▒░██████▒░▓█▒░██▓ ▓█ ▓██▒░██████▒░██████▒▓█ ▓██▒
░ ▐░ ▒▒ ▓▒█░░ ▒░▓ ░ ▒ ░░▒░▒ ▒▒ ▓▒█░░ ▒░▓ ░░ ▒░▓ ░▒▒ ▓▒█░
░ ░░ ▒ ▒▒ ░░ ░ ▒ ░ ▒ ░▒░ ░ ▒ ▒▒ ░░ ░ ▒ ░░ ░ ▒ ░ ▒ ▒▒ ░
░░ ░ ▒ ░ ░ ░ ░░ ░ ░ ▒ ░ ░ ░ ░ ░ ▒
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
░
Valhalla adalah mesin routing open source dan perpustakaan yang menyertainya untuk digunakan dengan data OpenStreetMap. Valhalla juga menyertakan alat seperti komputasi matriks waktu+jarak, isokron, pengambilan sampel ketinggian, pencocokan peta, dan optimalisasi tur (Travelling Salesman).
Linux/MacO | jendela | Cakupan Kode |
---|---|---|
Valhalla, dan semua proyek di bawah organisasi Valhalla, menggunakan Lisensi MIT. Avatar/logo oleh Jordan.
Data OpenStreetMap di ./test/data
dilisensikan di bawah ODbL dan dilindungi hak cipta oleh kontributor OSM. Informasi tambahan mengenai lisensi dan persyaratan lain mengenai sumber data yang paling sering digunakan oleh Valhalla dapat ditemukan di dokumen.
Ada beberapa fitur utama yang kami harap dapat membedakan proyek Valhalla dari mesin analisis perutean dan jaringan lainnya. Mereka adalah:
FOSSGIS eV menghosting server demo yang terbuka untuk umum dan menyertakan grafik planet lengkap dengan aplikasi web sumber terbuka di https://valhalla.openstreetmap.de. HTTP API dapat diakses pada subdomain yang sedikit berbeda, misalnya https://valhalla1.openstreetmap.de/isochrone. Penggunaan server demo mengikuti kebijakan penggunaan wajar seperti server demo OSRM & Nominatim (agak diberlakukan oleh batasan tarif).
Valhalla berfungsi penuh di banyak distribusi Linux dan Mac OS, dan juga digunakan di perangkat iOS dan Android.
Untuk Windows, belum semua fungsi didukung sepenuhnya. Membangun perpustakaan Valhalla berfungsi dengan sempurna, begitu pula modul aplikasi berikut:
TOOLS
: utilitas untuk menanyakan dan membandingkan berbagai komponenDATA_TOOLS
: utilitas untuk membuat data masukan dan menangani transitPYTHON_BINDINGS
: gunakan semua tindakan (rute, isochrones, matriks, dll) melalui perpustakaan Valhalla Python (membutuhkan distribusi Python penuh (yaitu pengembangan) di PATH
) Organisasi Valhalla terdiri dari beberapa modul perpustakaan yang masing-masing bertanggung jawab atas fungsi berbeda. Tata letak berbagai modul adalah sebagai berikut:
loki
dan thor
.mjolnir
atau sebagai layanan mandiri.thor
.odin
.tyr
.odin
dan mendukung output json (dan akhirnya buffering protokol). Dokumentasi disimpan dalam folder docs/
di repositori GitHub ini. Itu dapat dilihat di valhalla.github.io/valhalla.
Untuk menjalankan Valhalla secara lokal atau server Anda sendiri, kami sarankan menggunakan image Docker kami. Lihat gambar buruh pelabuhan kami di sini: https://github.com/orgs/valhalla/packages. Juga, ada image Docker komunitas dengan lebih banyak "keajaiban" daripada image asli.
Jika Anda ingin membangun Valhalla dari sumbernya, ikuti dokumentasinya.
Untuk informasi lebih lanjut tentang biner, lihat bagian Alat Baris Perintah di bawah dan dokumen.
Kami ❤️ kontribusi untuk Valhalla. Hal tersebut bisa bersifat non-teknis, misalnya terjemahan ke bahasa lain melalui Transifex atau perbaikan dokumentasi, atau yang bersifat teknis seperti perbaikan bug atau implementasi fitur. Penting untuk membuka suatu isu sebelum mulai mengerjakan PR.
Idealnya, pahami pedoman Kontribusi kami terlebih dahulu.
Valhalla menyertakan beberapa microbenchmark yang dapat Anda buat dan jalankan menggunakan:
make benchmarks
make run-benchmarks
Mereka diaktifkan oleh flag -DENABLE_BENCHMARKS=On
CMake dan saat ini hanya tersedia untuk Linux dan MacOS.
valhalla_service
alias mode sekali pakaiJika Anda tidak bisa (misalnya Windows Server) atau tidak ingin menjalankan API HTTP lengkap, Anda dapat memiliki (hampir) perilaku yang sama persis dengan 'valhalla_service' yang dapat dieksekusi dalam apa yang disebut "one-shot" mode. Sederhana saja, cukup berikan file konfigurasi, tindakan (rute, isochrone, matriks, dll) dan permintaan JSON yang dirangkai (atau sebagai alternatif, file yang berisi permintaan untuk menghindari masalah panjang perintah 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
Penting untuk dicatat bahwa semua log Valhalla untuk mode sekali pakai disalurkan ke stderr
sementara respons JSON sebenarnya akan berada di stdout
. Untuk membungkam log sepenuhnya, teruskan type: ""
ke midgard.logging
di file konfigurasi.
Proyek berikut ini bersifat open-source dan dibangun dengan tujuan untuk mempermudah penggunaan Valhalla dan fitur-fiturnya:
mjolnir.default_speeds_config
.docker-compose.yml
untuk mendapatkan instance Valhalla berfitur lengkap.