Nearby Search(新規)

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

Nearby Search(新版)リクエストは、検索する領域を入力として受け取り、円として指定され、円の中心点の緯度と経度の座標とメートル単位の半径で定義されます。このリクエストは、指定された検索領域内で一致する場所のリストを返します。各場所は Place オブジェクトで表されます。

デフォルトでは、レスポンスには検索領域内のすべてのタイプの場所が含まれます。オプションで、レスポンスに含める、またはレスポンスから除外する場所タイプのリストを指定することで、レスポンスをフィルタリングできます。たとえば、「レストラン」、「ベーカリー」、「カフェ」タイプの場所のみをレスポンスに含めることや、「学校」タイプの場所をすべて除外するように指定できます。

Nearby Search(新版)リクエスト

Nearby Search(新版)リクエストを作成するには、PlacesClient.searchNearby を呼び出して、リクエスト パラメータを定義する SearchNearbyRequest オブジェクトを渡します。

SearchNearbyRequest オブジェクトは、リクエストの必須パラメータと省略可能なパラメータをすべて指定します。必須パラメータは次のとおりです。

  • Place オブジェクトで返すフィールドのリスト。フィールド マスクとも呼ばれます。フィールド リストで 1 つ以上のフィールドを指定しない場合、またはフィールド リストを省略すると、呼び出しからエラーが返されます。
  • 検索範囲の位置情報の制限。緯度と経度のペアと半径値(メートル単位)で定義されます。

この付近の検索リクエストの例では、レスポンスの Place オブジェクトに、検索結果の Place オブジェクトごとにプレイス フィールド Place.Field.IDPlace.Field.NAME が含まれることを指定しています。また、レスポンスをフィルタリングして、タイプ「restaurant」と「cafe」の場所のみを返し、「ピザ_restaurant」と「american_restaurant」タイプの場所は除外します。

// Define a list of fields to include in the response for each returned place.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);

// Define the search area as a 1000 meter diameter circle in New York, NY.
LatLng center = new LatLng(40.7580, -73.9855);
CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 1000);

// Define a list of types to include.
final List<String> includedTypes = Arrays.asList("restaurant", "cafe");
// Define a list of types to exclude.
final List<String> excludedTypes = Arrays.asList("pizza_restaurant", "american_restaurant");

// Use the builder to create a SearchNearbyRequest object.
final SearchNearbyRequest searchNearbyRequest =
SearchNearbyRequest.builder(/* location restriction = */ circle, placeFields)
    .setIncludedTypes(includedTypes)
    .setExcludedTypes(excludedTypes)
    .setMaxResultCount(10)
    .build());

// Call placesClient.searchNearby() to perform the search.
// Define a response handler to process the returned List of Place objects.
placesClient.searchNearby(searchNearbyRequest)
    .addOnSuccessListener(response -> {
      List<Place> places = response.getPlaces();
    });

Nearby Search(新版)の回答

SearchNearbyResponse クラスは、検索リクエストからのレスポンスを表します。SearchNearbyResponse オブジェクトには次のものが含まれます。

  • 一致するすべての場所を表す Place オブジェクトのリスト。一致する場所ごとに 1 つの Place オブジェクトが含まれます。
  • Place オブジェクトには、リクエストで渡されたフィールド リストで定義されたフィールドのみが含まれます。

たとえば、このリクエストではフィールド リストを次のように定義しました。

// Define a list of fields to include in the response for each returned place.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);

このフィールド リストは、レスポンスの各 Place オブジェクトには、一致する各場所のプレイス ID と名前のみが含まれることを意味します。その後、Place.getId() メソッドと Place.getName() メソッドを使用して、各 Place オブジェクトでこれらのフィールドにアクセスできます。

Place オブジェクトのデータにアクセスするその他の例については、場所オブジェクトのデータ フィールドにアクセスするをご覧ください。

必須パラメータ

SearchNearbyRequest オブジェクトを使用して、検索の必須パラメータを指定します。

  • フィールド リスト

    Place Details をリクエストする場合は、その場所の Place オブジェクトにフィールド マスクとして返すデータを指定する必要があります。フィールド マスクを定義するには、Place.Field の値の配列を SearchNearbyRequest オブジェクトに渡します。フィールド マスキングは、不要なデータをリクエストしないようにするための優れた設計プラクティスです。これにより、不要な処理時間と課金を回避できます。

    次のフィールドを 1 つ以上指定します。

    • 次のフィールドによって Nearby Search(Basic)SKU がトリガーされます。

      Place.Field.ADDRESS_COMPONENTSPlace.Field.BUSINESS_STATUSPlace.Field.ADDRESSPlace.Field.ICON_BACKGROUND_COLORPlace.Field.ICON_URLPlace.Field.LAT_LNGPlace.Field.PHOTO_METADATASPlace.Field.PLUS_CODEPlace.Field.IDPlace.Field.NAMEPlace.Field.TYPESPlace.Field.UTC_OFFSETPlace.Field.VIEWPORTPlace.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE
    • 次のフィールドによって Nearby Search(Advanced)SKU がトリガーされます。

      Place.Field.CURRENT_OPENING_HOURSPlace.Field.SECONDARY_OPENING_HOURSPlace.Field.PHONE_NUMBERPlace.Field.PRICE_LEVELPlace.Field.RATINGPlace.Field.OPENING_HOURSPlace.Field.USER_RATINGS_TOTALPlace.Field.WEBSITE_URI
    • 次のフィールドによって Nearby Search(Preferred)SKU がトリガーされます。

      Place.Field.CURBSIDE_PICKUPPlace.Field.DELIVERYPlace.Field.DINE_INPlace.Field.EDITORIAL_SUMMARYPlace.Field.RESERVABLEPlace.Field.REVIEWSPlace.Field.SERVES_BEERPlace.Field.SERVES_BREAKFASTPlace.Field.SERVES_BRUNCHPlace.Field.SERVES_DINNERPlace.Field.SERVES_LUNCHPlace.Field.SERVES_VEGETARIAN_FOODPlace.Field.SERVES_WINEPlace.Field.TAKEOUT

    フィールド リスト パラメータを設定するには、SearchNearbyRequest オブジェクトの作成時に setPlaceFields() メソッドを呼び出します。

    次の例では、2 つのフィールド値のリストを定義して、リクエストによって返される Place オブジェクトに Place.Field.ID フィールドと Place.Field.NAME フィールドが含まれることを指定します。

// Define a list of fields to include in the response for each returned place.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
  • 地域の制限

    検索する地域を円として定義した LocationRestriction オブジェクト。中心点と半径(メートル単位)で定義します。半径は 0.0 より大きく 50, 000.0 以下にする必要があります。小さすぎる半径を指定すると、レスポンスとして ZERO_RESULTS が返されます。

    ロケーション制限パラメータを設定するには、SearchNearbyRequest オブジェクトの作成時に setLocationRestriction() メソッドを呼び出します。

省略可能なパラメータ

SearchNearbyRequest オブジェクトを使用して、検索のオプション パラメータを指定します。

  • タイプとプライマリ タイプ

    検索結果のフィルタリングに使用する Table A タイプのリストを指定できます。各タイプ制限のカテゴリで最大 50 個のタイプを指定できます。

    場所には、関連付けられているタイプ Table A から 1 つのプライマリ タイプのみを指定できます。たとえば、プライマリ タイプは "mexican_restaurant""steak_house" です。includedPrimaryTypesexcludedPrimaryTypes を使用すると、場所のメインタイプに基づいて結果をフィルタリングできます。

    場所には、関連するタイプの Table A複数のタイプ値を含めることもできます。たとえば、レストランのタイプは "seafood_restaurant""restaurant""food""point_of_interest""establishment" です。includedTypesexcludedTypes を使用して、場所に関連付けられたタイプのリストの結果をフィルタリングします。

    複数のタイプ制限を指定して検索を指定した場合は、すべての制限を満たす場所のみが返されます。たとえば、includedTypes = Arrays.asList("restaurant")excludedPrimaryTypes = Arrays.asList("steak_house") を指定した場合、返される場所は "restaurant" 関連のサービスを提供しますが、主に "steak_house" として動作するわけではありません。

    includedTypesexcludedTypes の使用例については、Nearby Search(新版)リクエストをご覧ください。

    含まれるタイプ

    Table A から検索する場所タイプのリスト。 このパラメータを省略すると、すべてのタイプの場所が返されます。

    含まれるタイプ パラメータを設定するには、SearchNearbyRequest オブジェクトの作成時に setIncludedTypes() メソッドを呼び出します。

    除外されたタイプ

    検索から除外する Table A の場所タイプのリスト。

    リクエストで includedTypes"school" など)と excludedTypes"primary_school" など)の両方を指定した場合、レスポンスには、"school" に分類されるが "primary_school" には分類されない場所が含まれます。レスポンスには、includedTypes の少なくとも 1 つに一致し、excludedTypes のいずれにも一致しない場所が含まれます。

    includedTypesexcludedTypes の両方に指定されているタイプなど、競合するタイプがある場合は、INVALID_REQUEST エラーが返されます。

    除外タイプのパラメータを設定するには、SearchNearbyRequest オブジェクトの作成時に setExcludedTypes() メソッドを呼び出します。

    含まれるプライマリ タイプ

    検索に含める、テーブル A の主要な場所タイプのリスト。

    組み込まれるプライマリ タイプのパラメータを設定するには、SearchNearbyRequest オブジェクトの作成時に setIncludedPrimaryTypes() メソッドを呼び出します。

    除外するメインのタイプ

    検索から除外する Table A の主要な場所タイプのリスト。

    includedPrimaryTypesexcludedPrimaryTypes の両方に存在するタイプなど、競合するプライマリ タイプが存在する場合は、INVALID_ARGUMENT エラーが返されます。

    除外されるプライマリ タイプのパラメータを設定するには、SearchNearbyRequest オブジェクトの作成時に setExcludedPrimaryTypes() メソッドを呼び出します。

  • 結果の最大数

    返されるプレイス結果の最大数を指定します。1 ~ 20(デフォルト)の値にする必要があります。

    最大結果数パラメータを設定するには、SearchNearbyRequest オブジェクトの作成時に setMaxResultCount() メソッドを呼び出します。

  • ランク付けの設定

    使用するランキングのタイプ。このパラメータを省略すると、結果は人気順でランク付けされます。次のいずれかになります。

    • POPULARITY(デフォルト)人気度に基づいて検索結果を並べ替えます。
    • DISTANCE 指定された場所からの距離に基づいて、結果を昇順で並べ替えます。

    ランク設定パラメータを設定するには、SearchNearbyRequest オブジェクトの作成時に setRankPreference() メソッドを呼び出します。

  • 地域コード

    レスポンスのフォーマットに使用されるリージョン コード。 2 文字の CLDR コード値として指定します。デフォルト値はありません。

    レスポンスの formattedAddress フィールドの国名が regionCode と一致する場合、国コードは formattedAddress から省略されます。

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

    地域コード パラメータを設定するには、SearchNearbyRequest オブジェクトの作成時に setRegionCode() メソッドを呼び出します。

アプリに属性を表示する

アプリが PlacesClient から取得した情報(写真やレビューなど)を表示する場合、必要な帰属情報も表示する必要があります。

詳しくは、Places SDK for Android のポリシーをご覧ください。