Di chuyển đến thông tin chi tiết về địa điểm (Mới)

Places SDK dành cho iOS hỗ trợ tính năng Chi tiết địa điểm (Cũ). Nếu bạn đã quen với Places SDK dành cho iOS (Cũ), tính năng Chi tiết địa điểm (Mới) sẽ có những thay đổi sau:

  • Sử dụng mô hình giá mới. Để biết thông tin về giá cho tất cả các API, hãy xem bài viết Giá cho Places SDK dành cho iOS (Mới).

  • Bạn phải sử dụng mặt nạ cho trường. Bạn phải chỉ định những trường mà bạn muốn trả về trong phản hồi. Không có danh sách mặc định các trường được trả về. Nếu bạn bỏ qua danh sách này, các phương thức sẽ trả về lỗi.

  • Để đưa ra yêu cầu, hãy gọi phương thức mới GMSPlacesClient fetchPlaceWithRequest:.

  • Truyền vào yêu cầu:

    • Một thực thể của lớp mới GMSFetchPlaceRequest xác định tất cả các tham số yêu cầu, chẳng hạn như mã địa điểm và mã phiên.

    • Một lệnh gọi lại thuộc loại GMSPlaceResultCallback để xử lý phản hồi.

  • Phản hồi chứa một GMSPlace thực thể chứa thông tin chi tiết về địa điểm. Các giá trị trong types thuộc tính của thực thể GMSPlace hiện được xác định theo Bảng ABảng B.

  • Thực thể phản hồi GMSPlace chứa thuộc tính reviews mới thuộc loại GMSPlaceReview. Khi ứng dụng của bạn hiển thị thông tin thu được từ thực thể GMSPlace, chẳng hạn như ảnh và bài đánh giá, ứng dụng cũng phải hiển thị thông tin phân bổ bắt buộc.

    Để biết thêm thông tin, hãy xem tài liệu về thông tin phân bổ.

  • Thực thể phản hồi GMSPlace chứa các hàm thành viên sau:

    • isOpen tính toán xem một địa điểm có mở cửa vào thời điểm đã cho hay không.

    • isOpenAtDate tính toán xem một địa điểm có mở cửa vào một ngày đã cho hay không.

    Các hàm này chỉ hoạt động khi bạn bật Places SDK dành cho iOS. Các hàm này không hoạt động khi bạn bật Places SDK dành cho iOS (Mới). Để biết thêm thông tin, hãy xem Chọn phiên bản SDK.

Yêu cầu mẫu

Với Place Details (Mới), bạn sẽ đưa ra yêu cầu và truyền tất cả các tham số trong thực thể GMSFetchPlaceRequest. Ví dụ này cũng sử dụng mặt nạ cho trường để phản hồi chỉ bao gồm tên hiển thị và URL trang web cho địa điểm:

Swift

// 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))")
})

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