移行

OpenStreetMap Nominatimからの移行

Nominatimはジオコーディングの選択肢の中でも珍しい位置にあります。自分で運用できるオープンソースソフトウェアであると同時に、誰でも直接問い合わせられる公開デモインスタンスでもあり、正式なAPIキーの代わりに、内容のわかるUser-Agentヘッダーと節度あるリクエスト間隔を求める利用ポリシーによって運用されています。JSONレスポンスにはdisplay_nameの文字列、数値ではなく文字列のlatlonのペア、そしてroadsuburbpostcodeのようなOpenStreetMap独自のタグ付け規則に沿ったaddressオブジェクトが含まれます。

トラフィックが共有のコミュニティリソースで吸収できる範囲を超えると、チームは公開インスタンスで壁に突き当たりがちです。Nominatimのセルフホストは現実的な選択肢ですが、負担の大きいものです。惑星全体または地域単位の大きなOpenStreetMapデータ抽出をダウンロードしてインポートし、そのデータを最新に保ち、サーバーインフラを無期限に自分で運用する必要があります。管理権と引き換えにインフラと保守の作業を引き受けるというこのトレードオフについては、どちらの道を選ぶ前にも正直に向き合う価値があります。

My GeocodeのNominatim互換ホストは、display_namelatlon、住所フィールドの構造を正確に再現しており、Nominatim本来の出力と異なるのは著作権、利用規約、プライバシーに関する文言だけです。詳細なリファレンスは/compatibility/nominatim/にあります。文字列型の座標フィールドも含め、公開Nominatimインスタンス向けに書かれたコードは、変更なしで互換ホストのレスポンスをパースできるはずです。

この移行で実際に変わる点は次のとおりです。

  • 共有の利用ポリシーに結び付いたUser-Agentヘッダーの要件はなくなります。代わりに認証にはキーを使い、X-API-Keyヘッダー、Authorization: Bearerヘッダー、HTTP Basic認証、クエリパラメータのいずれかで送信します
  • 明示されていない共有リソースのレート制限の代わりに、予測可能な1日あたりの割り当てがあります。キーなしで1日あたり2,500リクエストが無料で、さらにキーごとにネットワーク単位でカウントされる1日あたり2,500リクエストが無料です
  • ホスト型サービスが対応するため、運用するインフラも保守すべきOpenStreetMapデータ抽出もありません

無料枠を超えた分の料金は、1リクエストあたり€0.0001のプリペイドクレジット、または月額€50のUnlimitedキーで、この互換ホストを含むすべてのエンドポイントが、プラットフォーム上の他のエンドポイントと同じ料金です。

Nominatimがオープンな地理データを基盤としている点を特に評価していたチームにとって知っておく価値があるのは、より汎用的な用語ではなくsuburbpostcodeのようなOpenStreetMapの規則に基づくフィールド名が、この互換ホストの構造にもそのまま引き継がれていることです。そのため、コードがすでに想定している住所の語彙は、移行後も変わらず通用するはずです。