テキスト検索(新版)

プラットフォームを選択: Android iOS JavaScript ウェブサービス

欧州経済領域(EEA)のデベロッパー

はじめに

テキスト検索(新版)は、「渋谷 ピザショップ」「表参道 靴店」「123 番地」といった文字列に対して、場所のセットについての情報を返します。テキスト文字列と、その時点で設定済みの地域バイアスをもとに、場所のリストを返すサービスです。

テキスト検索(新版)では、必須パラメータに加えて、オプション パラメータを使用してクエリを絞り込み、より良い結果を得ることができます。

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 オブジェクトには、1 つの場所に関する詳細情報が含まれます。
  • リクエストで渡された 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 つ以上指定します。

    • 次のフィールドは、テキスト検索 Essentials ID Only SKU をトリガーします。

      places.attributions
      places.id
      places.consumerAlert
      places.name*
      nextPageToken
      places.movedPlace
      places.movedPlaceId

      places.name フィールドには、places/PLACE_ID 形式の場所のリソース名が含まれます。*Pro SKU で places.displayName を使用して、場所のテキスト名にアクセスします。

      フィールドとそれに関連する SKU の一覧については、Place Data Fields(新版)をご覧ください。

    • 次のフィールドは、テキスト検索 Pro SKU をトリガーします。

      places.accessibilityOptions
      places.addressComponents
      places.addressDescriptor*
      places.adrFormatAddress
      places.businessStatus
      places.containingPlaces
      places.displayName
      places.formattedAddress
      places.googleMapsLinks
      places.googleMapsTypeLabel
      places.googleMapsUri
      places.iconBackgroundColor
      places.iconMaskBaseUri
      places.location
      places.openingDate
      places.photos
      places.plusCode
      places.postalAddress
      places.primaryType
      places.primaryTypeDisplayName
      places.pureServiceAreaBusiness
      places.shortFormattedAddress
      places.searchUri
      places.subDestinations
      places.timeZone
      places.types
      places.utcOffsetMinutes
      places.viewport

      * 住所記述子は、インドのお客様には一般提供されており、その他の地域では試験運用版として提供されています。

      フィールドとそれに関連する SKU の一覧については、Place Data Fields(新版)をご覧ください。

    • 次のフィールドは、テキスト検索 Enterprise SKU をトリガーします。

      places.currentOpeningHours
      places.currentSecondaryOpeningHours
      places.internationalPhoneNumber
      places.nationalPhoneNumber
      places.priceLevel
      places.priceRange
      places.rating
      places.regularOpeningHours
      places.regularSecondaryOpeningHours
      places.transitStation
      places.userRatingCount
      places.websiteUri

      フィールドとそれに関連する SKU の一覧については、Place Data Fields(新版)をご覧ください。

    • 次のフィールドは、テキスト検索 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
      routingSummaries*
      places.servesBeer
      places.servesBreakfast
      places.servesBrunch
      places.servesCocktails
      places.servesCoffee
      places.servesDessert
      places.servesDinner
      places.servesLunch
      places.servesVegetarianFood
      places.servesWine
      places.takeout

      * テキスト検索と Nearby Search のみ

      フィールドとそれに関連する SKU の一覧については、Place Data Fields(新版)をご覧ください。

  • textQuery

    検索するテキスト文字列。たとえば、「レストラン」、「123 番通り」、「サンフランシスコのおすすめスポット」などです。API はこの文字列と一致する候補を、関連性の高い順に並べて結果として返します。

    テキスト検索(新版)は、次のような曖昧なクエリを想定していません。

    クエリタイプ 例
    1 つのクエリに複数の場所、道路、都市の名前が含まれているなど、コンセプトや制約が多すぎる 「マーケット ストリート サンフランシスコ サンノゼ空港」
    Google マップに表示されない住所要素 "C/O John Smith 123 Main Street"
    "P.O. Box 13 San Francisco"
    ビジネス、チェーン、カテゴリの名前と、それらのエンティティが利用できない場所を組み合わせたもの 「テキサス州ダラス近くのテスコ」
    複数の解釈が可能な曖昧なクエリ 「充電器のドロップオフ」
    現在使用されていない過去の名前 "Middlesex United Kingdom"
    地理空間以外の要素または意図 「ベンチュラ港には何隻のボートがありますか?」
    非公式の名前やバニティ名 「ジェンガ」
    「ヘルター スケルター」
    緯度と経度の座標 "37.422131,-122.084801"

オプション パラメータ

  • includeFutureOpeningBusinesses

    true の場合、将来的に開業予定のビジネスを返します。デフォルトは false です。

    営業状況を取得するには、リクエストのフィールド マスクに places.businessStatus を含めます。ビジネスの開業予定日を取得するには、リクエスト フィールド マスクに places.openingDate を含めます。

  • 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 の場合、緯度範囲は空です。

      low と high の両方を入力する必要があります。また、表されるボックスを空にすることはできません。ビューポートが空の場合、エラーが発生します。

      たとえば、次のビューポートはニューヨーク市を完全に囲んでいます。

      "locationBias": {
        "rectangle": {
          "low": {
            "latitude": 40.477398,
            "longitude": -74.259087
          },
          "high": {
            "latitude": 40.91618,
            "longitude": -73.70018
          }
        }
      }
  • locationRestriction

    カテゴリクエリのみを検索するエリアを指定します。このクエリは、複数の場所(「ニューヨークのレストラン」や「ショッピング モール」など)を返すことができます。指定した範囲外の結果は返されません。

    地域を長方形のビューポートとして指定します。ビューポートを定義する例については、locationBias の説明をご覧ください。

    locationRestriction または locationBias を指定できますが、両方は指定できません。locationRestriction は、結果がその範囲内になければならない地域を指定し、locationBias は、結果がその範囲内またはその近くにある可能性が高いが、範囲外になることもある地域を指定すると考えてください。

  • 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 の最小充電速度(キロワット(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 ~ 20 の範囲で指定します。たとえば、pageSize 値を 5 に設定すると、最初のページに最大 5 件の結果が返されます。クエリがさらに結果を返すことができる場合、レスポンスには nextPageToken が含まれます。この値を次のリクエストに渡すことで、次のページにアクセスできます。

    このフィールドは、サポートが終了した maxResultCount フィールドに代わるものです。pageSize と maxResultCount の両方を指定すると、API は pageSize を使用し、maxResultCount を無視します。

  • 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(利用可能な場合は常に国名が含まれます)または shortFormattedAddress(国名は含まれません)には影響しません。

    大半の CLDR コードは ISO 3166-1 コードと同一ですが、いくつか注意が必要な例外もあります。たとえば、英国の ccTLD は「uk」(.co.uk)ですが、ISO 3166-1 コードは「gb」(厳密には「グレート ブリテンおよび北アイルランド連合王国」のエンティティ)です。このパラメータは、適用される法律に基づいて結果に影響する可能性があります。

  • strictTypeFiltering

    includedType パラメータとともに使用します。true に設定すると、includedType で指定されたタイプに一致する場所のみが返されます。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"
      }
    },
    ...
  ]
}

フィールド マスクにデータタイプを追加して、追加情報を返します。たとえば、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"
          },
          ...
        ]
      }
    },
    {
      "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"
          }
        ]
      }
    },
    ...
  ]
}

非店舗型ビジネスを検索する

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"
      }
    },
    {
      "displayName": {
        "text": "Starboy Plumbing Inc.",
        "languageCode": "en"
      }
    },
    ...
  ]
}

ページごとに返す結果の数を指定する

pageSize パラメータを使用して、ページごとに返す結果の数を指定します。レスポンス本文の nextPageToken パラメータは、後続の呼び出しで結果の次のページにアクセスするために使用できるトークンを提供します。

次の例は、「pizza in New York」のリクエストで、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"
    },
    ...
  ],
  "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"
    },
    ...
  ],
  "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
          },
          ...
        ],
        "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"
          },
          ...
        ]
      }
    },
    ...
  ]
}

今後オープン予定のビジネスを検索する

次の例は、アイダホ州ニューメドウズで今後オープンするビジネスを検索するテキスト検索(新版)リクエストを示しています。

curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.id,places.displayName,places.businessStatus,places.openingDate" \
-d '{
  "textQuery": "Roberts Greenhouse and Tree Farm",
  "includeFutureOpeningBusinesses": true,
  "maxResultCount": 20,
  "locationBias": {
    "circle": {
      "center": {"latitude": 44.9755100, "longitude": -116.2842180},
      "radius": 20
    }
  }
}' \
"https://places.googleapis.com/v1/places:searchText"

レスポンスには、将来開業するビジネスと、そのビジネス ステータス、開業予定日が含まれます。

{
  "places": [
    {
      "id": "ChIJp1-VoKWJplQRMz8g-7Wa3Do",
      "businessStatus": "FUTURE_OPENING",
      "displayName": {
        "text": "Roberts Greenhouse and Tree Farm",
        "languageCode": "en"
      },
      "openingDate": {
        "year": 2026,
        "month": 4,
        "day": 15
      }
    }
  ]
}

乗り継ぎ駅の情報を取得する

テキスト検索(新版)を使用して、乗り継ぎ駅を検索できます。レスポンスの本文には、駅名、提携している交通機関、駅に乗り入れている路線など、駅に関する情報が含まれます。また、レスポンスには、乗り継ぎ駅の情報を表示するために使用できる車両アイコンと色が含まれています。

次の例は、「Grand Central Station」のリクエストを示しています。

curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.id,places.displayName,places.transitStation" \
-d '{
  "textQuery": "Grand Central Station"
}' \
"https://places.googleapis.com/v1/places:searchText"

レスポンスの本文には、半径内の各駅、その駅に乗り入れている路線、その駅で交通機関が発行したアラート、出発情報が含まれます。

{
  "places": [
    {
      "id": "ChIJhRwB-yFawokRi0AhGH87UTc",
      "displayName": {
        "text": "Grand Central",
        "languageCode": "en"
      },
      "transitStation": {
        "displayName": {
          "text": "Grand Central",
          "languageCode": "en"
        },
        "agencies": [
          {
            "displayName": {
              "text": "Metro-North Railroad",
              "languageCode": "en"
            },
            "url": "http://www.mta.info/mnr",
            "lines": [
              {
                "id": "ChIJOXpD29y2wokRryDO0CocwK0",
                "vehicleType": "HEAVY_RAIL",
                "displayName": {
                  "text": "Harlem",
                  "languageCode": "en"
                },
                "textColor": "#FFFFFF",
                "backgroundColor": "#0061AA",
                "vehicleIcon": {
                  "url": "https://maps.gstatic.com/mapfiles/transit/iw2/svg/rail2.svg"
                },
                "alerts": [
                  {
                    "effect": "OTHER",
                    "texts": [
                      {
                        "headline": {
                          "text": "Information",
                          "languageCode": "en"
                        },
                        "summary": {
                          "text": "Temporary platforms are in place at Botanical Garden, Williams Bridge, and Woodlawn for northbound travel. Build in extra travel time to reach the platform.",
                          "languageCode": "en"
                        },
                        "fullDescription": {
                          "text": "What's Happening? We are renovating some Harlem Line stations in the Bronx. Learn more about the project here.",
                          "languageCode": "en"
                        }
                      }
                    ],
                    "detailsUrls": [
                      {
                        "url": "https://new.mta.info/"
                      }
                    ],
                    "cause": "OTHER_CAUSE",
                    "startTime": "2026-04-16T04:00:00Z",
                    "endTime": "2026-12-01T04:45:00Z",
                    "attribution": {
                      "link": {
                        "text": "new.mta.info",
                        "url": "https://new.mta.info/"
                      }
                    },
                    "createTime": "2026-05-15T22:39:30Z",
                    "severityLevel": "INFO"
                  }
                ]
              },
              ...
            ]
          },
          ...
        ]
        "stops": [
          {
            "id": "ChIJOfdrigFZwokRJPllLwfPrJY",
            "location": {
              "latitude": 40.752823,
              "longitude": -73.977195999999992
            },
            "wheelchairAccessibleEntrance": true
          }
        ],
        "departureBoards": [
          {
            "displayType": "TIME_CENTRIC",
            "rows": [
              {
                "departures": [
                  {
                    "timedDeparture": {
                      "scheduledTime": "2026-05-15T22:42:00Z",
                      "timingType": "SCHEDULED",
                      "predictedTime": "2026-05-15T22:42:00Z",
                      "updateTime": "2026-05-15T22:38:50Z"
                    },
                    "originallyScheduledStopId": "ChIJOfdrigFZwokRJPllLwfPrJY",
                    "lineId": "ChIJAfBuQhwg6IkRYnFpClHxFrM"
                  }
                ]
              },
              ...
            ]
          }
        ]
      }
    },
    {
      "id": "ChIJ_4EAi-pZwokRWe5T1JmmWmc",
      "displayName": {
        "text": "Grand Central Station",
        "languageCode": "en"
      }
    }
  ]
}

入口とナビゲーション ポイントを取得する

目的地の入り口とナビゲーション ポイントをリクエストできます。入り口は、場所の出入り口(空港やショッピング モールの異なるゲートなど)を定義します。ナビゲーション ポイントは、ナビゲーションを終了する道路沿いの場所を定義します。これは、ユーザーを道路の正しい側や特定の降車場所に誘導するのに役立ちます。

ナビゲーション ポイントは navigationPointToken を返します。このトークンを Navigation SDK(Android または iOS で利用可能)または Routes API に渡すことで、ドライバーをその特定の場所に案内できます。詳細については、ナビゲーション ポイント トークンをご覧ください。

次の例は、「サンフランシスコ国際空港」のテキスト検索(新版)リクエストを示しています。フィールド マスクに entrances と navigationPoints が含まれています。

curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.id,places.displayName,places.entrances,places.navigationPoints" \
-d '{
  "textQuery": "San Francisco International Airport",
  "pageSize": 1
}' \
"https://places.googleapis.com/v1/places:searchText"

レスポンスには、場所の入口とナビゲーション ポイントが含まれます。

{
  "places": [
    {
      "id": "ChIJVVVVVYx3j4ARP-3NGldc8qQ",
      "displayName": {
        "text": "San Francisco International Airport",
        "languageCode": "en"
      },
      "entrances": [
        {
          "location": {
            "latitude": 37.6172154,
            "longitude": -122.3839724
          }
        },
        {
          "location": {
            "latitude": 37.6174073,
            "longitude": -122.384196
          }
        },
        ...
      ],
      "navigationPoints": [
        {
          "navigationPointToken": "ChIJoioBjMLOQkAR0A3yH_eYXsA...",
          "displayName": {
            "text": "International Terminal Departures Level",
            "languageCode": "en"
          },
          "location": {
            "latitude": 37.6153121,
            "longitude": -122.3900833
          },
          "travelModes": ["WALK"]
        },
        {
          "navigationPointToken": "ChIJy5JKws_OQkAROx0jNN2YXsA...",
          "displayName": {
            "text": "Domestic Garage - SFO Short Term Parking",
            "languageCode": "en"
          },
          "location": {
            "latitude": 37.6157153,
            "longitude": -122.3885012
          },
          "travelModes": ["DRIVE", "WALK"],
          "usages": ["PARKING"]
        },
        ...
      ]
    }
  ]
}

試してみよう:

API Explorer を使用すると、サンプル リクエストを作成して、API と API オプションに慣れることができます。

  1. ページの右側にある API アイコン api を選択します。

  2. 必要に応じて、リクエスト パラメータを編集します。

  3. [Execute] ボタンを選択します。ダイアログで、リクエストに使用するアカウントを選択します。

  4. API Explorer パネルで、全画面表示アイコン fullscreen を選択して、API Explorer ウィンドウを拡大します。