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

کیت توسعه نرم‌افزار Places برای iOS از جزئیات مکان (Legacy) پشتیبانی می‌کند. اگر با کیت توسعه نرم‌افزار Places برای iOS (Legacy) آشنا هستید، جزئیات مکان (New) تغییرات زیر را ایجاد می‌کند:

  • از یک مدل قیمت‌گذاری جدید استفاده می‌کند. برای اطلاعات قیمت‌گذاری برای همه APIها، به قیمت‌گذاری Places 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))")
})

هدف-سی

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