ジオコーディングとは、住所(例: 「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 つの基本アーキテクチャがあります。
- ジオコーディングと表示はすべてブラウザで行います。たとえば ユーザーがページ上で住所を入力したときにアプリケーションがその画像をジオコーディングします。その後 は、ジオコーディングを使用して地図上にマーカーを作成します。または ジオコードを使用した簡単な分析を行います。データはサーバーに送信されません。 この方法により、サーバーの負荷を軽減できます。
- ブラウザでジオコーディングを実行してから、サーバーに送信します。 たとえば、ユーザーがページに住所を入力した場合、アプリケーション ブラウザでジオコーディングします。その後、アプリはデータをサーバーに送信します。「 サーバーが近くのスポットなどのデータを返します。この を使用すると、独自のデータに基づいて回答をカスタマイズできます。
サーバー側のジオコーディングはいつ使用するか
サーバーサイドのジオコーディングは、 クライアントの入力なしで住所をジオコーディングする必要がある。一般的な例 ユーザー入力とは無関係なデータセットを 取得する場合です たとえば、既知の有限の既知のセットが ジオコーディングが必要な住所を抽出できます。サーバーサイドのジオコーディングは は、クライアントサイドのジオコーディングが失敗した場合のバックアップとしても役立ちます。
考えられる懸念事項としては、ユーザーにとって不必要にレイテンシが増加すること、 クライアントサイドよりも低品質で、ジオコーディングの結果も リクエストに含まれる情報を確認できます。