OSRM API(Open Source Routing Machine)
2025年12月25日 17:17
GISBoxは、OSGB/GEOTIFF/RVTなどの複数のGISフォーマットでの編集をサポートし、3DTiles/Terrainへの変換や公開が可能なワンストップ3DGIS データ編集、変換、公開プラットフォームです。
概要
OSRM API(Open Source Routing Machine)は、OpenStreetMap データを基盤とした高性能なオープンソースの経路探索エンジンであり、RESTful な HTTP インターフェースを通じてルート計算サービスを提供します。自動車、自転車、徒歩といった複数の移動手段に対応しており、最短経路を高速に返却できることから、ナビゲーションアプリの開発、物流配送計画、移動時間分析などの分野で広く利用されています。主な機能には、ルート計算、複数地点間の移動時間行列生成、GPS トラックのマッチングなどがあり、Contraction Hierarchies アルゴリズムを採用することでミリ秒単位の高速応答を実現しています。

データフォーマットの概要
OSRM API(Open Source Routing Machine)のファイル構造は、主に以下の要素から構成されています。
- コアデータファイル:.osrm(メインデータ)、.osrm.nodes(ノード情報)、.osrm.edges(エッジ情報)、.osrm.geometry(幾何情報)、.osrm.fileIndex(ファイルインデックス)。
- ルーティングアルゴリズム関連ファイル:.osrm.hsgr(階層化グラフ構造)、.osrm.ramIndex(メモリインデックス)、.osrm.timestamp(タイムスタンプ)、.osrm.tld(交通関連データ)。
- 補助ファイル:.osrm.icd(交差点分類データ)、.osrm.names(道路名インデックス)、.osrm.properties(属性情報)、.osrm.restrictions(交通制限ルール)。
長所
- 高性能な計算能力:Contraction Hierarchies アルゴリズムを採用しており、数千万ノード規模の道路ネットワークでも処理可能で、クエリ応答時間は安定してミリ秒レベルを維持し、リアルタイム用途に適しています。
- マルチモーダル対応:自動車(car)、自転車(bicycle)、徒歩(foot)などの交通手段を標準でサポートし、それぞれに速度制限や一方通行などの事前定義ルールが適用されます。
- オープンデータエコシステム:OpenStreetMap の全球道路データを利用しており、カバレッジが広く、継続的に更新されるため、開発者は自由に利用・改変できます。
- 高いカスタマイズ性:Lua 設定ファイルを通じて、車両サイズ制限、有料道路回避、道路優先度調整など、ルーティングロジックを柔軟に制御できます。
- 標準化された API:RESTful HTTP API を提供し、経路探索や距離・時間行列計算などの機能を Web やモバイルアプリに容易に統合できます。
短所
- 公式サポートの不在:オープンソースプロジェクトであるため、商用レベルの公式技術サポートはなく、問題解決は主にコミュニティに依存します。
- データ前処理の複雑さ:OpenStreetMap データをルーティング用グラフに変換する前処理が必要で、処理時間が長く、ハードウェア要件も比較的高くなります。
- データ品質への依存:ルーティング精度は OpenStreetMap のデータ完全性や更新頻度に大きく依存し、地域によっては情報が不十分な場合があります。
- 拡張性の制約:プラグイン機構はあるものの、リアルタイム交通情報の統合など高度な機能は自前で開発する必要があり、保守コストが増加します。
応用シーン
OSRM API(Open Source Routing Machine)は、ナビゲーションアプリの開発、物流配送ルートの最適化、移動時間分析、位置情報インテリジェンスサービスなど、幅広い分野で活用されています。その高速な経路計算能力により、車載ナビゲーション、サイクリングルート推薦、徒歩ナビゲーションといったリアルタイム経路案内を支援します。物流分野では、複数拠点間の最短経路計算による配送効率向上に寄与し、GPS トラックマッチング機能は車両監視や走行履歴分析に利用されます。さらに、巡回セールスマン問題(TSP)の解決機能を活用することで、観光ルート設計などの高度な経路計画にも対応可能です。オープンソースである OSRM は、道路ネットワークデータやルーティングルールを柔軟にカスタマイズでき、個別プロジェクトの要件に応じた利用が可能です。
例
1. OSRM を用いて OpenStreetMap にナビゲーション機能を追加する例。

2. OSRM の HTTP リクエストは、統一された URL 構造に従います。

ファイルの開き方
1. Mapillary上で画像をフィルタリングして表示します。

関連地図サービス
Mapillary API
OpenStreetCam
MapQuest API
Esri Spatial Analysis / Geometry API
参考
- https://byuroscope.com/osrm/
- https://blog.afi.io/blog/osrm-table-api-free-and-open-source-distance-matrix-api/
- https://blog.csdn.net/gitblog_00067/article/details/154505959
- https://www.linuxbabe.com/ubuntu/install-osrm-ubuntu-20-04-open-source-routing-machine