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;
    }
  }
];

Places Swift SDK for iOS(プレビュー)

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 オブジェクトがあります。

営業状況を確認する

GMSPlacesClient オブジェクトには isOpenWithRequest というメンバー関数(Swift では isOpenRequest、GooglePlacesSwift では isPlaceOpenRequest)が含まれています。この関数は、呼び出しで指定された時間に基づいて、現在営業中かどうかを示すレスポンスを返します。

このメソッドは、以下を含む GMSPlaceIsOpenWithRequest 型の引数を 1 つ取ります。

  • GMSPlace オブジェクト、またはプレイス ID を指定する文字列。必要なフィールドを含む Place オブジェクトの作成について詳しくは、Place Details をご覧ください。
  • 確認する時刻を指定するオプションの NSDate(Obj-C)オブジェクトまたは Date(Swift)オブジェクト。時間が指定されていない場合、デフォルトは現在です。
  • レスポンスを処理する GMSPlaceOpenStatusResponseCallback メソッド。
  • &gt;
で確認できます。

GMSPlaceIsOpenWithRequest メソッドでは、GMSPlace オブジェクトで次のフィールドを設定する必要があります。

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

これらのフィールドがプレイス オブジェクトで指定されていない場合や、プレイス ID を渡した場合、メソッドは GMSPlacesClient GMSFetchPlaceRequest: を使用してフィールドを取得します。

isOpenWithRequest レスポンス

isOpenWithRequest は、ビジネスが営業中か、閉業しているか、またはステータスが不明かどうかを示す status という名前のブール値を含む GMSPlaceIsOpenResponse オブジェクトを返します。

言語 オープンの場合の値 閉じた場合の値 ステータスが不明な場合の値
Swift .open .closed .unknown
Objective-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown
GooglePlacesSwift(プレビュー) true false nil

isOpenWithRequest の請求

  • GMSPlacePropertyUTCOffsetMinutes フィールドと GMSPlacePropertyBusinessStatus フィールドは、Basic Data SKU に基づいて課金されます。営業時間の残りの時間は、Place Details(Advanced)SKU に基づいて課金されます。
  • GMSPlace オブジェクトに以前のリクエストのこれらのフィールドがすでに含まれている場合、再度課金されることはありません。

例: GMSPlaceIsOpenWithRequest リクエストを行う

次の例は、既存の GMSPlace オブジェクト内で GMSPlaceIsOpenWithRequest を初期化する方法を示しています。

Swift

    let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil)
      GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in
        if let error = error {
          // Handle Error
        }
        switch response.status {
          case .open:
            // Handle open
          case .closed:
            // Handle closed
          case .unknown:
            // Handle unknown
        }
      }
        

Objective-C

          GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil];
  
          [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) {
            if (error) {
              // Handle error
            }
  
            switch (response.status) {
              case GMSPlaceOpenStatusOpen:
                // Handle open
              case GMSPlaceOpenStatusClosed:
                // Handle closed
              case GMSPlaceOpenStatusUnknown:
                // Handle unknown
            }
          }];
          

GooglePlacesSwift

          let isOpenRequest = IsPlaceOpenRequest(place: place)
          switch await placesClient.isPlaceOpen(with: isOpenRequest) {
            case .success(let isOpenResponse):
              switch isOpenResponse.status {
                case true:
                  // Handle open
                case false:
                  // Handle closed
                case nil:
                  // Handle unknown
            case .failure(let placesError):
              // Handle error
          }
          

必須パラメータ

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

  • フィールド リスト

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

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

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

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

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

      GMSPlacePropertyCurrentOpeningHours, GMSPlacePropertySecondaryOpeningHours, GMSPlacePropertyPhoneNumber, GMSPlacePropertyPriceLevelGMSPlacePropertyRating, GMSPlacePropertyOpeningHours, GMSPlacePropertyUserRatingsTotal, GMSPlacePropertyWebsite

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

      GMSPlacePropertyCurbsidePickup, GMSPlacePropertyDelivery, GMSPlacePropertyDineIn, GMSPlacePropertyEditorialSummaryGMSPlacePropertyReservable, 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];
            

    Places Swift SDK for iOS(プレビュー)

    // 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 オブジェクトには、帰属表示と著者帰属を含めることができます。 アプリにレビューを表示する場合は、帰属情報または著者名も表示する必要があります。 あります。

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