Google Maps Platformの互換ホスト

Geocoding、Places Autocomplete、Time Zone、Elevationの各ウェブサービスが、gapi.mygeocode.comの同じパスで、Googleが返すのと同じJSON構造で応答します。ホストを変更し、keyパラメーターにMy Geocodeのキーを入れれば、残りのコードはそのままです。

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

元のホスト
  • maps.googleapis.com
代わりに使うホストgapi.mygeocode.com
キーのパラメーターkey(任意:どのアドレスでもキーなしで1日あたり2,500件のリクエストが使えます。クレジット、パッケージ、利用履歴を使うにはここにMy Geocodeのキーを入れてください)
変更前
curl "https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_GOOGLE_KEY"
変更後
curl "https://gapi.mygeocode.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_MYGEOCODE_KEY"

移行する理由

Googleではすべての呼び出しに請求先アカウントとキーが必要で、SKUごとにリクエスト単位で課金されます。こちらでは無料のキーで1日あたり最初の2,500回の呼び出しをカバーし、それ以降の料金は1リクエストあたり€0.0001、または定額の月額€50です。

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

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

エンドポイント

gapi.mygeocode.comのパス機能バックエンド
/maps/api/geocode/json?address=...ジオコーディングジオコーディング
/maps/api/geocode/json?latlng=lat,lng逆ジオコーディング逆ジオコーディング
/maps/api/place/autocomplete/json?input=...Places Autocomplete(座標付きの予測候補)住所オートコンプリート
/maps/api/timezone/json?location=lat,lng&timestamp=...Time Zone API(タイムゾーン)タイムゾーン検索
/maps/api/elevation/json?locations=lat,lng|lat,lngElevation API(標高)標高検索

レスポンスの例

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

gapi.mygeocode.comからのレスポンス
{
  "results": [
    {
      "address_components": [
        { "long_name": "1600", "short_name": "1600", "types": ["street_number"] },
        { "long_name": "Amphitheatre Parkway", "short_name": "Amphitheatre Pkwy", "types": ["route"] },
        { "long_name": "Mountain View", "short_name": "Mountain View", "types": ["locality", "political"] },
        { "long_name": "Santa Clara County", "short_name": "Santa Clara County", "types": ["administrative_area_level_2", "political"] },
        { "long_name": "California", "short_name": "CA", "types": ["administrative_area_level_1", "political"] },
        { "long_name": "United States", "short_name": "US", "types": ["country", "political"] },
        { "long_name": "94043", "short_name": "94043", "types": ["postal_code"] }
      ],
      "formatted_address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
      "geometry": {
        "location": { "lat": 37.4224428, "lng": -122.0842467 },
        "location_type": "ROOFTOP",
        "viewport": {
          "northeast": { "lat": 37.4237918, "lng": -122.0828977 },
          "southwest": { "lat": 37.4210938, "lng": -122.0855957 }
        }
      },
      "place_id": "mg.us.addr.5e1b2c7a9f",
      "plus_code": { "compound_code": "CWC8+W5 Mountain View, CA, USA", "global_code": "849VCWC8+W5" },
      "types": ["street_address"]
    }
  ],
  "status": "OK"
}

詳細と相違点

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

  • エラーの本文は呼び出したAPIに合わせたものになります:Time Zone APIはerrorMessagestatusを返し、その他のAPIはerror_message、空の結果リスト、そしてstatusを返します。
  • タイムゾーンの回答は、Googleと同様に海上ではZERO_RESULTSを返し、languageにも対応します。
  • Elevationはlocationsenc:でエンコードされたポリライン、samples付きのpathを、Googleが許可するのと同じく最大512地点まで受け付けます。ここでは各地点が1リクエストとして数えられます。

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

その他の互換ホスト

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