互換性

このAPIを使うために、このAPIを覚える必要はありません。他の17のジオコーディングAPIとIP検索APIについて、そのプロバイダーのリクエスト形式を受け付け、そのプロバイダーのレスポンス形式で応答し、背後で当社のデータを使うホストを用意しています。これらのプロバイダーが提供するJavaScript地図ライブラリについても同様です。移行はホスト名を変えるだけです。

仕組み

各互換ホストは、1つのプロバイダーの公開HTTPインターフェースを完全に実装しています。同じパス、同じクエリパラメータ、同じJSONフィールド名・入れ子構造・型、同じステータスの語彙、同じエラー形式です。値は当社のものです。クライアントコード、解析コード、エラー処理は変わりません。

  1. ホストを変更します。 maps.googleapis.comgapi.mygeocode.comに、dev.virtualearth.netbing.mygeocode.comに、というように変わります。すべての組み合わせは下の表にあります。
  2. キーを入れ替えるか、削除します。以前のキーが使っていたパラメータ(keyapiKeyaccess_tokentokenなど)にMy Geocodeのキーを入れてください。どのアドレスもキーなしで1日あたり2,500件の無料リクエストを利用でき、どのキーにも独自に2,500件が付くため、移行とテストに費用はかかりません。
  3. 比較します。実際のリクエストのサンプルを両方のホストに送ってください。データが異なるため座標はわずかに違いますが、フィールド名は同じです。
変更前
$ curl "https://maps.googleapis.com/maps/api/geocode/json?address=10+Downing+St+London&key=GOOGLE_KEY"
変更後
$ curl "https://gapi.mygeocode.com/maps/api/geocode/json?address=10+Downing+St+London&key=MYGEOCODE_KEY"

すべての互換ホスト

すべてのホストはapi.mygeocode.comと同じインフラ、同じデータ、同じ無料枠、同じ料金で動作します。プロバイダーをクリックすると、エンドポイントの一覧、レスポンスのサンプル、既知の相違点が表示されます。

プロバイダーと検索の種類元のホスト互換ホストキーのパラメーター
Google Maps Platform
ジオコーディング、逆ジオコーディング、オートコンプリート、タイムゾーン、標高
maps.googleapis.comgapi.mygeocode.comkey
Bing Maps REST Services
ジオコーディング、逆ジオコーディング、オートコンプリート、タイムゾーン、標高
dev.virtualearth.netbing.mygeocode.comkey
HERE Geocoding and Search
ジオコーディング、逆ジオコーディング、オートコンプリート
geocode.search.hereapi.com
revgeocode.search.hereapi.com
autosuggest.search.hereapi.com
autocomplete.search.hereapi.com
here.mygeocode.comapiKey
Mapbox Geocoding
ジオコーディング、逆ジオコーディング、オートコンプリート
api.mapbox.commapbox.mygeocode.comaccess_token
Geocode.Farm
ジオコーディング、逆ジオコーディング
api.geocode.farm
www.geocode.farm
farm.mygeocode.comkey
OpenStreetMap Nominatim
ジオコーディング、逆ジオコーディング
nominatim.openstreetmap.orgosm.mygeocode.comなし。keyまたはヘッダーを追加
OpenCage
ジオコーディング、逆ジオコーディング
api.opencagedata.comopencage.mygeocode.comkey
LocationIQ
ジオコーディング、逆ジオコーディング、オートコンプリート、タイムゾーン
us1.locationiq.com
eu1.locationiq.com
locationiq.mygeocode.comkey
Geoapify
ジオコーディング、逆ジオコーディング、オートコンプリート、IP検索
api.geoapify.comgeoapify.mygeocode.comapiKey
TomTom Search
ジオコーディング、逆ジオコーディング、オートコンプリート
api.tomtom.comtomtom.mygeocode.comkey
MapQuest Geocoding
ジオコーディング、逆ジオコーディング
www.mapquestapi.com
open.mapquestapi.com
mapquest.mygeocode.comkey
Geocodio
ジオコーディング、逆ジオコーディング
api.geocod.iogeocodio.mygeocode.comapi_key
PositionStack
ジオコーディング、逆ジオコーディング
api.positionstack.compositionstack.mygeocode.comaccess_key
ip-api.com
IP検索
ip-api.com
pro.ip-api.com
ipapi.mygeocode.comkey
ipinfo.io
IP検索
ipinfo.ioipinfo.mygeocode.comtoken
ipstack
IP検索
api.ipstack.comipstack.mygeocode.comaccess_key
Open-Elevation
Elevation
api.open-elevation.comopenelevation.mygeocode.comなし。keyまたはヘッダーを追加

JavaScript地図ライブラリ

プロバイダーの変更が最も大変なのはブラウザです。地図、ジオコーダーのウィジェット、課金が絡み合っているからです。以下のライブラリでは、ライブラリ自体を当社のホストから読み込み(MapLibre、Mapbox GL、Leafletの場合は設定で当社のホストを指定し)、公開APIはそのまま維持されます。google.maps.MapMicrosoft.Maps.MapH.Mapなどです。タイル、ジオコーディング、オートコンプリート、標高は当社から提供されます。地図の読み込みとタイルは無料で、ジオコーディングの呼び出しは通常どおり数えられます。

ライブラリ従来の読み込み元新しい読み込み元引き続き使えるもの
Google Maps JavaScript API(地図ライブラリ)maps.googleapis.comgapi.mygeocode.com当社のタイルを使ったgoogle.maps.Map(roadmap、satellite、terrainの地図タイプ)
Bing Maps V8 Web Control(地図コントロール)www.bing.combing.mygeocode.comMicrosoft.Maps.Map、Location、LocationRect、Pushpin、Infobox、Polyline、PolygonとLayer
Mapbox GL JSとmapbox-gl-geocodermapbox.mygeocode.comベクタータイルのスタイル:streets、light、dark、outdoors(Mapboxスタイル仕様準拠)
Leafletのジオコーダープラグインtile.openstreetmap.orgtiles.mygeocode.comLeaflet Control Geocoder:nominatim、google、bing、mapbox、here、opencage、latLng、mapquestの各ジオコーダーを、それぞれ対応するwww.mygeocode.comのホストに向けて使用
HERE Maps API for JavaScript(地図ライブラリ)js.api.here.comhere.mygeocode.comH.Map, H.map.Marker, H.map.Polyline, H.map.Polygon, H.map.Group
MapQuest.jsapi.mqcdn.commapquest.mygeocode.comL.mapquest.mapとtileLayer(map、hybrid、satellite、light、dark)

JavaScript互換ライブラリのページに、変更前後のコード例、ライブラリごとに含まれるものと含まれないものの一覧、タイルとスタイルのURLがあります。

キーの置き場所

各ホストは、元のプロバイダーが想定する場所とX-API-Keyヘッダーの両方でキーを受け付けます。キーは任意で、アドレスごとに1日あたり2,500件のリクエストはキーなしで利用できます。無料のキーは1分ほどで取得でき、クレジット、パッケージ、利用履歴が加わります。従量課金キーは連続する24時間あたり2つのIPアドレスから、Unlimitedキーは3つから利用できます。より多くのアドレスで使うには、キーやパッケージを追加してください(認証をご覧ください)。

パラメータ使用するプロバイダー
keyGoogle Maps、Bing Maps、Geocode.Farm、OpenCage、LocationIQ、TomTom、MapQuest、ip-api(pro)
apiKeyHERE、Geoapify
access_tokenMapbox
api_keyGeocodio
access_keyPositionStack、ipstack
tokenまたはAuthorization: Beareripinfo、HERE
なしNominatim、Open-Elevation。クエリにkey=...を追加するか、X-API-Keyヘッダーを送信してください。

互換ホストでの割り当てとエラー

1日の割り当ては他のすべての場所と同じで、api.mygeocode.comとすべての互換ホストを合算し、キーごと(キーが送信されない場合はアドレスごと)に数えられます。1日あたり2,500件が無料で、それを超えるとクレジットまたはUnlimitedキーが使われます。X-Quota-*X-Key-IPs-*ヘッダーはすべてのホストで送信されるため、本文の形式にかかわらず、ヘッダーから実際の状態を読み取れます。本文では、上限はプロバイダーと同じ方法で報告されます。

ホストクレジット不足(402)無効なキー、キーなし、またはIP制限に達したキー無効なリクエスト
gapi.mygeocode.comHTTP 200、"status": "OVER_QUERY_LIMIT""status": "REQUEST_DENIED""status": "INVALID_REQUEST"
bing.mygeocode.comエンベロープ内の"statusCode": 429"statusCode": 401, authenticationResultCode: InvalidCredentialserrorDetails付きの"statusCode": 400
here.mygeocode.comHTTP 429、{"title": "Too Many Requests", "status": 429}error_description付きのHTTP 401titlecause付きのHTTP 400
mapbox.mygeocode.comHTTP 429、{"message": "Rate limit exceeded"}HTTP 401、{"message": "Not Authorized - Invalid Token"}message付きのHTTP 422
osm.mygeocode.comHTTP 429、{"error": {"code": 429, "message": "..."}}該当なしHTTP 400、{"error": {"code": 400, "message": "..."}}
ipapi.mygeocode.comHTTP 200、{"status": "fail", "message": "quota"}{"status": "fail", "message": "invalid key"}{"status": "fail", "message": "invalid query"}
その他プロバイダーのドキュメントどおり。各ホストのページをご覧ください

一致する点と一致しない点

同一

  • プロバイダーがドキュメントに記載しているパス、メソッド、クエリパラメータ。
  • レスポンスの構造:フィールド名、入れ子構造、配列、型、座標の順序(Mapboxの[lon, lat]を含む)。
  • ステータスと信頼度の語彙(ROOFTOPHighhouseNumberEXACT_MATCHなど)。当社のprecisionconfidenceから対応付けています。
  • エラーの形式。既存のエラー処理はそのまま動作します。
  • 料金と割り当て:互換ホストを使っても追加料金はかかりません。

異なる点

  • データ。座標、整形済み文字列、信頼度の値は当社のものであり、元のプロバイダーと桁まで一致するわけではありません。番地レベルのカバレッジは国によって異なります。カバレッジをご覧ください。
  • 識別子。場所IDは当社のもので安定していますが、元のプロバイダーに送ることはできません。
  • ジオコーディング、オートコンプリート、IP、タイムゾーン、標高以外のもの:ルート検索、場所の詳細、写真、交通情報、Street View。各ホストのページに、提供されていないものが記載されています。
  • キー:当社のエンドポイントと同様に、従量課金キーは連続する24時間あたり2つのIPアドレス、Unlimitedキーは3つです。

移行チェックリスト

  1. コードと設定からプロバイダーのホスト名を検索します。サーバーのコード、モバイルアプリ、CDNのルール、キャッシュされた設定など、複数の場所にあることがよくあります。
  2. 上の表にある互換ホストに変更します。パスはそのままにします。
  3. キーをMy Geocodeのキーに置き換えます。サーバーごとに1つ、多くても2台で1つのキーを使ってください。従量課金キーは連続する24時間あたり2つのIPアドレス、Unlimitedキーは3つまで受け付けます。
  4. 既存のテストスイートを実行します。変更なしで通るはずです。依存しているフィールドがない場合は、ホストのページで既知の不足点を確認し、当社にお知らせください
  5. 実際のリクエストを数百件両方のホストに送り直し、座標と表示しているフィールドを比較します。互換ホストがprecisionを公開している場合(location_typeaccuracyresultTypeなど)は、それも確認してください。
  6. 1日ほどX-Quota-Usedを観察して、プランの規模を決めます。1日あたり約19,000件未満ならクレジット、それを超えるならUnlimitedキーです。
  7. 以前の課金を解約します。

プロバイダーのSDK

ほとんどの公式クライアントライブラリはカスタムのベースURLを受け付けるため、互換ホストでも動作します。Google Maps Servicesのクライアント(Python用のgooglemaps@googlemaps/google-maps-services-js)、MapboxのSDK(originオプション)、HEREのRESTクライアント、ipinfoのライブラリ、geopyなどのNominatimラッパー(domain=)です。表にあるホストを指定し、プロバイダーのキーがあった場所にMy Geocodeのキーを渡してください。

一覧にないプロバイダー

プロバイダーの形式がドキュメント化されていれば、ホストの追加は数日の作業です。ここにないサービスをお使いの場合は、サービス名と、1日あたりのおおよそのリクエスト数をお知らせください。最近追加したものはすべてユーザーからの要望によるものです。