ย้ายไปที่รายละเอียดสถานที่ (ใหม่)

Places SDK สำหรับ iOS รองรับ รายละเอียดสถานที่ (เดิม) หากคุณคุ้นเคยกับ Places SDK สำหรับ iOS (เดิม) รายละเอียดสถานที่ (ใหม่) จะมีการเปลี่ยนแปลงดังนี้

  • ใช้โมเดลการกำหนดราคาใหม่ ดูข้อมูลการกำหนดราคาสำหรับ API ทั้งหมดได้ที่ หัวข้อการกำหนดราคาสำหรับ Places SDK สำหรับ iOS (ใหม่)

  • ต้องมีการมาสก์ฟิลด์ คุณต้องระบุฟิลด์ที่ต้องการให้แสดงในคำตอบ ไม่มีรายการฟิลด์ที่แสดงเริ่มต้น หากไม่ระบุรายการนี้ เมธอดจะแสดงข้อผิดพลาด

  • หากต้องการส่งคำขอ ให้เรียกใช้เมธอดใหม่ GMSPlacesClient fetchPlaceWithRequest:

  • ส่งไปยังคำขอ

    • อินสแตนซ์ของคลาสใหม่ GMSFetchPlaceRequest ที่กำหนดพารามิเตอร์คำขอทั้งหมด เช่น รหัสสถานที่และ โทเค็นของเซสชัน

    • การเรียกกลับประเภท GMSPlaceResultCallback เพื่อจัดการการตอบกลับ

  • การตอบกลับจะมี GMSPlace อินสแตนซ์ที่มีรายละเอียดเกี่ยวกับสถานที่ ตอนนี้ค่าในพร็อพเพอร์ตี้ของอินสแตนซ์กำหนดโดยตาราง ก และตาราง ขtypesGMSPlace

  • อินสแตนซ์ GMSPlace ของการตอบกลับจะมีพร็อพเพอร์ตี้ reviews ใหม่ประเภท GMSPlaceReview เมื่อแอปแสดงข้อมูลที่ได้รับจากอินสแตนซ์ GMSPlace เช่น รูปภาพและรีวิว แอปต้องแสดงการระบุแหล่งที่มาที่จำเป็นด้วย

    ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบเกี่ยวกับ การระบุแหล่งที่มา

  • อินสแตนซ์ GMSPlace ของการตอบกลับจะมีฟังก์ชันสมาชิกต่อไปนี้

    • isOpen จะคำนวณว่าสถานที่เปิดทำการในเวลาที่กำหนดหรือไม่

    • isOpenAtDate จะคำนวณว่าสถานที่เปิดทำการในวันที่กำหนดหรือไม่

    ฟังก์ชันเหล่านี้จะใช้ได้ก็ต่อเมื่อคุณเปิดใช้ Places SDK สำหรับ iOS และจะใช้ไม่ได้เมื่อคุณเปิดใช้ Places SDK สำหรับ iOS (ใหม่) ดูข้อมูลเพิ่มเติมได้ที่ หัวข้อเลือกเวอร์ชัน SDK

ตัวอย่างคำขอ

เมื่อใช้รายละเอียดสถานที่ (ใหม่) คุณจะส่งคำขอและส่งพารามิเตอร์ทั้งหมดในอินสแตนซ์ GMSFetchPlaceRequest ตัวอย่างนี้ยังใช้มาสก์ฟิลด์เพื่อให้การตอบกลับมีเฉพาะชื่อที่แสดงและ URL ของเว็บไซต์สำหรับสถานที่

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