Headwayを使って独自のOpenStreetMapマッピングサーバーをデプロイする方法
独自のマッピングインフラストラクチャを構築したことがある人なら、その大変さを知っているでしょう。まずマップを描画するためのタイルサーバーを設定し、次に座標検索のために別途NominatimやPeliasを接続し、ルート検索のためにValhallaやOSRMをデプロイし、その上にWebフロントエンドで全てを統合しようとします。結局のところ、シンプルなタスクが、十数個の不一致なサービスと設定ファイルの混乱になってしまいます。
最近、Headwayリポジトリを見つけました。この作者たちはまさにこの問題を解決しようと試みています。OpenStreetMapデータを基に、単一のすぐに使えるスタックとして動作するマッピングサーバーをアセンブルしました。
箱の中には何が入っているか
このプロジェクトのコアコンセプトはシンプルです。コンポーネントを手動で接着する必要なく、数コマンドでフル機能のマップサービスを起動する能力を開発者に提供することです。
スタックには以下が含まれます:
- ブラウザ用のWebインターフェースを備えたベースマップ
- 住所やPOI(興味あるポイント)を検索するためのジオコーダー
- ルート検索エンジン
- 200以上の人気都市向けの設定済みコンフィギュレーション
このプロジェクトはRustで書かれており、自己ホスティング向けに設計されています。特定の街区、都市、国全体のOSM抽出データを取得し、ビルドスクリプトに投入できます。
ルート検索と検索の性能
現在の段階では、Headwayは通常これらのサービスを使用する基本的な機能を処理します。
まずジオコーディングです。検索バーでは、読み込んだマップフラグメント内の通り名、建物番号、施設を検索できます。
次に、2点間のルート計算です。3つの主要な移動モードがサポートされています:
- 徒歩
- 自転車
- 自動車
公共交通機関のルート検索はまだ開発中なので、地下鉄やバスの接続はまだ期待しないでください。
システム要件とビルドの詳細
奇迹はありません:地理空間データの処理はどこかでハードウェアの限界にぶつかりものです。開発者はドキュメントでスタックの食欲について正直に警告しています。
動作ファイルの生成には、LinuxまたはmacOSマシン(amd64アーキテクチャ)で少なくとも8GBのRAMが必要です。大規模なリージョンをビルドする場合は、それ以上のメモリが必要です。データ準備フェーズ中、项目は一時的に50〜100GBのディスク容量を消費するので、事前にSSDの空き容量を確認してください。
コンパイルと抽出データの処理が完了すると、リソース要件は大幅に低下します。平均的な都市のクエリを実行してサービスを提供するには、サーバーで約4GBのRAMが必要です。
どこで役立つか
このようなスタックをデプロイすることは、いくつかの明確なシナリオで理にかなっています:
- 隔離された環境とエアギャップネットワーク。企業アプリケーションがインターネットアクセスなしで閉じた境界内で動作している場合、Headwayが外部マップの必要性をカバーします。
- 地元の配送と物流サービス。ビジネスが単一の都市や地域に限定されている場合、すべてのジオコーディングとルート検索リクエストに対して商用マップAPIに支払う意味はありません。
- ペットプロジェクトとプロトタイプ。サードパーティサービスのAPIキーを登録せずに、ローカルマシンで素早く開始できます。
- プライバシーの要件。ユーザーの移動と検索クエリに関するデータは厳密にあなたのサーバーに留まります。
試す価値はあるか
Headwayは свободной Apache 2.0ライセンスでリリースされています。このプロジェクトには明確な目標とクリーンなコンセプトがあります:GISサービスのセットアップから退屈さを取り除くことです。
特定の都市や地域のローカルマップサーバーが必要な場合、これはテストに最適な候補です。200の готовых都市プリセットの1つから始めて、性能とインターフェースユーザビリティを評価し、その後独自のOSM抽出データのビルドに進んでください。
関連プロジェクト