Nearby Search(新規)

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

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

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

Nearby Search(新版)リクエスト

Nearby Search リクエストを行うには、 GMSPlacesClient searchNearbyWithRequest: 渡す GMSPlaceSearchNearbyRequest リクエスト パラメータとコールバック メソッドを定義するオブジェクト GMSPlaceSearchNearbyResultCallback, レスポンスを処理します。

GMSPlaceSearchNearbyRequest オブジェクトでは、すべての Pod が required および optional パラメータを指定します。必須パラメータは次のとおりです。

  • GMSPlace オブジェクトで返されるフィールドのリスト。 フィールド マスクGMSPlaceProperty。 フィールド リストで 1 つ以上のフィールドを指定しない場合、またはフィールドを省略した場合 その場合、呼び出しはエラーを返します。
  • 場所の制限(検索範囲を定義する円)。

この例の付近の検索リクエストでは、レスポンスの GMSPlace オブジェクトを指定しています。 場所の名前(GMSPlacePropertyName)と場所の座標を含む (GMSPlacePropertyCoordinate)(検索内の各 GMSPlace オブジェクトに対して) 表示されます。また、レスポンスをフィルタリングして、タイプが「restaurant」の場所のみを返すようにします。検索します。

Swift

// Array to hold the places in the response
var placeResults: [GMSPlace] = []

// Define the search area as a 500 meter diameter circle in San Francisco, CA.
let circularLocationRestriction = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(37.7937, -122.3965), 500)

// Specify the fields to return in the GMSPlace object for each place in the response.
let placeProperties = [GMSPlaceProperty.name, GMSPlaceProperty.coordinate].map {$0.rawValue}

// Create the GMSPlaceSearchNearbyRequest, specifying the search area and GMSPlace fields to return.
var request = GMSPlaceSearchNearbyRequest(locationRestriction: circularLocationRestriction, placeProperties: placeProperties)
let includedTypes = ["restaurant", "cafe"]
request.includedTypes = includedTypes

let callback: GMSPlaceSearchNearbyResultCallback = { [weak self] results, error in
  guard let self, error == nil else {
    if let error {
      print(error.localizedDescription)
    }
    return
  }
  guard let results = results as? [GMSPlace] else {
    return
  }
  placeResults = results
}

GMSPlacesClient.shared().searchNearby(with: request, callback: callback)

Objective-C

// Array to hold the places in the response
_placeResults = [NSArray array];

// Define the search area as a 500 meter diameter circle in San Francisco, CA.
id<GMSPlaceLocationRestriction> circularLocation = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(37.7937, -122.3965), 500);

// Create the GMSPlaceSearchNearbyRequest, specifying the search area and GMSPlace fields to return.
GMSPlaceSearchNearbyRequest *request = [[GMSPlaceSearchNearbyRequest alloc]
  initWithLocationRestriction:circularLocation
              placeProperties:@[ GMSPlacePropertyName, GMSPlacePropertyCoordinate ]];

// Set the place types to filter on.
NSArray<NSString *> *includedTypes = @[ @"restaurant", @"cafe" ];
request.includedTypes = [[NSMutableArray alloc] initWithArray:includedTypes];

[_placesClient searchNearbyWithRequest:request
  callback:^(NSArray<GMSPlace *> *_Nullable places, NSError *_Nullable error) {
    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    } else {
        // Get list of places.
        _placeResults = places;
    }
  }
];

GooglePlacesSwift

let restriction = CircularCoordinateRegion(center: CLLocationCoordinate2DMake(37.7937, -122.3965), radius: 500)
let searchNearbyRequest = SearchNearbyRequest(
  locationRestriction: restriction,
  placeProperties: [ .name, .coordinate],
  includedTypes: [ .restaurant, .cafe ],
)
switch await placesClient.searchNearby(with: searchNearbyRequest) {
case .success(let places):
  // Handle places
case .failure(let placesError):
  // Handle error
}

Nearby Search のレスポンス

Nearby Search API は、一致した文字列を GMSPlace 一致する場所ごとに 1 つの GMSPlace オブジェクトがあります。

データ フィールドのほか、GMSPlace オブジェクトの 次のメンバー関数が含まれます。

  • <ph type="x-smartling-placeholder"></ph> isOpen は、ある場所が所定の時間に営業しているかどうかを計算します。
  • isOpenAtDate 特定の日付に営業しているかどうかを計算します。

必須パラメータ

GMSPlaceSearchNearbyRequest オブジェクトを使用して、Terraform の必須パラメータを指定します。 表示されます。

  • フィールド リスト

    Place Details をリクエストする場合は、リクエストするデータを指定する必要があります。 GMSPlace オブジェクトでフィールド マスクとして返されます。目標を定義するには、 値の配列を渡すには、フィールド マスクから GMSPlaceProperty GMSPlaceSearchNearbyRequest オブジェクトに追加します。 フィールド マスキングは、不要なデータをリクエストしないようにするための優れた設計プラクティスです。 不要な処理時間と料金の請求を回避できます

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

    • 次のフィールドによって Nearby Search(Basic)SKU:

      GMSPlacePropertyAddressComponents, GMSPlacePropertyBusinessStatus, GMSPlacePropertyCoordinate, GMSPlacePropertyFormattedAddress, GMSPlacePropertyName, GMSPlacePropertyIconBackgroundColor, GMSPlacePropertyIconImageURL, GMSPlacePropertyPhotos, GMSPlacePropertyPlaceID, GMSPlacePropertyPlusCode, GMSPlacePropertyTypes, GMSPlacePropertyUTCOffsetMinutes, GMSPlacePropertyViewport, GMSPlacePropertyWheelchairAccessibleEntrance

    • 次のフィールドによって Nearby Search(Advanced)SKU:

      GMSPlacePropertyCurrentOpeningHours, GMSPlacePropertySecondaryOpeningHours, GMSPlacePropertyPhoneNumber, GMSPlacePropertyPriceLevel, GMSPlacePropertyRating, GMSPlacePropertyOpeningHours, GMSPlacePropertyUserRatingsTotal, GMSPlacePropertyWebsite

    • 次のフィールドによって Nearby Search(Preferred)SKU:

      GMSPlacePropertyCurbsidePickup, GMSPlacePropertyDelivery, GMSPlacePropertyDineIn, GMSPlacePropertyEditorialSummary, GMSPlacePropertyReservable, GMSPlacePropertyReviews, GMSPlacePropertyServesBeer, GMSPlacePropertyServesBreakfast, GMSPlacePropertyServesBrunch, GMSPlacePropertyServesDinner, GMSPlacePropertyServesLunch, GMSPlacePropertyServesVegetarianFood, GMSPlacePropertyServesWine, GMSPlacePropertyTakeout

    次の例では、2 つのテーブルを含む フィールド値 リクエストによって返される GMSPlace オブジェクトに name フィールドと placeID フィールド:

    Swift

    // Specify the place data types to return.
    let fields: [GMSPlaceProperty] = [.placeID, .name]
            

    Objective-C

    // Specify the place data types to return.
    NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
            

    GooglePlacesSwift

    // Specify the place data types to return.
    let fields: [PlaceProperty] = [.placeID, .displayName]
            
  • locationRestriction

    GMSPlaceLocationRestriction 検索する領域を定義するオブジェクトです。中心点と中心点で定義した円で 半径(メートル単位)。半径は 0.0 ~ 50000.0 の範囲で指定してください。デフォルトの半径は 0.0。リクエストでは、0.0 より大きい値を設定する必要があります。

オプション パラメータ

GMSPlaceSearchNearbyRequest オブジェクトを使用して、ラベルのオプション パラメータを指定します。 表示されます。

  • includeTypes/excludedTypes、includedPrimaryTypes/excludedPrimaryTypes

    次の型から型のリストを指定できます。 テーブル A をフィルタに使用する 表示されます。各タイプ制限のカテゴリで最大 50 個のタイプを指定できます。

    1 つの場所には、タイプの中から 1 つのメインタイプのみを指定できます。 テーブル A が関連付けられています。 できます。たとえば、主要な種類が "mexican_restaurant" または "steak_house"。使用 includedPrimaryTypesexcludedPrimaryTypes: 結果をフィルタリングする メインタイプを指定します

    場所には、タイプの複数のタイプ値を含めることもできます。 表 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

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

    excludedTypes

    場所タイプのリスト: 除外するテーブル A できます。

    includedTypes"school" など)と リクエスト内で excludedTypes"primary_school" など)である場合、 "school" に分類されますが、 "primary_school"。レスポンスには、次の少なくとも 1 つに一致する場所が含まれます。 includedTypes のみが含まれ、excludedTypesなし

    タイプが競合する場合(例: 両方に指定されているタイプ)includedTypes excludedTypes の場合は、INVALID_REQUEST エラーが返されます。

    includedPrimaryTypes

    参照元に含まれる主要な場所タイプのリスト 含めるテーブル A

    excludedPrimaryTypes

    参照元に含まれる主要な場所タイプのリスト 除外する表 A 表示されます。

    競合する主要なタイプがある場合(例: 両方に使用されているタイプ) includedPrimaryTypesexcludedPrimaryTypes INVALID_ARGUMENT エラーが返されます。

  • maxResultCount

    返されるプレイス結果の最大数を指定します。範囲内で指定してください 1 ~ 20(デフォルト)で指定します。

  • rankPreference

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

    • .popularity(デフォルト)人気度に基づいて検索結果を並べ替えます。
    • .distance からの距離に基づいて昇順で結果を並べ替えます。 表示されます。
  • regionCode

    レスポンスのフォーマットに使用される地域コード。 <ph type="x-smartling-placeholder"></ph> 2 文字の CLDR コードの値。デフォルト値はありません。

    レスポンスの formattedAddress フィールドの国名が regionCode の場合、国コードは formattedAddress から省略されます。 このパラメータは adrFormatAddress(常に国を含む)には影響しません。 これを含まない shortFormattedAddress で使用できます。

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

アプリに属性を表示する

以下から取得した情報をアプリが表示するタイミング GMSPlacesClient 必要な帰属情報も表示する必要があります。

たとえば、GMSPlacesClient オブジェクトの reviews プロパティは、 最大 5 つの配列を含む GMSPlaceReview 説明します。各 GMSPlaceReview オブジェクトには、帰属表示と著者帰属を含めることができます。 アプリにレビューを表示する場合は、帰属情報または投稿者も表示する必要があります。 できます。

詳細については、このモジュールのコースリソースに アトリビューション