移行

OpenCage、LocationIQ、Geoapify:実際に何が違うのか

OpenCage、LocationIQ、Geoapifyは開発者の議論でひとまとめにされることが多いため、実際に何が3つを分けているのかを正確にしておく価値があります。類似点は本物ですが、連携にとって重要な違いも同じく本物だからです。

3つとも、クエリパラメータとして送信するキーで認証します。これは小規模から中規模のジオコーディングプロバイダー全般で最も一般的なパターンです。違いが出るのは、対象範囲とレスポンスの構造です。

OpenCageは対象をジオコーディングと逆ジオコーディングに絞っており、レスポンスはresults配列と、住所をroadcityなどのフィールドに分解したcomponentsオブジェクトを中心に構成されています。内部では複数のオープンデータソースを組み合わせており、その魅力は主にシンプルさと、基盤となるデータの出どころに関する透明性にあります。

LocationIQもオープンな地理データを基盤としており、そのレスポンスの形(latlondisplay_name、そしてaddressオブジェクト)は、OpenStreetMap由来のデータを直接扱ったことがある人には見慣れたものに見えるでしょう。自前のジオコーディングインフラを運用することなく、オープンデータを基盤にしたマネージドのAPIレイヤーを求めるチームに選ばれる傾向があります。

Geoapifyはより幅広いアプローチを取っており、ジオコーディングをルーティング、場所の検索、地図のスタイリングとともに、1つのAPIキーと1つのアカウントでまとめて提供しています。ジオコーディングのレスポンスは、propertiesgeometryのオブジェクトを持つ、GeoJSONに似たfeatures配列の構造に従っています。ここでの本当の差別化要因はこのまとめ方です。Geoapifyを選ぶチームは、単にジオコーダーを選んでいるのではなく、複数の位置情報機能を1つのベンダーに集約するという判断をしていることが多いのです。

この3つのいずれかを評価している、あるいはいずれかから移行しようとしているチームにとって、最初に答えておくべき構造上の問いは、ジオコーディングだけが必要なのか(その狭いニーズにはOpenCageもLocationIQも合います)、それとも1つのアカウントでより幅広い位置情報機能が必要なのか(Geoapifyが想定しているのはこちらに近いものです)という点です。

My Geocodeは3つすべての互換ホストを運用しています。OpenCageのresultsとcomponentsの構造は/compatibility/opencage/、LocationIQのlat、lon、display_nameのフィールドは/compatibility/locationiq/、Geoapifyのfeatures配列は/compatibility/geoapify/です。いずれも著作権、利用規約、プライバシーに関する文言を除き、それぞれのプロバイダーの形を正確に再現しています。そのため、現在この3つのうち2つに分かれて利用しているチームや集約を検討しているチームは、3つの別々のアカウントを用意することなく、同じプラットフォーム上でそれぞれの形をテストできます。

3つの互換ホストすべてで、認証にはX-API-Keyヘッダー、Authorization: Bearer、HTTP Basic認証、クエリパラメータのいずれも使えます。どの形を使っても料金は同じです。キーなしで1日あたり2,500リクエストが無料、さらにキーごとにネットワーク単位でカウントされる1日あたり2,500リクエストが無料で、その後は1リクエストあたり€0.0001のプリペイドクレジット、または月額€50のUnlimitedキーとなり、すべてのエンドポイントが同じ料金です。