Text Search(新版)は、「渋谷のラーメン」、「吉祥寺周辺の靴屋」、「東京都港区六本木 6-10-1」などの文字列に基づいて一連の場所情報を返します。テキスト文字列と、その時点で設定済みの地域バイアスをもとに、場所のリストを返すサービスです。
このサービスは、自動化されたシステムであいまいな住所クエリを行う場合に特に役立ちます。文字列の住所以外のコンポーネントは、住所だけでなくビジネスにも一致する場合があります。住所が不明確なクエリの例としては、住所の形式が正しくない住所や、住所以外のコンポーネント(ビジネス名など)を含むリクエストなどがあります。次の表の最初の 2 つの例のようなリクエストでは、地域、位置情報の制限、位置情報のバイアスなどの位置情報が設定されていない限り、結果がゼロになることがあります。
「10 High Street, UK」または「123 Main Street, US」 | 英国では複数の「High Street」、米国では複数の「Main Street」が存在する。 位置情報の制限が設定されていない限り、クエリで望ましい結果が返されない。 |
「ChainRestaurant New York」 | ニューヨークに複数の「ChainRestaurant」の場所があり、住所や通りの名前すらない。 |
「10 High Street, Escher UK」または「123 Main Street, Pleasanton US」 | 英国の Escher 市には「High Street」が 1 つしかなく、米国の Pleasanton CA 市には「Main Street」が 1 つしかありません。 |
「UniqueRestaurantName New York」 | ニューヨークにこの名前の施設は 1 か所のみで、区別するために住所は必要ありません。 |
「ニューヨークのピザレストラン」 | このクエリには場所の制限が含まれており、「ピザレストラン」は明確に定義された場所のタイプです。複数の結果が返されます。 |
「+1 514-670-8700」 | このクエリには電話番号が含まれています。その電話番号に関連付けられている場所の複数の結果が返されます。 |
API Explorer では、ライブ リクエストを実行して、API と API オプションを把握できます。
Text Search リクエスト
テキスト検索リクエストは、次の形式の HTTP POST リクエストです。
https://places.googleapis.com/v1/places:searchText
すべてのパラメータを JSON リクエスト本文またはヘッダーで POST リクエストの一部として渡します。次に例を示します。
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \ 'https://places.googleapis.com/v1/places:searchText'
Text Search(新版)のレスポンス
テキスト検索(新規)は、 レスポンスとして JSON オブジェクトを返します。レスポンスの説明:
places
配列には、一致するすべての場所が含まれます。- 配列内の各場所は、
Place
オブジェクトで表されます。Place
オブジェクトには、単一の場所に関する詳細情報が含まれます。 - リクエストで渡された FieldMask には、
Place
オブジェクトで返されるフィールドのリストが指定されます。
完全な JSON オブジェクトの形式は次のとおりです。
{ "places": [ { object (Place) } ] }
必須パラメータ
-
FieldMask
レスポンス フィールド マスクを作成して、レスポンスで返すフィールドのリストを指定します。URL パラメータ
$fields
またはfields
を使用するか、HTTP ヘッダーX-Goog-FieldMask
を使用して、レスポンス フィールド マスクをメソッドに渡します。レスポンスで返されるフィールドのデフォルト リストはありません。フィールドマスクを省略すると、メソッドからエラーが返されます。フィールド マスキングは、不要なデータをリクエストしないようにするための優れた設計手法です。これにより、不要な処理時間と課金が発生するのを防ぐことができます。
返すプレイスデータの種類をカンマ区切りで指定します。たとえば、場所の表示名と住所を取得します。
X-Goog-FieldMask: places.displayName,places.formattedAddress
すべてのフィールドを取得するには、
*
を使用します。 ワイルドカード「*」はすべてのフィールドを選択します。X-Goog-FieldMask: *
次のフィールドを 1 つ以上指定します。
次のフィールドは、Text Search Essentials ID Only SKU をトリガーします。
places.attributions
places.id
places.name
*
nextPageToken
*
places.name
フィールドには、places/PLACE_ID
の形式で場所のリソース名を指定します。Pro SKU のplaces.displayName
を使用して、場所のテキスト名にアクセスします。次のフィールドは、Text Search Pro SKU をトリガーします。
places.accessibilityOptions
places.addressComponents
places.addressDescriptor
*
places.adrFormatAddress
places.businessStatus
places.containingPlaces
places.displayName
places.formattedAddress
places.googleMapsLinks
**
places.googleMapsUri
places.iconBackgroundColor
places.iconMaskBaseUri
places.location
places.photos
places.plusCode
places.postalAddress
places.primaryType
places.primaryTypeDisplayName
places.pureServiceAreaBusiness
places.shortFormattedAddress
places.subDestinations
places.types
places.utcOffsetMinutes
places.viewport
* 住所記述子はインドのお客様を対象に一般提供されており、その他の地域では試験運用版です。
**places.googleMapsLinks
フィールドは一般提供前のプレビュー ステージにあり、プレビュー期間中の使用料は請求されません(請求額は $0 です)。次のフィールドは、Text Search Enterprise SKU をトリガーします。
places.currentOpeningHours
places.currentSecondaryOpeningHours
places.internationalPhoneNumber
places.nationalPhoneNumber
places.priceLevel
places.priceRange
places.rating
places.regularOpeningHours
places.regularSecondaryOpeningHours
places.userRatingCount
places.websiteUri
次のフィールドは、Text Search Enterprise + Atmosphere SKU をトリガーします。
places.allowsDogs
places.curbsidePickup
places.delivery
places.dineIn
places.editorialSummary
places.evChargeOptions
places.fuelOptions
places.goodForChildren
places.goodForGroups
places.goodForWatchingSports
places.liveMusic
places.menuForChildren
places.parkingOptions
places.paymentOptions
places.outdoorSeating
places.reservable
places.restroom
places.reviews
places.routingSummaries
*
places.servesBeer
places.servesBreakfast
places.servesBrunch
places.servesCocktails
places.servesCoffee
places.servesDessert
places.servesDinner
places.servesLunch
places.servesVegetarianFood
places.servesWine
places.takeout
* テキスト検索と周辺検索のみ
-
textQuery
検索するテキスト文字列(「レストラン」、「123 番通り」、「サンフランシスコのおすすめスポット」など)。API はこの文字列と一致する候補を、関連性の高い順に並べて結果として返します。
オプション パラメータ
includedType
表 A で定義された指定のタイプに一致する場所のみに結果を制限します。指定できるタイプは 1 つだけです。次に例を示します。
"includedType":"bar"
"includedType":"pharmacy"
-
includePureServiceAreaBusinesses
true
に設定すると、顧客を直接訪問または配送するサービスを行っているものの、ビジネス拠点の住所ではサービスを提供していない非店舗型ビジネスもレスポンスに含まれます。false
に設定すると、物理的なビジネス拠点があるビジネスのみが返されます。 languageCode
結果を返す言語。
- サポートされている言語の一覧をご覧ください。サポート対象の言語は頻繁に更新されるため、このリストで網羅されていない場合があります。
-
languageCode
が指定されていない場合、API はデフォルトでen
になります。無効な言語コードを指定すると、API はINVALID_ARGUMENT
エラーを返します。 - API は、ユーザーと地元の人々の両方が読み取れる住所を提供するよう努めています。この目的を達成するため、この API は、優先言語を考慮しながら、必要に応じてユーザーが読み取れる文字に変換した現地の言語で住所を返します。その他の住所はすべて、優先言語で返されます。住所のコンポーネントはすべて、最初のコンポーネントから選択された同じ言語で返されます。
- 優先言語で名前を使用できない場合は、最も近い一致が API で使用されます。
- 優先言語は、API が返す結果のセットと、返される順序にわずかに影響します。ジオコーダは、道路の種類の略語や、ある言語では有効でも別の言語では有効でない類義語など、言語に応じて略語を解釈します。
locationBias
検索するエリアを指定します。この位置情報はバイアスとして機能します。つまり、指定された位置情報の周辺の結果(指定されたエリア外の検索結果を含む)が返される可能性があります。
locationRestriction
またはlocationBias
を指定できますが、両方は指定できません。locationRestriction
は、結果が含まれる必要があるリージョンを指定すると考えてください。locationBias
は、結果が含まれる可能性が高いリージョンを指定すると考えてください。ただし、結果がそのリージョンの外部にある可能性もあります。リージョンを長方形のビューポートまたは円として指定します。
円は、中心点と半径(メートル単位)で定義されます。半径は 0.0 ~ 50000.0 の範囲で指定する必要があります。デフォルトの半径は 0.0 です。次に例を示します。
"locationBias": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
長方形は緯度と経度のビューポートで、対角線上の 2 つの低いポイントと高いポイントで表されます。低いポイントは長方形の南西の角を示し、高いポイントは長方形の北東の角を表します。
ビューポートは閉じた領域と見なされます。つまり、境界が含まれます。緯度の範囲は -90 ~ 90 度、経度の範囲は -180 ~ 180 度にする必要があります。
low
=high
の場合、ビューポートは単一のポイントで構成されます。low.longitude
>high.longitude
の場合、経度の範囲が反転します(ビューポートが経度 180 度線を横切ります)。low.longitude
= -180 度、high.longitude
= 180 度の場合、ビューポートにはすべての経度が含まれます。low.longitude
= 180 度、high.longitude
= -180 度の場合、経度の範囲は空になります。low.latitude
>high.latitude
の場合、緯度範囲は空になります。
下限と上限の両方を入力する必要があります。また、表すボックスを空にすることはできません。ビューポートが空の場合、エラーが発生します。
たとえば、このビューポートはニューヨーク市を完全に囲んでいます。
"locationBias": { "rectangle": { "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } } }
locationRestriction
検索するエリアを指定します。指定された範囲外の結果は返されません。
長方形のビューポートとしてリージョンを指定します。ビューポートの定義例については、
locationBias
の説明をご覧ください。locationRestriction
またはlocationBias
を指定できますが、両方は指定できません。locationRestriction
は、結果が含まれる必要があるリージョンを指定すると考えてください。locationBias
は、結果が含まれる可能性が高いリージョンを指定すると考えてください。ただし、結果がそのリージョンの外部にある可能性もあります。-
maxResultCount(非推奨)
1 ページに表示する結果の数(1 ~ 20)を指定します。たとえば、
maxResultCount
の値を 5 に設定すると、最初のページに最大 5 件の結果が返されます。クエリから返される結果がさらにある場合、レスポンスにはnextPageToken
が含まれます。この値を次のリクエストに渡して、次のページにアクセスできます。 evOptions
利用可能な電気自動車(EV)充電コネクタと充電レートを特定するためのパラメータを指定します。
connectorTypes
スポットで利用可能な EV 充電コネクタのタイプでフィルタします。いずれのコネクタ タイプもサポートしていない場所は除外されます。サポートされている EV 充電コネクタの種類には、AC と DC の両方に対応した充電器、テスラ充電器、GB/T 準拠の充電器(中国での EV 急速充電用)、コンセント充電器などがあります。詳細については、リファレンス ドキュメントをご覧ください。
- サポートされている特定のコネクタの結果をフィルタするには、
connectorTypes
をその値に設定します。たとえば、J1772 タイプ 1 コネクタを検索するには、connectorTypes
をEV_CONNECTOR_TYPE_J1772
に設定します。 - サポートされていないコネクタの結果をフィルタするには、
connectorTypes
をEV_CONNECTOR_TYPE_OTHER
に設定します。 - コンセント タイプが壁のコンセントである結果をフィルタするには、
connectorTypes
をEV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET
に設定します。 - 任意のコネクタ タイプの結果をフィルタするには、
connectorTypes
をEV_CONNECTOR_TYPE_UNSPECIFIED
に設定するか、connectorTypes
に値を設定しないでください。
- サポートされている特定のコネクタの結果をフィルタするには、
minimumChargingRateKw
最低 EV 充電速度(キロワット(kW)単位)で場所をフィルタします。最小充電料金より低い料金の場所は除外されます。たとえば、充電速度が 10 kW 以上の EV 充電スタンドを見つけるには、このパラメータを「10」に設定します。
minRating
平均ユーザー評価がこの上限以上の結果のみを表示します。値は 0.0 ~ 5.0(指定した値を含む)の範囲で指定してください。0.5 刻みで指定できます。たとえば、0、0.5、1.0、...、5.0 です。値は 0.5 の最も近い数値に切り上げられます。たとえば、値を 0.6 にすると、評価が 1.0 未満の結果がすべて除外されます。
openNow
true
の場合、クエリが送信された時点で営業している場所のみを返します。false
の場合、営業状況に関係なくすべてのビジネスを返します。このパラメータをfalse
に設定すると、Google プレイスのデータベースに営業時間が登録されていない場所も返されます。pageSize
1 ページに表示する結果の数(1 ~ 20)を指定します。たとえば、
pageSize
の値を 5 に設定すると、最初のページに最大 5 件の結果が返されます。クエリから返される結果がさらにある場合、レスポンスにはnextPageToken
が含まれます。この値を次のリクエストに渡して、次のページにアクセスできます。pageToken
前のページのレスポンス本文の
nextPageToken
を指定します。-
priceLevels
特定の料金レベルでマークされている場所に検索を制限します。 デフォルトでは、すべての料金レベルが選択されています。
料金レベルは、次のタイプの場所で想定されます。
priceLevels
が指定されている場合、サポートされていないタイプの場所はレスポンスに含まれません。PriceLevel
で定義された 1 つ以上の値の配列を指定します。次に例を示します。
"priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
rankPreference
クエリのタイプに基づいて、レスポンスで結果をランク付けする方法を指定します。
- 「ニューヨーク市のレストラン」などのカテゴリ検索の場合、デフォルトは
RELEVANCE
(検索の関連性に基づいて結果をランク付け)です。rankPreference
はRELEVANCE
またはDISTANCE
(距離で結果をランク付け)に設定できます。 - 「Mountain View, CA」などのカテゴリ外のクエリの場合は、
rankPreference
を設定しないことをおすすめします。
- 「ニューヨーク市のレストラン」などのカテゴリ検索の場合、デフォルトは
regionCode
レスポンスのフォーマットに使用される地域コード。 2 文字の CLDR コード値で指定します。このパラメータは、検索結果にバイアス効果をもたらす可能性があります。デフォルト値はありません。
レスポンスの
formattedAddress
フィールドの国名がregionCode
と一致する場合、国コードはformattedAddress
から省略されます。このパラメータは、adrFormatAddress
には影響しません。adrFormatAddress
には、利用可能な場合は常に国名が含まれます。shortFormattedAddress
には国名が含まれません。ほとんどの CLDR コードは ISO 3166-1 コードと同一ですが、いくつか注意が必要な例外もあります。たとえば、英国の ccTLD は「uk」(.co.uk)ですが、ISO 3166-1 コードは「gb」です(技術的には「英国(グレートブリテンおよび北アイルランド連合王国)」のエンティティ用)。このパラメータは、適用される法律に基づいて結果に影響する可能性があります。
strictTypeFiltering
includedType
パラメータとともに使用します。true
に設定すると、includeType
で指定されたタイプに一致する場所のみが返されます。false(デフォルト)の場合、レスポンスには指定されたタイプと一致しない場所が含まれる場合があります。
Text Search の例
クエリ文字列で場所を検索する
次の例は、「Spicy Vegetarian Food in Sydney, Australia」のテキスト検索リクエストを示しています。
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \ 'https://places.googleapis.com/v1/places:searchText'
X-Goog-FieldMask
ヘッダーは、レスポンスに places.displayName,places.formattedAddress
というデータフィールドが含まれていることを指定します。レスポンスの形式は次のようになります。
{ "places": [ { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia", "displayName": { "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney", "languageCode": "en" } }, { "formattedAddress": "29 King St, Sydney NSW 2000, Australia", "displayName": { "text": "Peace Harmony", "languageCode": "en" } }, ... ] }
フィールドマスクにデータ型を追加して、追加情報を返します。たとえば、places.types,places.websiteUri
を追加して、レストランの種類とウェブアドレスをレスポンスに含めます。
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.types,places.websiteUri' \ 'https://places.googleapis.com/v1/places:searchText'
レスポンスの形式は次のようになります。
{ "places": [ { "types": [ "vegetarian_restaurant", "vegan_restaurant", "chinese_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "websiteUri": "http://www.motherchusvegetarian.com.au/", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "types": [ "vegan_restaurant", "thai_restaurant", "vegetarian_restaurant", "indian_restaurant", "italian_restaurant", "american_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia", "websiteUri": "http://www.veggosizzle.com.au/", "displayName": { "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney", "languageCode": "en" } }, ... ] }
価格帯で場所をフィルタする
priceLevel
オプションを使用して、低価格または中価格と定義されたレストランに結果を絞り込むことができます。
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia", "priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"] }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \ 'https://places.googleapis.com/v1/places:searchText'
この例では、X-Goog-FieldMask
ヘッダーを使用して places.priceLevel
データ フィールドをレスポンスに追加しています。形式は次のとおりです。
{ "places": [ { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "formattedAddress": "115 King St, Newtown NSW 2042, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Green Mushroom", "languageCode": "en" } }, ... ] }
検索を絞り込むオプション(includedType
、minRating
、rankPreference
、openNow
など)を追加します。オプション パラメータで説明されているパラメータも使用できます。
検索を特定のエリアに制限する
検索を特定のエリアに制限するには、locationRestriction
または locationBias
を使用します(両方は使用できません)。locationRestriction
は、結果が含まれる必要があるリージョンを指定すると考えてください。locationBias
は、結果が近い必要があるリージョンを指定すると考えてください。ただし、そのリージョンの外側にあってもかまいません。
locationRestriction を使用してエリアを制限する
locationRestriction
パラメータを使用して、クエリ結果を特定のリージョンに制限します。リクエスト本文で、リージョン境界を定義する low
と high
の緯度と経度の値を指定します。
次の例は、ニューヨーク市の「ベジタリアン料理」に関するテキスト検索リクエストを示しています。このリクエストでは、営業中の場所の最初の 10 件の結果のみが返されます。
curl -X POST -d '{ "textQuery" : "vegetarian food", "pageSize" : "10", "locationRestriction": { "rectangle": { "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } } } }' \ -H 'Content-Type: application/json' \ -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.id,places.formattedAddress' \ 'https://places.googleapis.com/v1/places:searchText'
locationBias を使用して特定のエリアを優先する
次の例は、サンフランシスコのダウンタウンにあるポイントから 500 メートル以内の場所に重きを置いた「ベジタリアン料理」のテキスト検索リクエストを示しています。このリクエストでは、営業中の場所の最初の 10 件の結果のみが返されます。
curl -X POST -d '{ "textQuery" : "vegetarian food", "openNow": true, "pageSize": 10, "locationBias": { "circle": { "center": {"latitude": 37.7937, "longitude": -122.3965}, "radius": 500.0 } }, }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \ 'https://places.googleapis.com/v1/places:searchText'
最小充電レートの EV 充電器を検索する
minimumChargingRateKw
と connectorTypes
を使用して、お乗りの EV に対応した充電器が利用できる場所を検索します。
次の例は、カリフォルニア州マウンテンビューで、最小充電速度が 10 kW の Tesla と J1772 タイプ 1 の EV 充電コネクタのリクエストを示しています。4 件の結果のみが返されます。
curl -X POST -d '{ "textQuery": "EV Charging Station Mountain View", "pageSize": 4, "evOptions": { "minimumChargingRateKw": 10, "connectorTypes": ["EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TESLA"] } }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H "X-Goog-FieldMask: places.displayName,places.evChargeOptions" \ 'https://places.googleapis.com/v1/places:searchText'
このリクエストは次のレスポンスを返します。
{ "places": [ { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 16, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_CHADEMO", "maxChargeRateKw": 100, "count": 8, "availableCount": 5, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 100, "count": 2, "availableCount": 2, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 350, "count": 6, "availableCount": 3, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 6, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 100, "count": 4, "availableCount": 3, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 350, "count": 2, "availableCount": 0, "outOfServiceCount": 2, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 5, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_J1772", "maxChargeRateKw": 3.5999999046325684, "count": 1, "availableCount": 0, "outOfServiceCount": 1, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CHADEMO", "maxChargeRateKw": 50, "count": 2, "availableCount": 0, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 50, "count": 2, "availableCount": 0, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, { "displayName": { "text": "Electric Vehicle Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 10, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_OTHER", "maxChargeRateKw": 210, "count": 10 } ] } } ] }
非店舗型ビジネスを検索する
includePureServiceAreaBusinesses
パラメータを使用すると、物理的なサービス拠点がないビジネス(モバイルクリーニング サービスやフードトラックなど)を検索できます。
次の例は、サンフランシスコの配管工のリクエストを示しています。
curl -X POST -d '{ "textQuery" : "plumber San Francisco", "includePureServiceAreaBusinesses": true }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \ 'https://places.googleapis.com/v1/places:searchText'
レスポンスでは、実店舗がないビジネスには formattedAddress
フィールドが含まれません。
{ "places": [ { "formattedAddress": "3450 Sacramento St #204, San Francisco, CA 94118, USA", "displayName": { "text": "Advanced Plumbing & Drain", "languageCode": "en" } }, { "formattedAddress": "1455 Bancroft Ave, San Francisco, CA 94124, USA", "displayName": { "text": "Magic Plumbing Heating & Cooling", "languageCode": "en" } }, /.../ { "displayName": { "text": "Starboy Plumbing Inc.", "languageCode": "en" } }, { "formattedAddress": "78 Dorman Ave, San Francisco, CA 94124, USA", "displayName": { "text": "Cabrillo Plumbing, Heating & Air", "languageCode": "en" } }, { "formattedAddress": "540 Barneveld Ave # D, San Francisco, CA 94124, USA", "displayName": { "text": "Mr. Rooter Plumbing of San Francisco", "languageCode": "en" } }, /.../ { "displayName": { "text": "Pipeline Plumbing", "languageCode": "en" } }, { "formattedAddress": "350 Bay St #100-178, San Francisco, CA 94133, USA", "displayName": { "text": "One Source Plumbing and Rooter", "languageCode": "en" } }, /.../ ] }
ページごとに返す結果の数を指定します。
pageSize
パラメータを使用して、ページごとに返す結果の数を指定します。レスポンス本文の nextPageToken
パラメータは、後続の呼び出しで結果の次のページにアクセスするために使用できるトークンを提供します。
次の例は、「ニューヨークのピザ屋」のリクエストで、1 ページあたりの結果を 5 件に制限しています。
curl -X POST -d '{ "textQuery": "pizza in New York", "pageSize": 5 }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H "X-Goog-FieldMask: places.id,nextPageToken" \ 'https://places.googleapis.com/v1/places:searchText'
{ "places": [ { "id": "ChIJifIePKtZwokRVZ-UdRGkZzs" }, { "id": "ChIJPxPd_P1YwokRfzLhSiACEoU" }, { "id": "ChIJrXXKn5NZwokR78g0ipCnY60" }, { "id": "ChIJ6ySICVZYwokR9rIK8HjXhzE" }, { "id": "ChIJ6xvs94VZwokRnT1D2lX2OTw" } ], "nextPageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q" }
結果の次のページにアクセスするには、pageToken
を使用して、リクエスト本文で nextPageToken
を渡します。
curl -X POST -d '{ "textQuery": "pizza in New York", "pageSize": 5, "pageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H "X-Goog-FieldMask: places.id,nextPageToken" \ 'https://places.googleapis.com/v1/places:searchText'
{ "places": [ { "id": "ChIJL-LN1N1ZwokR8K2jACu6Ydw" }, { "id": "ChIJjaD94kFZwokR-20CXqlpy_4" }, { "id": "ChIJ6ffdpJNZwokRmcafdROM5q0" }, { "id": "ChIJ8Q2WSpJZwokRQz-bYYgEskM" }, { "id": "ChIJ8164qwFZwokRhplkmhvq1uE" } ], "nextPageToken": "AeCrKXvPd6uUy-oj96W2OaqEe2pUD8QTxOM8-sKfUcFsC9t2Wey5qivrKGoGSxcZnyc7RPmaFfAktslrKbUh31ZDTkL0upRmaxA7c_c" }
住所記述子を取得する
住所記述子には、近くのランドマークや含まれるエリアなど、場所の位置に関するリレーショナル情報が提供されます。
次の例は、サンノゼのショッピングモール近くの場所を検索するテキスト検索(新規)リクエストを示しています。この例では、フィールドマスクに addressDescriptors
を含めます。
curl -X POST -d '{ "textQuery": "clothes", "maxResultCount": 5, "locationBias": { "circle": { "center": { "latitude": 37.321328, "longitude": -121.946275 } } }, "rankPreference":"RANK_PREFERENCE_UNSPECIFIED" }' \ -H 'Content-Type: application/json' \ -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName,places.addressDescriptor" \ https://places.googleapis.com/v1/places:searchText
レスポンスには、リクエストで指定された場所、近くのランドマークのリストとその場所からの距離、エリアのリストとその場所との包含関係が含まれます。
{ "places": [ { "displayName": { "text": "Urban Outfitters", "languageCode": "en" }, "addressDescriptor": { "landmarks": [ { "name": "places/ChIJVVVVUB7Lj4ARXyb4HFVDV8s", "placeId": "ChIJVVVVUB7Lj4ARXyb4HFVDV8s", "displayName": { "text": "Westfield Valley Fair", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "food", "movie_theater", "point_of_interest", "restaurant", "shoe_store", "shopping_mall", "store" ], "spatialRelationship": "WITHIN", "straightLineDistanceMeters": 133.72855 }, { "name": "places/ChIJ62_oCR7Lj4AR_MGWkSPotD4", "placeId": "ChIJ62_oCR7Lj4AR_MGWkSPotD4", "displayName": { "text": "Nordstrom", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "point_of_interest", "shoe_store", "store" ], "straightLineDistanceMeters": 250.99161 }, { "name": "places/ChIJ8WvuSB7Lj4ARFyHppkxDRQ4", "placeId": "ChIJ8WvuSB7Lj4ARFyHppkxDRQ4", "displayName": { "text": "Macy's", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "point_of_interest", "store" ], "straightLineDistanceMeters": 116.24196 }, { "name": "places/ChIJ9d3plB_Lj4ARzyaU5bn80WY", "placeId": "ChIJ9d3plB_Lj4ARzyaU5bn80WY", "displayName": { "text": "Bank of America Financial Center", "languageCode": "en" }, "types": [ "bank", "establishment", "finance", "point_of_interest" ], "straightLineDistanceMeters": 121.61515 }, { "name": "places/ChIJaXCjxvXLj4ARCPmQpvJ52Lw", "placeId": "ChIJaXCjxvXLj4ARCPmQpvJ52Lw", "displayName": { "text": "Bloomingdale's", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "furniture_store", "home_goods_store", "point_of_interest", "shoe_store", "store" ], "straightLineDistanceMeters": 81.32396 } ], "areas": [ { "name": "places/ChIJb3F-EB7Lj4ARnHApQ_Hu1gI", "placeId": "ChIJb3F-EB7Lj4ARnHApQ_Hu1gI", "displayName": { "text": "Westfield Valley Fair", "languageCode": "en" }, "containment": "WITHIN" }, { "name": "places/ChIJXYuykB_Lj4AR1Ot8nU5q26Q", "placeId": "ChIJXYuykB_Lj4AR1Ot8nU5q26Q", "displayName": { "text": "Valley Fair", "languageCode": "en" }, "containment": "WITHIN" }, { "name": "places/ChIJtYoUX2DLj4ARKoKOb1G0CpM", "placeId": "ChIJtYoUX2DLj4ARKoKOb1G0CpM", "displayName": { "text": "Central San Jose", "languageCode": "en" }, "containment": "WITHIN" } ] } }, /.../ ] }
試してみよう:
API Explorer では、サンプル リクエストを実行して、API と API オプションを把握できます。
ページの右側にある API アイコン api を選択します。
必要に応じて、リクエスト パラメータを編集します。
[Execute] ボタンを選択します。ダイアログで、リクエストに使用するアカウントを選択します。
API Explorer パネルで、全画面アイコン fullscreen を選択して API Explorer ウィンドウを開きます。