Place Autocomplete(従来版)は、HTTP リクエストに応じて場所の候補を返すウェブサービスです。リクエストでは、テキスト検索文字列とオプションの地理的境界を指定します。このサービスを使用すると、ユーザーが入力したテキストベースの地理的検索に対して、お店やサービス、住所、スポットなどの場所を返すことで、オートコンプリート機能を提供できます。
Place Autocomplete(従来版)リクエスト
Place Autocomplete(以前のバージョン)は Places API の一部であり、Places API と API キーと割り当てを共有します。
Place Autocomplete(従来版)は、完全な単語や部分文字列を照合して、場所の名前や住所、Plus Codes を解決できます。これにより、アプリケーションはユーザーの入力に合わせて随時クエリを送信し、場所の候補をリアルタイムで表示することができます。
プラスコードは正しい形式で入力する必要があります。つまり、プラス記号は %2B に URL エスケープし、スペースは %20 に URL エスケープする必要があります。
- グローバル コードは、4 文字のエリアコードと 6 文字以上のローカルコードです。たとえば、URL エスケープのグローバル コード
849VCWC8+R9は849VCWC8%2BR9です。 - 複合コードは、明示的な場所を含む 6 文字以上のローカルコードです。たとえば、URL エスケープされた複合コード
CWC8+R9 Mountain View, CA, USAはCWC8%2BR9%20Mountain%20View%20CA%20USAです。
返される予測は、ユーザーが目的の場所を選択する際に役立つように設計されています。返された場所の詳細情報が必要な場合は、Place Details(レガシー)リクエストを送信できます。
Place Autocomplete(従来版)リクエストは、次の形式の HTTP URL です。
https://maps.googleapis.com/maps/api/place/autocomplete/output?parameters
ここで、output には次のいずれかの値を指定できます。
json(推奨)は、JavaScript Object Notation(JSON)形式の出力を示します。xmlは XML としての出力を示します
Place Autocomplete(旧版)リクエストを開始するには、特定のパラメータが必要です。URL の標準規則と同様に、すべてのパラメータはアンパサンド(&)文字を使用して区切ります。パラメータとその可能な値のリストは以下のとおりです。
必須パラメータ
-
入力
検索するテキスト文字列。Place Autocomplete サービスはこの文字列と一致する候補を、関連性の高い順に並べて結果として返します。
オプション パラメータ
-
#components
検索結果を制限する場所のグループ。コンポーネントを使用して、最大 5 つの国でフィルタできます。国は、ISO 3166-1 Alpha-2 に準拠した 2 文字の国コードで指定してください。たとえば、
components=country:frと指定すると、検索結果はフランス国内の場所に限定されます。複数の国は、複数のcountry:XXフィルタとして渡す必要があります。区切り文字にはパイプ文字|を使用します。たとえば、components=country:us|country:pr|country:vi|country:gu|country:mpと指定すると、検索結果は米国およびその未編入組織準州内の場所に限定されます。注: 国コードを使用して予期しない結果が返される場合は、対象の国や属領、地理的に重要な特別な地域を含むコードを使用しているか確認してください。コードの情報については、Wikipedia の ISO 3166 国コードのリストか、ISO オンライン参照プラットフォームをご覧ください。 -
language
結果を返す言語。
- サポートされている言語の一覧をご覧ください。サポート対象の言語は頻繁に更新されるため、このリストで網羅されていない場合があります。
languageが指定されていない場合、API はAccept-Languageヘッダーで指定された優先言語を使用しようとします。- API は、ユーザーと地元住民の両方が読める番地を可能な限り提供します。この目標を達成するため、優先言語を考慮し、必要に応じてユーザーが読める文字に音訳して、現地の言語で住所を返します。その他の住所はすべて、優先言語で返されます。住所コンポーネントはすべて同じ言語で返されます。この言語は最初のコンポーネントから選択されます。
- 優先言語で名前が使用できない場合、API は最も近い一致を使用します。
- 優先言語は、API が返す結果のセットと、それらが返される順序にわずかな影響を与えます。ジオコーダは、言語によって略語の解釈が異なります。たとえば、通りの種類の略語や、ある言語では有効でも別の言語では有効でない同義語などです。たとえば、ハンガリー語の utca と tér は、通りの同義語です。
-
ロケーション
プレイス情報を取得する中心点。これは
latitude,longitudeとして指定する必要があります。ロケーションを指定する場合は、radiusパラメータも指定する必要があります。radiusが指定されていない場合、locationパラメータは無視されます。テキスト検索 API を使用する場合、`query` に `Market in Barcelona` などの明示的な場所が含まれていると、`location` パラメータがオーバーライドされることがあります。 -
locationbias
半径と緯度/経度、または長方形の点を表す 2 つの緯度/経度ペアを指定して、指定した地域の検索結果を優先します。このパラメータが指定されていない場合、API はデフォルトで IP アドレス バイアスを使用します。
-
IP バイアス: IP アドレス バイアスを使用するように API に指示します。文字列
ipbiasを渡します(このオプションには追加のパラメータはありません)。 -
円形: 半径をメートル単位で指定する文字列と、緯度/経度を 10 進数で指定する文字列。形式は次のようにします。
circle:radius@lat,lng -
矩形: 矩形の南西と北東の点を表す 2 つの緯度 / 経度のペアを 10 進数で指定する文字列。
rectangle:south,west|north,eastの形式を使用します。東西の値は -180 ~ 180 の範囲にラップされ、南北の値は -90 ~ 90 の範囲にクランプされます。
-
IP バイアス: IP アドレス バイアスを使用するように API に指示します。文字列
-
locationrestriction
半径と緯度/経度、または長方形の点を表す 2 つの緯度/経度のペアを指定して、結果を特定のエリアに制限します。
-
円形: 半径をメートル単位で指定する文字列と、緯度/経度を 10 進数で指定する文字列。形式は次のようにします。
circle:radius@lat,lng -
矩形: 矩形の南西と北東の点を表す 2 つの緯度 / 経度のペアを 10 進数で指定する文字列。
rectangle:south,west|north,eastの形式を使用します。東西の値は -180 ~ 180 の範囲にラップされ、南北の値は -90 ~ 90 の範囲にクランプされます。
-
円形: 半径をメートル単位で指定する文字列と、緯度/経度を 10 進数で指定する文字列。形式は次のようにします。
-
offset
サービスが予測の照合に使用する最後の文字の入力語句内の位置。たとえば、入力が
Googleでオフセットが 3 の場合、サービスはGooと一致します。オフセットによって決定された文字列は、入力語句の最初の単語とのみ照合されます。たとえば、入力語句がGoogle abcでオフセットが 3 の場合、サービスはGoo abcとの照合を試みます。オフセットが指定されていない場合、サービスは用語全体を使用します。通常、オフセットはテキスト カーソルの位置に設定します。 -
origin
目的地までの直線距離を計算する起点(
distance_metersとして返されます)。この値を省略すると、直線距離は返されません。latitude,longitudeとして指定する必要があります。 -
半径
場所の結果を返す距離(メートル単位)を定義します。
locationパラメータとradiusパラメータを渡すことで、バイアスを設定し、指定した円の範囲内の結果を優先します。これにより、プレイス サービスが指定した範囲内を優先するように検索結果を絞り込むことができますが、指定した範囲外の結果が返されることもあります。半径は、検索の種類や他のパラメータに応じて、自動的に最大値にクランプされます。
- 予測入力: 50,000 メートル
-
Nearby Search:
keywordまたはnameの場合: 50,000 メートル-
keywordまたはnameなし-
最大 50,000 メートル。
rankbyパラメータとは無関係に、エリア密度に基づいて動的に調整されます。 -
rankby=distanceを使用すると、半径パラメータは受け入れられず、INVALID_REQUESTが返されます。
-
最大 50,000 メートル。
- Query Autocomplete: 50,000 メートル
- テキスト検索: 50,000 メートル
-
地域
地域コード。ccTLD(「トップレベル ドメイン」)の 2 文字の値として指定されます。ほとんどの ccTLD コードは ISO 3166-1 コードと同一ですが、いくつか注意が必要な例外もあります。たとえば、英国の ccTLD は「uk」(.co.uk)ですが、ISO 3166-1 コードは「gb」(厳密には「グレートブリテンおよび北アイルランド連合王国」のエンティティ用)です。
-
sessiontoken
課金目的でオートコンプリートのセッションを識別するランダムな文字列。
セッションは、ユーザーが検索語句を入力し始めたときに開始され、ユーザーが場所を選択し、Place Details が呼び出されると終了します。セッションによっては、複数の検索語句が入力された後に、1 つの場所が選択される場合もあります。セッション内の各リクエストで使用される API キーは、同じ Google Cloud Console プロジェクトに属している必要があります。セッションが終了すると、トークンは無効になります。アプリでは、セッションごとに新しいトークンを生成する必要があります。
sessiontokenパラメータを省略する場合や、セッション トークンを再利用する場合は、セッション トークンが指定されていない場合と同様にセッションが課金されます(各リクエストが個別に課金されます)。次のガイドラインに従うことをおすすめします。
- すべての予測入力セッションでセッション トークンを使用します。
- セッションごとに新しいトークンを生成します。バージョン 4 の UUID を使用することをおすすめします。
- セッション内のすべての Place Autocomplete リクエストと Place Details リクエストで使用される API キーが、同じ Cloud Console プロジェクトに属していることを確認します。
- 新しいセッションごとに固有のセッション トークンを渡すようにしてください。複数のセッションで同じトークンを使用すると、リクエストごとに課金されます。
-
strictbounds
locationとradiusで指定した領域に厳密に含まれる場所のみを返します。これはバイアスではなく制限です。つまり、指定領域外の場所は、たとえユーザーの入力内容と一致していても返されません。 -
タイプ
Place Autocomplete リクエストで特定のタイプに結果を限定するには、
typesパラメータを指定します。このパラメータには、プレイスタイプに記載されているタイプまたはタイプのコレクションを指定します。何も指定しないと、すべてのタイプが返されます。プレイスには、表 1 または表 2 に記載されているタイプの単一のプライマリ タイプのみを設定できます。たとえば、食事を提供するホテルは
types=restaurantではなくtypes=lodgingのみで返されることがあります。typesパラメータの値には、次のいずれかを指定できます。-
表 1 または表 2 の値を最大 5 つ。複数の値を指定する場合は、各値を
|(縦棒)で区切ります。次に例を示します。types=book_store|cafe -
表 3 のサポートされているフィルタのいずれか 1 つ。型コレクションを混在させることはできません。
次の場合、リクエストは
INVALID_REQUESTエラーで拒否されます。 -
Place Autocomplete(従来版)の例
カリフォルニア州サンフランシスコを中心とするエリア内で「Amoeba」という文字列を含む施設をリクエストします。
URL
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=amoeba &types=establishment &location=37.76999%2C-122.44696 &radius=500 &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=amoeba&types=establishment&location=37.76999%2C-122.44696&radius=500&key=YOUR_API_KEY'同じリクエストで、サンフランシスコのアシュベリー ストリートとハイト ストリートから 500 メートル以内の結果に制限した場合:
URL
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=amoeba &types=establishment &location=37.76999%2C-122.44696&radius=500 &strictbounds=true &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=amoeba&types=establishment&location=37.76999%2C-122.44696&radius=500&strictbounds=true&key=YOUR_API_KEY'次のサンプルは、「Vict」を含む住所をリクエストし、結果をフランス語で返します。
URL
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=Vict &types=geocode &language=fr &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=geocode&language=fr&key=YOUR_API_KEY'「Vict」を含む都市をリクエストし、ブラジル ポルトガル語で結果を取得します。
URL
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=Vict &types=(cities) &language=pt_BR&key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=(cities)&language=pt_BR&key=YOUR_API_KEY'これらの例では、API キーをご自身のキーに置き換える必要があります。
Place Autocomplete(従来版)のレスポンス
Place Autocomplete(レガシー)のレスポンスは、リクエストの URL パス内の output フラグで示された形式で返されます。次の結果は、次のパラメータを含むクエリに対して返される可能性のある結果を示しています。
URL
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=Paris &types=geocode &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Paris&types=geocode&key=YOUR_API_KEY'JSON
{ "predictions": [ { "description": "Paris, France", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ", "reference": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "France", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "France" }, ], "types": ["locality", "political", "geocode"], }, { "description": "Paris, TX, USA", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJmysnFgZYSoYRSfPTL2YJuck", "reference": "ChIJmysnFgZYSoYRSfPTL2YJuck", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "TX, USA", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "TX" }, { "offset": 11, "value": "USA" }, ], "types": ["locality", "political", "geocode"], }, { "description": "Paris, TN, USA", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJ4zHP-Sije4gRBDEsVxunOWg", "reference": "ChIJ4zHP-Sije4gRBDEsVxunOWg", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "TN, USA", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "TN" }, { "offset": 11, "value": "USA" }, ], "types": ["locality", "political", "geocode"], }, { "description": "Paris, Brant, ON, Canada", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJsamfQbVtLIgR-X18G75Hyi0", "reference": "ChIJsamfQbVtLIgR-X18G75Hyi0", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "Brant, ON, Canada", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "Brant" }, { "offset": 14, "value": "ON" }, { "offset": 18, "value": "Canada" }, ], "types": ["neighborhood", "political", "geocode"], }, { "description": "Paris, KY, USA", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJsU7_xMfKQ4gReI89RJn0-RQ", "reference": "ChIJsU7_xMfKQ4gReI89RJn0-RQ", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "KY, USA", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "KY" }, { "offset": 11, "value": "USA" }, ], "types": ["locality", "political", "geocode"], }, ], "status": "OK", }
XML
<?xml version="1.0" encoding="UTF-8"?> <AutocompletionResponse> <status>OK</status> <prediction> <description>Paris, France</description> <type>locality</type> <type>political</type> <type>geocode</type> <reference>ChIJD7fiBh9u5kcRYJSMaMOCCwQ</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>France</value> <offset>7</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJD7fiBh9u5kcRYJSMaMOCCwQ</place_id> <structured_formatting> <description>Paris</description> <subdescription>France</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> <prediction> <description>Paris, TX, USA</description> <type>locality</type> <type>political</type> <type>geocode</type> <reference>ChIJmysnFgZYSoYRSfPTL2YJuck</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>TX</value> <offset>7</offset> </term> <term> <value>USA</value> <offset>11</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJmysnFgZYSoYRSfPTL2YJuck</place_id> <structured_formatting> <description>Paris</description> <subdescription>TX, USA</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> <prediction> <description>Paris, TN, USA</description> <type>locality</type> <type>political</type> <type>geocode</type> <reference>ChIJ4zHP-Sije4gRBDEsVxunOWg</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>TN</value> <offset>7</offset> </term> <term> <value>USA</value> <offset>11</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJ4zHP-Sije4gRBDEsVxunOWg</place_id> <structured_formatting> <description>Paris</description> <subdescription>TN, USA</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> <prediction> <description>Paris, Brant, ON, Canada</description> <type>neighborhood</type> <type>political</type> <type>geocode</type> <reference>ChIJsamfQbVtLIgR-X18G75Hyi0</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>Brant</value> <offset>7</offset> </term> <term> <value>ON</value> <offset>14</offset> </term> <term> <value>Canada</value> <offset>18</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJsamfQbVtLIgR-X18G75Hyi0</place_id> <structured_formatting> <description>Paris</description> <subdescription>Brant, ON, Canada</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> <prediction> <description>Paris, KY, USA</description> <type>locality</type> <type>political</type> <type>geocode</type> <reference>ChIJsU7_xMfKQ4gReI89RJn0-RQ</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>KY</value> <offset>7</offset> </term> <term> <value>USA</value> <offset>11</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJsU7_xMfKQ4gReI89RJn0-RQ</place_id> <structured_formatting> <description>Paris</description> <subdescription>KY, USA</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> </AutocompletionResponse>
PlacesAutocompleteResponse
| フィールド | 必須 | タイプ | 説明 |
|---|---|---|---|
|
required | Array<PlaceAutocompletePrediction> |
予測の配列が含まれています。 詳細については、PlaceAutocompletePrediction をご覧ください。 |
|
required | PlacesAutocompleteStatus |
リクエストのステータスが格納されます。リクエストが失敗した原因を追跡できるようにデバッグ情報が格納される場合もあります。 詳細については、PlacesAutocompleteStatus をご覧ください。 |
|
省略可 | 文字列 |
サービスが |
|
省略可 | Array<string> |
サービスがリクエスト仕様に関する追加情報を返す場合、レスポンス オブジェクト内に |
結果の中で特に重要なのは place_id 要素です。この要素を使用すると、別のクエリを使用して場所に関するより詳細な情報をリクエストできます。Place Details(以前のバージョン)リクエストをご覧ください。
XML レスポンスは、次の 2 種類の子要素を持つ単一の <AutocompletionResponse> 要素で構成されます。
- 単一の
<status>要素には、リクエストに関するメタデータが含まれます。下記のステータス コードをご覧ください。 - 0 個以上の
<prediction>要素。各要素には 1 つの場所に関する情報が含まれます。これらの結果については、Place Autocomplete(以前のバージョン)の結果をご覧ください。Places API は最大 5 件の結果を返します。
アプリケーションで何らかの理由で xml が必要な場合を除き、優先出力フラグとして json を使用することをおすすめします。XML ツリーの処理では、適切なノードと要素を参照するように注意する必要があります。XML の処理については、XPath を使用した XML の処理をご覧ください。
PlacesAutocompleteStatus
サービスから返されるステータス コード。
OKは、API リクエストが成功したことを示します。ZERO_RESULTS。検索は成功したものの結果が返されなかったことを示します。これは、検索で遠隔地の境界が渡された場合に発生することがあります。-
INVALID_REQUESTは、API リクエストの形式が正しくないことを示します。通常は、inputパラメータが欠落していることが原因です。 -
OVER_QUERY_LIMITは、次のいずれかを示します。- QPS の上限を超えています。
- アカウントで課金が有効になっていません。
- 1 か月 $200 のクレジットまたはご自身で設定した使用量の上限を超えている。
- 設定したお支払い方法が無効になっている(クレジット カードの期限切れなど)。
-
REQUEST_DENIEDは、リクエストが拒否されたことを示します。通常、その理由は次のとおりです。- リクエストに API キーがありません。
keyパラメータが無効です。
UNKNOWN_ERRORは、不明なエラーが発生したことを示します。
プレイス サービスが検索結果を JSON で返す場合、それらは predictions 配列内に配置されます。サービスが結果を返さない場合(location がリモートの場合など)でも、空の predictions 配列が返されます。XML レスポンスは、0 個以上の <prediction> 要素で構成されます。
PlaceAutocompletePrediction
| フィールド | 必須 | タイプ | 説明 |
|---|---|---|---|
|
required | 文字列 |
返された結果の人が読める形式の名前が含まれます。 |
|
required | Array<PlaceAutocompleteMatchedSubstring> |
入力された用語が予測結果のテキスト内のどこにあるかを示す部分文字列のリスト。このリストを使用して、用語が選択された場合にハイライト表示できます。 詳細については、PlaceAutocompleteMatchedSubstring をご覧ください。 |
|
required | PlaceAutocompleteStructuredFormat |
予測入力の結果に表示できる、事前フォーマット済みのテキストを提供します。このコンテンツはそのまま読み取られます。フォーマット済み住所をプログラムで解析しないでください。 詳細については、PlaceAutocompleteStructuredFormat をご覧ください。 |
|
required | Array<PlaceAutocompleteTerm> |
返された説明の各セクションを識別する用語の配列が含まれます(説明のセクションは通常、カンマで終わります)。配列の各エントリには、用語のテキストを含む 詳細については、PlaceAutocompleteTerm をご覧ください。 |
|
省略可 | integer |
原点からの直線距離(メートル単位)。このフィールドは、 |
|
省略可 | 文字列 |
場所を一意に識別するテキスト表記の ID。場所に関する情報を取得するには、この ID を Places API リクエストの placeId フィールドに渡します。プレイス ID について詳しくは、プレイス ID の概要をご覧ください。 |
|
省略可 | 文字列 |
place_id をご覧ください。 |
|
省略可 | Array<string> |
この場所に適用されるタイプの配列が含まれます。たとえば、 |
PlaceAutocompleteMatchedSubstring
| フィールド | 必須 | タイプ | 説明 |
|---|---|---|---|
|
required | 数値 |
予測結果のテキスト内の一致する部分文字列の長さ。 |
|
required | 数値 |
予測結果のテキスト内で一致した部分文字列の開始位置。 |
PlaceAutocompleteStructuredFormat
| フィールド | 必須 | タイプ | 説明 |
|---|---|---|---|
|
required | 文字列 |
予測のメインテキスト(通常は場所の名前)が含まれます。 |
|
required | Array<PlaceAutocompleteMatchedSubstring> |
詳細については、PlaceAutocompleteMatchedSubstring をご覧ください。 |
|
省略可 | 文字列 |
予測のセカンダリ テキスト(通常は場所の位置)が含まれます。 |
|
省略可 | Array<PlaceAutocompleteMatchedSubstring> |
詳細については、PlaceAutocompleteMatchedSubstring をご覧ください。 |
PlaceAutocompleteTerm
| フィールド | 必須 | タイプ | 説明 |
|---|---|---|---|
|
required | 数値 |
説明内のこの用語の開始位置を定義します(Unicode 文字数で測定)。 |
|
required | 文字列 |
用語のテキスト。 |
Place Autocomplete(従来版)の最適化
このセクションでは、Place Autocomplete(Legacy)サービスを最大限に活用するためのヒントを紹介します。
概要は次のとおりです。
- 機能的なユーザー インターフェースを最も手早く作成するには、Maps JavaScript API Place Autocomplete(以前のバージョン)ウィジェット、Places SDK for Android Place Autocomplete(以前のバージョン)ウィジェット、または Places SDK for iOS Place Autocomplete(以前のバージョン)UI コントロールを使用します。
- Place Autocomplete(従来版)のデータ フィールドの基本を理解します。
- 位置情報のバイアスと位置情報の制限のフィールドは省略可能ですが、予測入力のパフォーマンスに大きく影響する場合があります。
- エラー処理を使用して、API がエラーを返した場合に、アプリでグレースフル デグラデーションが行われるようにします。
- アプリでは、選択肢がない場合でもユーザーが操作を続行できるようにします。
費用の最適化に関するヒント
基本的な費用の最適化
Place Autocomplete(従来版)サービスの使用コストを最適化するには、Place Details(従来版)と Place Autocomplete(従来版)ウィジェットのフィールド マスクを使用して、必要な Place Autocomplete(従来版)のデータ フィールドのみを返すように設定します。
高度な費用の最適化
SKU: Autocomplete - Per Request の料金設定を利用し、Place Details(Legacy)の代わりに選択された場所に関する Geocoding API の結果をリクエストするためには、Place Autocomplete(Legacy)のプログラマティック実装を行うことをおすすめします。次の両方に該当する場合は、リクエストあたりの料金設定と Geocoding API を組み合わせた方が、セッションあたり(セッション ベース)の料金設定よりも費用対効果が高くなります。
- ユーザーが選択した場所の緯度/経度または住所のみが必要な場合。その場合は、Geocoding API の方が、Place Details(レガシー)の呼び出しよりも少ないコストでこの情報を提供できます。
- ユーザーが予測結果を選択するまでの Place Autocomplete(Legacy)予測入力候補リクエストの回数が、平均 4 回以下の場合。その場合は、リクエストあたりの料金設定の方がセッションあたりの料金設定よりも費用対効果が高くなります。
アプリケーションで、選択された予測結果の住所と緯度 / 経度以外の情報が必要ですか?
はい。その他の情報も必要です
セッション ベースの Place Autocomplete(従来版)と Place Details(従来版)を併用します。
アプリケーションで、場所の名前、ビジネス ステータス、営業時間などの Place Details(レガシー)が必要なため、Place Autocomplete(レガシー)の実装では、セッション トークン(プログラムまたは JavaScript、Android、iOS ウィジェットに組み込み)をセッションごとに使用する必要があります。また、リクエストする場所のデータ フィールドに応じて、該当する Places Data SKU も使用する必要があります。1
ウィジェット実装
セッション管理が JavaScript、Android、または iOS ウィジェットに自動的に組み込まれます。これには、選択された予測結果での Place Autocomplete(レガシー)リクエストと Place Details(レガシー)リクエストの両方が含まれます。必要な Place Autocomplete(以前のバージョン)のデータ フィールドのみをリクエストするように、必ず fields パラメータを指定してください。
プログラマティック実装
Place Autocomplete(レガシー)リクエストでセッション トークンを使用します。選択された予測結果に関する Place Details(Legacy)をリクエストする際は、次のパラメータを含めます。
- Place Autocomplete(従来版)レスポンスのプレイス ID
- Place Autocomplete(従来版)リクエストで使用されるセッション トークン
- 必要な Place Autocomplete(従来版)のデータ フィールドを指定する
fieldsパラメータ
いいえ。住所と場所のみが必要です
Place Autocomplete(レガシー)の使用時のパフォーマンスによっては、アプリケーションで Place Details(レガシー)を使用するよりも、Geocoding API を使用した方が費用対効果が高くなる場合があります。アプリケーションの Place Autocomplete(レガシー)の効率は、ユーザーの入力内容や、アプリケーションが使用される場所、パフォーマンス最適化のベスト プラクティスが導入されているかどうかによって変わります。
次の質問に答えるためには、ユーザーがアプリケーション内で Place Autocomplete(従来版)の予測を選択するまでに、平均でどのくらいの文字数を入力するのかを分析する必要があります。
ユーザーが Place Autocomplete(従来版)の予測を選択するまでに実行されるリクエスト数は、平均で 4 回以下ですか?
○
セッション トークンを使用せずにプログラムによって Place Autocomplete(従来版)を実装し、選択された場所の予測で Geocoding API を呼び出します。
Geocoding API は、住所と緯度/経度の座標を提供します。Autocomplete - Per Request のリクエスト 4 件と、選択された場所予測に関する Geocoding API の呼び出しを合わせた料金は、Place Autocomplete(Legacy)のセッションあたりの料金よりも安くなります。1
パフォーマンスに関するベスト プラクティスを導入し、できるだけ少ない入力文字数でユーザーが求める情報を提供できるようすることをおすすめします。
いいえ
セッション ベースの Place Autocomplete(従来版)と Place Details(従来版)を併用します。
ユーザーが Place Autocomplete(Legacy)の予測を選択するまでに行うリクエストの平均数が、セッション単位の料金設定の費用を超えるため、Place Autocomplete(Legacy)の実装では、Place Autocomplete(Legacy)リクエストと関連する Place Details(Legacy)リクエストの両方で、セッション単位のセッション トークンを使用する必要があります。1
ウィジェット実装
セッション管理が JavaScript、Android、または iOS ウィジェットに自動的に組み込まれます。これには、選択された予測結果での Place Autocomplete(レガシー)リクエストと Place Details(レガシー)リクエストの両方が含まれます。必要なフィールドのみをリクエストするように、必ず fields パラメータを指定してください。
プログラマティック実装
Place Autocomplete(レガシー)リクエストでセッション トークンを使用します。選択された予測結果に関する Place Details(Legacy)をリクエストする際は、次のパラメータを含めます。
- Place Autocomplete(従来版)レスポンスのプレイス ID
- Place Autocomplete(従来版)リクエストで使用されるセッション トークン
- 住所やジオメトリなどの基本データ フィールドを指定する
fieldsパラメータ
Place Autocomplete(Legacy)リクエストを遅らせることを検討する
ユーザーが最初の 3 ~ 4 文字を入力するまで Place Autocomplete(Legacy)リクエストを遅らせて、アプリケーションでのリクエスト数を減らすこともできます。たとえば、ユーザーが 3 文字を入力した後に、入力された文字ごとに Place Autocomplete(以前のバージョン)の API リクエストを行う場合、ユーザーが 7 文字を入力して、予測を選択し、その予測に対して Geocoding API の API リクエストを 1 回行うと、合計料金は Place Autocomplete(以前のバージョン)の API リクエスト 4 回分 + Geocoding の料金になります。1
リクエストを遅らせることで、プログラマティック リクエストの回数を平均 4 回以下に抑えられる場合は、高パフォーマンスで Place Autocomplete(Legacy)と Geocoding API を併用する実装に関するガイダンスをご覧ください。なお、リクエストを遅らせると、1 文字入力するたびに予測が表示されはずと考えているユーザーには、遅延と受けとられる場合もあります。
パフォーマンスに関するベスト プラクティスを導入し、できるだけ少ない入力文字数でユーザーが求める情報を提供できるようすることをおすすめします。
-
費用については、Google Maps Platform の料金リストをご覧ください。
パフォーマンスに関するベスト プラクティス
Place Autocomplete(レガシー)のパフォーマンスを最適化するためのガイドラインは次のとおりです。
- Place Autocomplete(従来版)実装に、国別のポリシー、場所のバイアス、言語設定(プログラマティック実装の場合)を追加します。ウィジェットはユーザーのブラウザやモバイル デバイスから言語設定を選択するため、ウィジェットでは言語設定は不要です。
- Place Autocomplete(従来版)が地図に関連付けられている場合は、地図のビューポートを基準に場所にバイアスをかけることができます。
- ユーザーが Place Autocomplete(従来版)の予測入力候補を選択しなかった場合は(通常は目的の住所が候補に挙がらなかったことが原因)、ユーザーのユーザー入力内容を再利用して、より関連性の高い結果を取得できます。
- ユーザーが住所情報のみを入力することが予想される場合は、Geocoding API の呼び出しで、ユーザーの元の入力内容を再利用します。
- ユーザーが特定の場所に関する検索語句(名前や住所)を入力することが予想される場合は、Place Details(以前のバージョン)リクエストを使用します。特定の地域の結果のみが求められる場合は、場所のバイアスを使用します。
- 建物内の特定のユニットやアパートの住所など、建物の棟の住所を入力する場合。たとえば、チェコ語の住所「Stroupežnického 3191/17, Praha」では、Place Autocomplete(Legacy)で部分的な予測が生成されます。
- ユーザーがニューヨークの「23-30 29th St, Queens」や、ハワイのカウアイ島の「47-380 Kamehameha Hwy, Kaneohe」など、道路区間のプレフィックスを入力する場合。
位置情報のバイアス
location パラメータと radius パラメータを渡すことで、バイアスを設定し、指定した範囲内の結果を優先します。これにより、Place Autocomplete(従来版)が定義されたエリア内の結果を優先的に表示するようになります。指定した範囲外の結果が返されることもあります。includedRegionCodes パラメータを使用すると、指定した国内の場所のみを表示するように結果をフィルタできます。
ロケーションの制限
locationRestriction パラメータを渡すことで、結果を特定のエリアに制限します。
strictbounds パラメータを追加して、location パラメータと radius パラメータで定義された地域に結果を制限することもできます。これにより、プレイス オートコンプリート(レガシー)は、その地域内の結果のみを返すようになります。