Nearby Search(新規)

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

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

デフォルトでは、レスポンスには検索エリア内のすべてのタイプの場所が含まれます。必要に応じて、レスポンスに明示的に含める場所タイプまたは除外する場所タイプのリストを指定して、レスポンスをフィルタできます。たとえば、レスポンスに「レストラン」、「ベーカリー」、「カフェ」の種類の場所のみを含めるように指定したり、「学校」の種類の場所をすべて除外したりできます。

近くのスポット検索(新規)リクエスト

PlacesClient.searchNearby を呼び出し、リクエスト パラメータを定義する SearchNearbyRequest オブジェクトを渡して、周辺検索(新規)リクエストを送信します。

SearchNearbyRequest オブジェクトには、リクエストの必須パラメータとオプション パラメータをすべて指定します。必須パラメータには次のものがあります。

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

この近くの検索リクエストの例では、レスポンスの Place オブジェクトに、検索結果の各 Place オブジェクトの場所フィールド Place.Field.IDPlace.Field.DISPLAY_NAME が含まれるように指定しています。また、レスポンスのフィルタリングを行い、「restaurant」と「cafe」タイプのみの場所を返すようにし、「pizza_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.DISPLAY_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();
    });

周辺検索(新規)のレスポンス

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 オブジェクト内のデータにアクセスするその他の例については、Place オブジェクトのデータフィールドにアクセスするをご覧ください。

必須パラメータ

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

  • フィールドリスト

    場所の詳細をリクエストする場合は、場所の 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.PRIMARY_TYPEPlace.Field.PRIMARY_TYPE_DISPLAY_NAMEPlace.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.CURRENT_SECONDARY_OPENING_HOURSPlace.Field.INTERNATIONAL_PHONE_NUMBERPlace.Field.NATIONAL_PHONE_NUMBERPlace.Field.OPENING_HOURSPlace.Field.PRICE_LEVELPlace.Field.RATINGPlace.Field.SECONDARY_OPENING_HOURSPlace.Field.USER_RATING_COUNTPlace.Field.WEBSITE_URI
    • 次のフィールドは、Nearby Search(優先)SKU をトリガーします。

      Place.Field.ALLOWS_DOGSPlace.Field.CURBSIDE_PICKUPPlace.Field.DELIVERYPlace.Field.DINE_INPlace.Field.EDITORIAL_SUMMARYPlace.Field.EV_CHARGE_OPTIONSPlace.Field.FUEL_OPTIONSPlace.Field.GOOD_FOR_CHILDRENPlace.Field.GOOD_FOR_GROUPSPlace.Field.GOOD_FOR_WATCHING_SPORTSPlace.Field.LIVE_MUSICPlace.Field.MENU_FOR_CHILDRENPlace.Field.OUTDOOR_SEATINGPlace.Field.PARKING_OPTIONSPlace.Field.PAYMENT_OPTIONSPlace.Field.RESERVABLEPlace.Field.RESTROOMPlace.Field.REVIEWSPlace.Field.SERVES_BEERPlace.Field.SERVES_BREAKFASTPlace.Field.SERVES_BRUNCHPlace.Field.SERVES_COCKTAILSPlace.Field.SERVES_COFFEEPlace.Field.SERVES_DESSERTPlace.Field.SERVES_DINNERPlace.Field.SERVES_LUNCHPlace.Field.SERVES_VEGETARIAN_FOODPlace.Field.SERVES_WINEPlace.Field.TAKEOUT

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

    次の例では、2 つのフィールド値のリストを定義して、リクエストから返された Place オブジェクトに Place.Field.ID フィールドと Place.Field.DISPLAY_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.DISPLAY_NAME);
  • 地域の制限

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

    位置情報の制限パラメータを設定するには、SearchNearbyRequest オブジェクトを作成するときに setLocationRestriction() メソッドを呼び出します。

オプション パラメータ

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

  • 型と主な型

    検索結果のフィルタに使用する表 A のタイプから、タイプのリストを指定できます。各種類制限カテゴリには最大 50 種類を指定できます。

    プレイスには、関連付けられている テーブル A のタイプから1 つのプライマリ タイプのみを設定できます。たとえば、プライマリ タイプは "mexican_restaurant" または "steak_house" です。includedPrimaryTypesexcludedPrimaryTypes を使用して、場所のプライマリ タイプで結果をフィルタします。

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

    "restaurant""hotel" などの一般的なプライマリ タイプを指定すると、指定したプライマリ タイプよりも具体的なプライマリ タイプの場所がレスポンスに含まれることがあります。たとえば、プライマリ タイプ "restaurant" を含めるように指定します。レスポンスには、プライマリ タイプが "restaurant" の場所が含まれますが、"chinese_restaurant""seafood_restaurant" など、より具体的なプライマリ タイプの場所も含まれます。

    複数の種類の制限を指定して検索した場合は、すべての制限を満たす場所のみが返されます。たとえば、includedTypes = Arrays.asList("restaurant")excludedPrimaryTypes = Arrays.asList("steak_house") を指定すると、返される場所は "restaurant" 関連サービスを提供しますが、主に "steak_house" として機能しません。

    includedTypesexcludedTypes の使用方法の例については、周辺検索(新規)リクエストをご覧ください。

    含まれるタイプ

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

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

    除外されるタイプ

    検索から除外する表 A の場所の種類のリスト。

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

    includedTypesexcludedTypes の両方に出現する型など、競合する型がある場合、INVALID_REQUEST エラーが返されます。

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

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

    検索に含める表 A の主要な場所の種類のリスト。

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

    除外されたプライマリ タイプ

    検索から除外する表 A の主な場所の種類のリスト。

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

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

  • 最大結果数

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

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

  • ランクの設定

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

    • POPULARITY(デフォルト): 人気度に基づいて結果を並べ替えます。
    • DISTANCE 指定した場所からの距離が近い順に結果を並べ替えます。

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

  • 地域コード

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

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

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

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

アプリに属性を表示する

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

詳細については、Android 向け Places SDK のポリシーをご覧ください。