はじめに
Text Search(新版)は、「渋谷 ピザショップ」「表参道 靴店」「123 番地」といった文字列に対して、場所のセットについての情報を返します。このサービスは、テキスト文字列や場所の優先度設定と合致するプレイスのリストをレスポンスとして返します。
このサービスは、自動化されたシステムで曖昧な住所クエリを行う場合に特に便利です。文字列の住所以外のコンポーネントは、住所だけでなくビジネスにも一致する可能性があります。曖昧な住所クエリの例としては、形式が正しくない住所や、ビジネス名などの住所以外のコンポーネントを含むリクエストがあります。次の表の最初の 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」 | 英国の都市エッシャーには「High Street」が 1 つしかなく、米国の都市プレザントン CA には「Main Street」が 1 つしかありません。 |
「UniqueRestaurantName New York」 | ニューヨークにこの名前の施設は 1 つしかないため、区別するために住所は必要ありません。 |
「ニューヨークのピザ レストラン」 | このクエリには場所の制限が含まれており、「ピザレストラン」は明確に定義された場所のタイプです。複数の結果が返されます。 |
「+1 514-670-8700」 | このクエリには電話番号が含まれています。その電話番号に関連付けられているビジネスの複数の結果が返されます。 |
API Explorer を使用すると、ライブ リクエストを行って、API と API オプションを理解できます。
テキスト検索(新版)リクエスト
テキスト検索(新版)リクエストは、次の形式の 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'
テキスト検索(新版)のレスポンス
テキスト検索(新機能)は、 レスポンスとして 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.evChargeAmenitySummary
places.evChargeOptions
places.fuelOptions
places.generativeSummary
places.goodForChildren
places.goodForGroups
places.goodForWatchingSports
places.liveMusic
places.menuForChildren
places.neighborhoodSummary
places.parkingOptions
places.paymentOptions
places.outdoorSeating
places.reservable
places.restroom
places.reviews
places.reviewSummary
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"
テキスト検索(新機能)では、適用可能性に応じて、特定のクエリにタイプ フィルタリングが適用されます。たとえば、特定の住所(「123 Main Street」)に対するクエリにはタイプ フィルタリングが適用されないことがありますが、カテゴリ クエリ(「近くの店」や「ショッピング モール」)にはタイプ フィルタリングがほぼ常に適用されます。
すべてのクエリに型フィルタリングを適用するには、
strictTypeFiltering
をtrue
に設定します。-
includePureServiceAreaBusinesses
true
に設定されている場合、レスポンスには、顧客を直接訪問または配送するが、実店舗の所在地がないビジネスが含まれます。false
に設定すると、API は実店舗を持つビジネスのみを返します。 languageCode
結果を返す言語。
- サポートされている言語の一覧をご覧ください。サポート対象の言語は頻繁に更新されるため、このリストで網羅されていない場合があります。
-
languageCode
が指定されていない場合、API はデフォルトでen
になります。無効な言語コードを指定すると、API はINVALID_ARGUMENT
エラーを返します。 - 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
検索する領域を指定します。指定した範囲外の結果は返されません。
リージョンを矩形のビューポートとして指定します。Viewport の定義例については、
locationBias
の説明をご覧ください。locationRestriction
またはlocationBias
を指定できますが、両方は指定できません。locationRestriction
は、結果がその範囲内にある必要があるリージョンを指定するものと考えることができます。locationBias
は、結果がその範囲内またはその近くにある可能性が高いが、その範囲外にある可能性もあるリージョンを指定するものと考えることができます。-
maxResultCount(非推奨)
1 ページに表示する結果の数(1 ~ 20)を指定します。たとえば、
maxResultCount
の値を 5 に設定すると、最初のページに最大 5 件の結果が返されます。クエリから返される結果がさらにある場合、レスポンスにはnextPageToken
が含まれます。このnextPageToken
を後続のリクエストに渡して、次のページにアクセスできます。 evOptions
利用可能な電気自動車(EV)の充電コネクタと充電率を特定するためのパラメータを指定します。
connectorTypes
場所で利用可能な EV 充電コネクタの種類でフィルタします。コネクタタイプをサポートしていない場所は除外されます。サポートされている EV 充電コネクタの種類には、複合(AC と DC)充電器、Tesla 充電器、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 充電速度(キロワット単位)の最小値で場所をフィルタします。充電料金が最低充電料金を下回る場所は除外されます。たとえば、充電速度が 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
が含まれます。この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(デフォルト)の場合、レスポンスには指定されたタイプと一致しない場所が含まれることがあります。
テキスト検索(新版)の例
クエリ文字列で場所を検索する
次の例は、「オーストラリアのシドニーにあるスパイシーなベジタリアン料理」のテキスト検索(新規)リクエストを示しています。
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 ウィンドウを拡大します。