██▒ █▓ ▄▄▄ ██▓ ██░ ██ ▄▄▄ ██▓ ██▓ ▄▄▄
▓██░ █▒▒████▄ ▓██▒ ▓██░ ██▒▒████▄ ▓██▒ ▓██▒ ▒████▄
▓██ █▒░▒██ ▀█▄ ▒██░ ▒██▀▀██░▒██ ▀█▄ ▒██░ ▒██░ ▒██ ▀█▄
▒██ █░░░██▄▄▄▄██ ▒██░ ░▓█ ░██ ░██▄▄▄▄██ ▒██░ ▒██░ ░██▄▄▄▄██
▒▀█░ ▓█ ▓██▒░██████▒░▓█▒░██▓ ▓█ ▓██▒░██████▒░██████▒▓█ ▓██▒
░ ▐░ ▒▒ ▓▒█░░ ▒░▓ ░ ▒ ░░▒░▒ ▒▒ ▓▒█░░ ▒░▓ ░░ ▒░▓ ░▒▒ ▓▒█░
░ ░░ ▒ ▒▒ ░░ ░ ▒ ░ ▒ ░▒░ ░ ▒ ▒▒ ░░ ░ ▒ ░░ ░ ▒ ░ ▒ ▒▒ ░
░░ ░ ▒ ░ ░ ░ ░░ ░ ░ ▒ ░ ░ ░ ░ ░ ▒
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
░
Valhalla は、OpenStreetMap データで使用するオープンソースのルーティング エンジンと付随ライブラリです。 Valhalla には、時間+距離行列の計算、等時線、標高サンプリング、マップ マッチング、ツアーの最適化 (巡回セールスマン) などのツールも含まれています。
Linux/MacOS | 窓 | コードカバレッジ |
---|---|---|
Valhalla および Valhalla 組織のすべてのプロジェクトは MIT ライセンスを使用します。ジョーダンによるアバター/ロゴ。
./test/data
内の OpenStreetMap データは ODbL に基づいてライセンスされており、OSM 寄稿者によって著作権で保護されています。 Valhalla で最も頻繁に使用されるデータ ソースに関するライセンスおよびその他の要件に関する追加情報は、ドキュメントに記載されています。
Valhalla プロジェクトを他のルーティングおよびネットワーク分析エンジンと区別できると考えられる重要な機能がいくつかあります。彼らです:
FOSSGIS eV は、https://valhalla.openstreetmap.de でオープンソース Web アプリを備えた完全な惑星グラフを含む、一般公開されているデモ サーバーをホストしています。 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 イメージを使用することをお勧めします。ここで 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
別名ワンショット モード本格的な HTTP API を実行できない場合 (Windows Server など)、または実行したくない場合は、いわゆる「ワンショット」で '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 インスタンスを取得できます。