مهاجرت به جزئیات مکان (جدید)

Places SDK برای iOS از جزئیات مکان موجود پشتیبانی می کند. اگر با Places SDK موجود برای iOS آشنا هستید، نسخه جدید Place Details تغییرات زیر را اعمال می کند:

  • از مدل قیمت گذاری جدید استفاده می کند. برای اطلاعات قیمت گذاری برای همه API ها، به قیمت گذاری مکان ها SDK برای iOS (جدید) مراجعه کنید.

  • پوشاندن میدان مورد نیاز است. شما باید مشخص کنید که کدام فیلدها را می خواهید در پاسخ بازگردانید. هیچ لیست پیش فرضی از فیلدهای برگشتی وجود ندارد. اگر این لیست را حذف کنید، متدها با خطا مواجه می شوند.

  • برای درخواست، با متد جدید GMSPlacesClient fetchPlaceWithRequest: تماس بگیرید.

  • عبور به درخواست:

    • نمونه ای از کلاس جدید GMSFetchPlaceRequest که تمام پارامترهای درخواست را تعریف می کند، مانند شناسه مکان و نشانه جلسه.

    • یک تماس از نوع GMSPlaceResultCallback برای رسیدگی به پاسخ.

  • پاسخ حاوی یک نمونه GMSPlace حاوی جزئیات مربوط به مکان است. مقادیر موجود در ویژگی‌های types نمونه GMSPlace اکنون توسط جدول A و جدول B تعریف می‌شوند.

  • نمونه پاسخ GMSPlace حاوی ویژگی reviews جدید از نوع GMSPlaceReview است. هنگامی که برنامه شما اطلاعات به دست آمده از نمونه GMSPlace ، مانند عکس ها و نظرات را نمایش می دهد، برنامه باید اسناد مورد نیاز را نیز نمایش دهد.

    برای اطلاعات بیشتر، به مستندات مربوط به ارجاعات مراجعه کنید.

  • نمونه پاسخ GMSPlace شامل توابع عضو زیر است:

    • isOpen محاسبه می کند که آیا مکانی در زمان معین باز است یا خیر.

    • isOpenAtDate محاسبه می کند که آیا یک مکان در تاریخ معین باز است یا خیر.

    این توابع تنها زمانی در دسترس هستند که Places SDK را برای iOS فعال کنید. وقتی Places SDK برای iOS (جدید) را فعال می‌کنید، در دسترس نیستند. برای اطلاعات بیشتر، به انتخاب نسخه SDK خود مراجعه کنید.

درخواست نمونه

با Place Details (جدید)، شما درخواست می کنید و تمام پارامترها را در نمونه GMSFetchPlaceRequest ارسال می کنید. این مثال همچنین از یک فیلد ماسک استفاده می کند، بنابراین پاسخ فقط شامل نام نمایشی و URL وب سایت برای مکان است:

سویفت

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let fields = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue}

// Create the GMSFetchPlaceRequest instance.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: fields, sessionToken: nil)

client.fetchPlaceWithRequest(fetchPlaceRequest: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  guard let place, error == nil else { return }
  print("Place found: \(String(describing: place.name))")
})

هدف-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

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

// Create the GMSFetchPlaceRequest instance.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: fields sessionToken:nil];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    } else {
    NSLog(@"Place Found: %@", place.name);
    NSLog(@"The place URL: %@", place.website);
  }
}];