Nearby Search(新版)リクエストは、1 つ以上の場所タイプを受け取り、指定されたエリア内の一致する場所のリストを返します。1 つ以上のデータ型を指定する項目マスクが必要です。周辺検索(新規)では POST リクエストのみがサポートされます。
API Explorer では、ライブ リクエストを実行して、API と API オプションを把握できます。
インタラクティブなデモで、周辺検索(新)の結果を地図に表示してみます。
Nearby Search(新規)リクエスト
周辺検索(新規)リクエストは、次の形式の URL に対する HTTP POST リクエストです。
https://places.googleapis.com/v1/places:searchNearby
すべてのパラメータを JSON リクエスト本文またはヘッダーで POST リクエストの一部として渡します。次に例を示します。
curl -X POST -d '{ "includedTypes": ["restaurant"], "maxResultCount": 10, "locationRestriction": { "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" \ https://places.googleapis.com/v1/places:searchNearby
Nearby 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 つ以上指定します。
次のフィールドは、Nearby Search Pro SKU をトリガーします。
places.accessibilityOptions
places.addressComponents
places.adrFormatAddress
places.attributions
places.businessStatus
places.containingPlaces
places.displayName
places.formattedAddress
places.googleMapsLinks
*
places.googleMapsUri
places.iconBackgroundColor
places.iconMaskBaseUri
places.id
places.location
places.name
**
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 です)。
**places.name
フィールドには、places/PLACE_ID
の形式で場所のリソース名を指定します。places.displayName
を使用して、場所のテキスト名にアクセスします。次のフィールドは、Nearby 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
次のフィールドは、Nearby 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
* テキスト検索と周辺検索のみ
-
locationRestriction
検索対象の領域を円として指定します。中心点と半径(メートル単位)で定義します。半径は 0.0 ~ 50000.0 の範囲で指定してください。デフォルトの半径は 0.0 です。リクエストで 0.0 より大きい値に設定する必要があります。
次に例を示します。
"locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
オプション パラメータ
-
includedTypes/excludedTypes、includedPrimaryTypes/excludedPrimaryTypes
検索結果のフィルタに使用するタイプ表 A のタイプから、タイプのリストを指定できます。各タイプの制限カテゴリで指定できるタイプは最大 50 個です。
プレイスには、関連付けられている表 A のタイプから1 つのプライマリ タイプのみを指定できます。たとえば、プライマリ タイプは
"mexican_restaurant"
または"steak_house"
です。includedPrimaryTypes
とexcludedPrimaryTypes
を使用して、場所のメインタイプで結果をフィルタします。場所には、表 A のタイプから複数のタイプ値を関連付けることもできます。たとえば、レストランのタイプは
"seafood_restaurant"
、"restaurant"
、"food"
、"point_of_interest"
、"establishment"
のいずれかになります。includedTypes
とexcludedTypes
を使用して、場所に関連付けられたタイプのリストで結果をフィルタします。"restaurant"
や"hotel"
などの一般的なプライマリ タイプを指定すると、指定したプライマリ タイプよりも具体的なプライマリ タイプの場所がレスポンスに含まれることがあります。たとえば、プライマリ タイプ"restaurant"
を含めるように指定します。レスポンスには、"restaurant"
をメインタイプとする場所が含まれますが、"chinese_restaurant"
や"seafood_restaurant"
など、より具体的なメインタイプを持つ場所も含まれます。複数の種類の制限を指定して検索すると、すべての制限を満たす場所のみが返されます。たとえば、
{"includedTypes": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]}
を指定すると、返される場所は"restaurant"
関連サービスを提供しますが、主に"steak_house"
として機能しません。includedTypes
検索する表 A の場所タイプのカンマ区切りのリスト。このパラメータを省略すると、すべてのタイプの場所が返されます。
excludedTypes
検索から除外する表 A のプレイスタイプのカンマ区切りのリスト。
リクエストで
includedTypes
("school"
など)とexcludedTypes
("primary_school"
など)の両方を指定すると、"school"
に分類される場所がレスポンスに含まれますが、"primary_school"
に分類される場所は含まれません。レスポンスには、includedTypes
の少なくとも 1 つとexcludedTypes
のいずれにも一致しない場所が含まれます。includedTypes
とexcludedTypes
の両方に出現する型など、競合する型がある場合、INVALID_REQUEST
エラーが返されます。includedPrimaryTypes
検索に含める表 A のプライマリ プレイスタイプのカンマ区切りのリスト。
excludedPrimaryTypes
検索から除外する表 A のプライマリ プレイスタイプのカンマ区切りのリスト。
includedPrimaryTypes
とexcludedPrimaryTypes
の両方に表示されるタイプなど、競合するプライマリ タイプがある場合、INVALID_ARGUMENT
エラーが返されます。 -
languageCode
結果を返す言語。
- サポートされている言語の一覧をご覧ください。サポート対象の言語は頻繁に更新されるため、このリストで網羅されていない場合があります。
languageCode
が指定されていない場合、API はデフォルトでen
になります。無効な言語コードを指定すると、API はINVALID_ARGUMENT
エラーを返します。- API は、ユーザーと地元の人々が読み取りやすい住所を提供するよう努めています。この目標を達成するため、この API は、優先言語を考慮し、必要に応じてユーザーが読み取れる文字に変換した住所を現地の言語で返します。その他の住所は、優先言語で返されます。住所のコンポーネントはすべて、最初のコンポーネントから選択された同じ言語で返されます。
- 優先言語で名前を表示できない場合、API は最も近い言語を使用します。
- 優先言語は、API が返す結果のセットと、返される順序にわずかに影響します。ジオコーダは、道路の種類の略語や、ある言語では有効でも別の言語では有効でない類義語など、略語を言語に応じて解釈します。
-
maxResultCount
返される場所の結果の最大数を指定します。1 ~ 20(デフォルト)の値にする必要があります。
-
rankPreference
使用するランキングのタイプ。このパラメータを省略すると、検索結果は人気度でランク付けされます。次のいずれかになります。
POPULARITY
(デフォルト)人気度に基づいて結果を並べ替えます。DISTANCE
指定された場所からの距離に応じて結果を昇順で並べ替えます。
-
regionCode
レスポンスのフォーマットに使用される地域コード。 2 文字の CLDR コード値で指定します。デフォルト値はありません。
レスポンスの
formattedAddress
フィールドの国名がregionCode
と一致する場合、国コードはformattedAddress
から省略されます。このパラメータは、国名が常に含まれるadrFormatAddress
と、国名が含まれないshortFormattedAddress
には影響しません。ほとんどの CLDR コードは ISO 3166-1 コードと同一ですが、いくつか注意が必要な例外もあります。たとえば、英国の ccTLD は「uk」(.co.uk)ですが、ISO 3166-1 コードは「gb」です(技術的には「グレート ブリテンおよび北アイルランド連合王国」のエンティティ用)。このパラメータは、適用される法律に基づいて結果に影響する可能性があります。
Nearby Search(新規)の例
1 つの種類の場所を検索する
次の例は、circle
で定義された半径 500 m 以内のすべてのレストランの名前を表示する Nearby Search(新規)リクエストを示しています。
curl -X POST -d '{ "includedTypes": ["restaurant"], "maxResultCount": 10, "locationRestriction": { "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" \ https://places.googleapis.com/v1/places:searchNearby
X-Goog-FieldMask
ヘッダーは、レスポンスに places.displayName
というデータフィールドが含まれていることを指定します。レスポンスの形式は次のようになります。
{ "places": [ { "displayName": { "text": "La Mar Cocina Peruana", "languageCode": "en" } }, { "displayName": { "text": "Kokkari Estiatorio", "languageCode": "en" } }, { "displayName": { "text": "Harborview Restaurant & Bar", "languageCode": "en" } }, ... }
フィールドマスクにデータ型を追加して、追加情報を返します。たとえば、places.formattedAddress,places.types,places.websiteUri
を追加して、レストランの住所、タイプ、ウェブアドレスをレスポンスに含めるようにします。
curl -X POST -d '{ "includedTypes": ["restaurant"], "maxResultCount": 10, "locationRestriction": { "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,places.types,places.websiteUri" \ https://places.googleapis.com/v1/places:searchNearby
レスポンスの形式は次のようになります。
{ "places": [ { "types": [ "seafood_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "PIER 1 1/2 The Embarcadero N, San Francisco, CA 94105, USA", "websiteUri": "http://lamarsf.com/", "displayName": { "text": "La Mar Cocina Peruana", "languageCode": "en" } }, { "types": [ "greek_restaurant", "meal_takeaway", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "200 Jackson St, San Francisco, CA 94111, USA", "websiteUri": "https://kokkari.com/", "displayName": { "text": "Kokkari Estiatorio", "languageCode": "en" } }, ... }
複数の種類の場所を検索する
次の例は、指定された circle
から半径 1,000 メートル以内のすべてのコンビニエンス ストアと酒屋の表示名を取得する「周辺検索(新)」リクエストを示しています。
curl -X POST -d '{ "includedTypes": ["liquor_store", "convenience_store"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 1000.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key:API_KEY " \ -H "X-Goog-FieldMask: places.displayName,places.primaryType,places.types" \ https://places.googleapis.com/v1/places:searchNearby
places.primaryType
と places.types
を追加して、レスポンスに各場所のタイプ情報が含まれるようにします。これにより、結果から適切な場所を簡単に選択できます。
検索から場所の種類を除外する
次の例は、"primary_school"
タイプのすべての場所を除く、"school"
タイプのすべての場所に対する Nearby Search(新版)リクエストを示しています。結果は距離でランク付けされます。
curl -X POST -d '{ "includedTypes": ["school"], "excludedTypes": ["primary_school"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 1000.0 } }, "rankPreference": "DISTANCE" }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key:API_KEY " \ -H "X-Goog-FieldMask: places.displayName" \ https://places.googleapis.com/v1/places:searchNearby
地域の近くにあるすべての場所を検索し、距離でランク付けする
次の例は、サンフランシスコのダウンタウンの近くの場所を検索する「周辺検索(新規)」リクエストを示しています。この例では、rankPreference
パラメータを含めて、距離で結果をランク付けします。
curl -X POST -d '{ "maxResultCount": 10, "rankPreference": "DISTANCE", "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 1000.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key:API_KEY " \ -H "X-Goog-FieldMask: places.displayName" \ https://places.googleapis.com/v1/places:searchNearby
試してみよう:
API Explorer では、サンプル リクエストを実行して、API と API オプションを把握できます。
ページの右側にある API アイコン api を選択します。
必要に応じて、リクエスト パラメータを編集します。
[Execute] ボタンを選択します。ダイアログで、リクエストに使用するアカウントを選択します。
API Explorer パネルで、全画面アイコン fullscreen を選択して API Explorer ウィンドウを開きます。