OpenStreetMapデータを利用し、ルート検索、到達圏、行列計算、スナップ機能を提供するJava製のオープンソースルーティングエンジンです。
osm-search/Nominatim
OpenStreetMapのデータを名前や住所で検索し、逆ジオコーディングも行えるオープンソースのジオコーディングサービス。
代替できる製品:Google Maps Geocoding API
- スター
- 4,552
- フォーク
- 869
- 未解決の Issue
- 104
- 最終コミット
- 3 日前
これは何?
Nominatimは、ジオコーディングと呼ばれる、OpenStreetMapのデータを名前や住所で検索するためのツールです。逆方向の処理も可能で、任意のOSM上の地点から仮想的な住所を生成します。OpenStreetMapのホームページにある検索ボックスの検索バックエンドとして使われており、最新データを使った公開インスタンスで検索できます。
独自のサービスを運用するには、リポジトリをcloneし、国別のグリッドファイルをダウンロードして、APIとデータベースの各コンポーネントに必要なPythonパッケージをインストールします。さらに、planet extractなどのOSMデータファイルをプロジェクトディレクトリにインポートします。その後、uvicornとfalconを使い、nominatim serveコマンドで起動するWebサーバーを通じて検索APIを提供します。
コードベースの大部分はPythonで書かれており、osm2pgsql用のLua設定ファイルも含まれています。ドキュメントでは、安定版リリースと開発ブランチの両方について、インストール、管理、トラブルシューティングを解説しています。
主な機能
- 01前方ジオコーディング:OSMデータから場所や住所を名前で検索します。
- 02逆ジオコーディング:指定した座標の住所を生成します。
- 03planet extractを含むOSMデータファイルをローカルプロジェクトにインポートします。
- 04PythonのWebサーバー(uvicornとfalcon)を通じて検索APIを提供します。
ユースケース
- 地図アプリケーションに住所検索やオートコンプリートを追加する。
- GPSやログの座標を、人が読みやすい住所に変換する。
- 地域のOSM extractを使って、非公開のジオコーダーを運用する。
クイックスタート
- 1
リポジトリをクローンする
git clone https://github.com/osm-search/Nominatim.git - 2
Python の virtualenv を作成する
python3 -m venv nominatim-venv - 3
Nominatim のパッケージを virtualenv にインストールする
./nominatim-venv/bin/pip install packaging/nominatim-{api,db} - 4
プロジェクトディレクトリを作成し、OSM データをインポートする
nominatim import --osm-file <your planet file> 2>&1 | tee setup.log
使う前に知っておきたいこと
- GPL-3.0 ライセンスで提供されています。コピーレフトライセンスのため、派生物もオープンソースにする必要があります。
- 自分で実行するには、OSM の planet ファイル全体をインポートする必要があり、セルフホスティングにはかなりの労力がかかります。
トピック
よくある質問
- Nominatim とは?
- OpenStreetMapのデータを名前や住所で検索し、逆ジオコーディングも行えるオープンソースのジオコーディングサービス。 Nominatimは、ジオコーディングと呼ばれる、OpenStreetMapのデータを名前や住所で検索するためのツールです。逆方向の処理も可能で、任意のOSM上の地点から仮想的な住所を生成します。OpenStreetMapのホームページにある検索ボックスの検索バックエンドとして使われており、最新データを使った公開インスタンスで検索できます。
- Nominatim は無料で使えますか?ライセンスは?
- Nominatim は GPL-3.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- Nominatim は今もメンテナンスされていますか?
- 活発にメンテナンス中。Nominatim の最終コミットは 2026年11月3日 です。
- Nominatim は何に使えますか?
- 地図アプリケーションに住所検索やオートコンプリートを追加する。 GPSやログの座標を、人が読みやすい住所に変換する。 地域のOSM extractを使って、非公開のジオコーダーを運用する。
- Nominatim のインストール方法は?
- リポジトリをクローンする: git clone https://github.com/osm-search/Nominatim.git Python の virtualenv を作成する: python3 -m venv nominatim-venv Nominatim のパッケージを virtualenv にインストールする: ./nominatim-venv/bin/pip install packaging/nominatim-{api,db} プロジェクトディレクトリを作成し、OSM データをインポートする: nominatim import --osm-file <your planet file> 2>&1 | tee setup.log
- Nominatim はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/osm-search/Nominatim
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
OpenStreetMapのデータと標高地形を使って、Java、Bedrock、Luanti向けに実在する場所のMinecraftワールドを生成します。
OpenStreetMapデータを使って、経路や距離テーブル、GPSのマップマッチングなどを計算する高性能なC++ルーティングエンジン。
現地で簡単な質問に答えて地図データを改善できる、Android・iOS向けの使いやすいOpenStreetMapエディター。
OpenStreetMapのウェブサイト、編集API、Browseページ、GPXアップロードを支えるRuby on Railsアプリケーション。
EXIF情報の抽出、撮影場所の特定、Live Photosの再生に対応し、アルバムや地図表示も備えたセルフホスト型フォトギャラリー。