TomTom Searchの互換ホスト

TomTomのGeocode、Reverse Geocode、Fuzzy Searchの各エンドポイントが、tomtom.mygeocode.comで同じsummaryとresultsの構造で応答します。ほとんどの連携で表示されるfreeformAddressフィールドも含まれます。

ホスト名を1つ変えるだけ

元のホスト
  • api.tomtom.com
代わりに使うホストtomtom.mygeocode.com
キーのパラメーターkey(任意:どのアドレスでもキーなしで1日あたり2,500件のリクエストが使えます。クレジット、パッケージ、利用履歴を使うにはここにMy Geocodeのキーを入れてください)
変更前
curl "https://api.tomtom.com/search/2/geocode/Avenida%20Paulista%201578%20S%C3%A3o%20Paulo.json?key=YOUR_TOMTOM_KEY"
変更後
curl "https://tomtom.mygeocode.com/search/2/geocode/Avenida%20Paulista%201578%20S%C3%A3o%20Paulo.json?key=YOUR_MYGEOCODE_KEY"

移行する理由

TomTomの無料枠は1日あたり2,500トランザクションで当社と同じですが、TomTomでは1トランザクションで複数のクレジットを消費することがあります。こちらではすべての呼び出しが1リクエストで、有料利用には定額のオプションもあります。

キーの有無にかかわらず、無料枠は同じです。tomtom.mygeocode.comへのリクエストは、お使いのアドレスまたはキーが当社独自のエンドポイントで得ている1日あたり2,500件の無料リクエストと同じ枠から差し引かれます。それを超える分は、プリペイドクレジットで1リクエストあたり€0.0001、またはUnlimitedキーで月額€50です。登録に必要なのはメールアドレスだけです。

料金を見る 無料のキーを取得

エンドポイント

tomtom.mygeocode.comのパス機能バックエンド
/search/2/geocode/{query}.jsonジオコードジオコーディング
/search/2/structuredGeocode.json?countryCode=...&streetName=...構造化ジオコードジオコーディング
/search/2/reverseGeocode/{lat},{lon}.json逆ジオコード逆ジオコーディング
/search/2/search/{query}.json?typeahead=true先行入力付きのあいまい検索住所オートコンプリート

レスポンスの例

上記のリクエストはこれを返します。フィールド名、入れ子構造、型はTomTomに準拠しています。その中身のデータだけが当社のものです。

tomtom.mygeocode.comからのレスポンス
{
  "summary": {
    "query": "avenida paulista 1578 sao paulo",
    "queryType": "NON_NEAR",
    "queryTime": 21,
    "numResults": 1,
    "offset": 0,
    "totalResults": 1,
    "fuzzyLevel": 1
  },
  "results": [
    {
      "type": "Point Address",
      "id": "mg.br.addr.7d1a55f2",
      "score": 11.98,
      "address": {
        "streetNumber": "1578",
        "streetName": "Avenida Paulista",
        "municipalitySubdivision": "Bela Vista",
        "municipality": "São Paulo",
        "countrySecondarySubdivision": "São Paulo",
        "countrySubdivision": "São Paulo",
        "countrySubdivisionCode": "SP",
        "postalCode": "01310-200",
        "countryCode": "BR",
        "country": "Brasil",
        "countryCodeISO3": "BRA",
        "freeformAddress": "Avenida Paulista 1578, Bela Vista, São Paulo, SP 01310-200",
        "localName": "São Paulo"
      },
      "position": { "lat": -23.561414, "lon": -46.655881 },
      "viewport": {
        "topLeftPoint": { "lat": -23.560514, "lon": -46.656881 },
        "btmRightPoint": { "lat": -23.562314, "lon": -46.654881 }
      }
    }
  ]
}

詳細と相違点

1日あたり最初の2,500件のリクエストにはキーは不要です。My Geocodeのキーを使う場合は、TomTomのキーがあった場所、つまりkeyクエリパラメーターに入れてください。X-API-Keyヘッダー、Authorization: Bearer、HTTP Basic認証(キーをユーザー名として使用)もすべてのホストで使えるため、独自の方法で認証するクライアントライブラリも変更なしで動作し続けます。

  • 自由形式、構造化、逆ジオコーディングのすべてがルーティングされ、searchエンドポイントにも対応しています。
  • 回答はTomTomのsummaryresultsの形式を保ちます。
  • Batch Searchは両方の方式で動作します。POST /search/2/batch/sync.jsonは最大100件のbatchItemsにTomTomの形式(項目ごとのstatusCoderesponse、そしてsummary)で一度に応答します。POST /search/2/batch.jsonは最大10,000件を受け付け、Locationヘッダー付きの202で応答し、結果はそこから取得します。TomTomの数え方と同じく各バッチ項目が1リクエストとして数えられます。割り当ての残りを超えるバッチはTomTomの429で全体が拒否され、保存された結果の取得は数えられません。

お使いのクライアントがここに記載されていないフィールドや動作に依存している場合は、お知らせください。互換性の差異はたいてい小さいため、すぐに修正されます。

その他の互換ホスト

互換ホストの仕組み概要JavaScriptライブラリの互換対応