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