ジオコーディング時の割り当ての最適な使い方

ジオコーディングとは、住所(例: 「1600 Amphitheatre Parkway, Mountain View, CA など)を地理座標に置き換える (37.423021, -122.083739)を使用して、 地図の位置を調整したりできますGoogle Maps Platform API には、 いくつか紹介します。

  • クライアントサイドのジオコーディング これはブラウザで実行されます。 レスポンスを返します。Maps JavaScript API は、 作成することもできます。このアプローチについては、 Maps JavaScript API ドキュメントをご覧ください
  • HTTP サーバー側のジオコーディング サーバーが直接クエリを ジオコード用の Google のサーバー。Geocoding API はウェブの サービスプロバイダを介して この機能を提供します通常はこれを サーバー側で動作している他のコードによって実装されます。サーバーサイドのジオコーディング 詳しくは、 Geocoding API ドキュメントをご覧ください

クライアント側およびサーバー側のジオコーディングの例

以下はクライアントサイドのジオコーディングのサンプルです。 ジオコーディングを行い、その位置に地図の中心を移動して 地図上のマーカー:

geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address }, function(results, status) {
  if (status == google.maps.GeocoderStatus.OK) {
    map.setCenter(results[0].geometry.location);
    var marker = new google.maps.Marker({
      map: map,
      position: results[0].geometry.location
    });
  }
});

その他の例については、 Maps JavaScript API ドキュメントをご覧ください

これは、Python を使用してサーバー側で geocoding リクエストを使用します。

import urllib2

address="1600+Amphitheatre+Parkway,+Mountain+View,+CA"
key="my-key-here"
url="https://maps.googleapis.com/maps/api/geocode/json?address=%s&key=%s" % (address, key)

response = urllib2.urlopen(url)

jsongeocode = response.read()

これにより、次のコンテンツを含む JSON オブジェクトが生成されます。

{
  "status": "OK",
  "results": [ {
    "types": street_address,
    "formatted_address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
    "address_components": [ {
      "long_name": "1600",
      "short_name": "1600",
      "types": street_number
    }, {
      "long_name": "Amphitheatre Pkwy",
      "short_name": "Amphitheatre Pkwy",
      "types": route
    }, {
      "long_name": "Mountain View",
      "short_name": "Mountain View",
      "types": [ "locality", "political" ]
    }, {
      "long_name": "San Jose",
      "short_name": "San Jose",
      "types": [ "administrative_area_level_3", "political" ]
    }, {
      "long_name": "Santa Clara",
      "short_name": "Santa Clara",
      "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
    } ],
    "geometry": {
      "location": {
        "lat": 37.4220323,
        "lng": -122.0845109
      },
      "location_type": "ROOFTOP",
      "viewport": {
        "southwest": {
          "lat": 37.4188847,
          "lng": -122.0876585
        },
        "northeast": {
          "lat": 37.4251799,
          "lng": -122.0813633
        }
      }
    }
  } ]
}

サーバーサイド ジオコーダには、 できます。その他の例については、 Geocoding API ドキュメント、 Python 用クライアント ライブラリ その他の言語にも対応しています。

割り当てと費用に関する考慮事項

ジオコーディングの費用、割り当て、レート制限は、 ドキュメントをご覧ください

費用

<ph type="x-smartling-placeholder"></ph> 1 日あたりの割り当て(QPD)の上限は、ジオコーディング リクエストで使用されなくなりました。 代わりに、ブラウザ経由でのクライアントサイドか、サーバーサイドでの Geocoding API ウェブサービスは、 従量制で課金されます。 使用料金を管理するには 1 日の割り当ての上限を設定します。

レート制限

ジオコーディング サービスのレートは 3,000 QPM(1 分あたりのクエリ数)に制限されています。 クライアントサイドのクエリとサーバーサイドのクエリの合計として計算されます。

クライアントサイドのジオコーディング リクエストを モバイルアプリでは、すべてのユーザーが同じ状態だと、リクエストでエラーが返されることがあります。 (たとえば、すべてのリクエストが 1 秒間に なります。これを回避するには、次のいずれかを検討してください。

  • リクエストにランダムな間隔(ジッター)を発生させます。リクエストを確認する ユーザーベース全体でランダムに選ばれます
  • Android 向けに開発している場合は、 繰り返しアラーム
  • Android 向けに開発している場合は、適切なロケーションを選択する 戦略をご覧ください。

キャッシュ

詳しくは、 <ph type="x-smartling-placeholder"></ph> Geocoding API ポリシーをご覧ください。

クライアント側のジオコーディングはいつ使用するか

一言で言えば「ほぼ毎回」です。その理由は次のとおりです。

  • クライアントサイドのリクエストとレスポンスは、 インタラクティブなエクスペリエンスをユーザーに提供できます。
  • クライアント側リクエストには、ジオコーディングを改善する情報を含めることができます。 品質: ユーザーの言語、地域、ビューポートです。

特に、クライアントサイドのジオコーディングは、住所をジオコーディングする場合に便利です。 予測します。

クライアント側のジオコーディングには、次の 2 つの基本アーキテクチャがあります。

  • ジオコーディングと表示はすべてブラウザで行います。たとえば ユーザーがページ上で住所を入力したときにアプリケーションがその画像をジオコーディングします。その後 は、ジオコーディングを使用して地図上にマーカーを作成します。または ジオコードを使用した簡単な分析を行います。データはサーバーに送信されません。 この方法により、サーバーの負荷を軽減できます。
  • ブラウザでジオコーディングを実行してから、サーバーに送信します。 たとえば、ユーザーがページに住所を入力した場合、アプリケーション ブラウザでジオコーディングします。その後、アプリはデータをサーバーに送信します。「 サーバーが近くのスポットなどのデータを返します。この を使用すると、独自のデータに基づいて回答をカスタマイズできます。

サーバー側のジオコーディングはいつ使用するか

サーバーサイドのジオコーディングは、 クライアントの入力なしで住所をジオコーディングする必要がある。一般的な例 ユーザー入力とは無関係なデータセットを 取得する場合です たとえば、既知の有限の既知のセットが ジオコーディングが必要な住所を抽出できます。サーバーサイドのジオコーディングは は、クライアントサイドのジオコーディングが失敗した場合のバックアップとしても役立ちます。

考えられる懸念事項としては、ユーザーにとって不必要にレイテンシが増加すること、 クライアントサイドよりも低品質で、ジオコーディングの結果も リクエストに含まれる情報を確認できます。