【初心者必見】Ubuntu 22.04で日本全土の経路検索エンジン「OSRM」を構築する完全ガイド

【初心者必見】Ubuntu 22.04で日本全土の経路検索エンジン「OSRM」を構築する完全ガイド 無料ツール
この記事は約4分で読めます。
記事内に広告が含まれています。

トラックの運賃計算やルート最適化に欠かせない経路検索エンジン「OSRM」。
しかし、日本全土のデータを扱おうとすると、メモリ不足やディスク容量不足で「Input/output error」が発生し、多くの人が挫折します。

本記事では、実際に発生したトラブルとその解決策を含めた、世界一確実な構築手順をまとめました。

スポンサーリンク

1. サーバーの準備(ここが最大の難所)

OSRMで日本全土を処理するには、PCのスペック設定が重要です。

メモリ不足を「スワップ」で解決

メモリが16GB以上あっても、処理中には足りなくなることがあります。仮想的なメモリ(スワップ)を12GB作成します。

# スワップファイルの作成と有効化
sudo fallocate -l 12G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 確認
free -h

ディスク容量不足を解決

日本全土のデータ加工には一時的に膨大な容量が必要です。
もし途中で止まってしまったら、以下のコマンドでディスクを拡張します。

# パーティション拡張ツールのインストール
sudo apt update && sudo apt install -y cloud-guest-utils

# パーティションを最大まで広げる(sda 3 の間はスペース)
sudo growpart /dev/sda 3
sudo resize2fs /dev/sda3

# 20GB以上の空きがあるか確認
df -h .

2. OSRMのインストール

必要なツールを入れ、OSRMのプログラムをビルド(組み立て)します。

# 依存ライブラリのインストール
sudo apt install -y build-essential git cmake pkg-config \
libbz2-dev libxml2-dev libzip-dev libboost-all-dev \
lua5.2 liblua5.2-dev libtbb-dev libosmpbf-dev libpng-dev

# 本体のダウンロードとビルド
git clone --depth 1 --branch v5.27.1 [https://github.com/Project-OSRM/osrm-backend.git](https://github.com/Project-OSRM/osrm-backend.git)
cd osrm-backend && mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j1  # メモリ消費を抑えるため「-j1」で実行
sudo make install

3. 日本全土の地図データを加工する

必ず ~/osrm-data という専用の作業ディレクトリを作りましょう。

mkdir -p ~/osrm-data && cd ~/osrm-data

# 最新の日本地図データをダウンロード
wget https://download.geofabrik.de/asia/japan-latest.osm.pbf

# 設定ファイルをリンク
ln -sf ~/osrm-backend/profiles/car.lua car.lua
ln -sf ~/osrm-backend/profiles/lib lib

# 【重要】データ加工の3ステップ
# 1. 抽出(数時間かかります)
osrm-extract japan-latest.osm.pbf -p car.lua

# 2. 分割
osrm-partition japan-latest.osrm

# 3. カスタマイズ
osrm-customize japan-latest.osrm

4. サーバーの起動とテスト

データが完成したら、サーバーを起動します。

osrm-routed --algorithm mld japan-latest.osrm

別のターミナルで、Pythonなどを使って http://localhost:5000 にリクエストを送れば、瞬時にトラックの走行距離が返ってきます!

まとめ:成功のコツ

  1. ディスクの空きは30GB以上確保する。
  2. スワップは必ず10GB以上設定する。
  3. エラーが出たら rm -f japan-latest.osrm.* で一度掃除してからやり直す

これであなた専用の、高速な経路検索サーバーの完成です!

コメント

タイトルとURLをコピーしました