Places SDK สำหรับ iOS (ใหม่) จะให้ข้อมูลที่สมบูรณ์เกี่ยวกับสถานที่ ได้แก่ ชื่อและที่อยู่ของสถานที่ ตำแหน่งทางภูมิศาสตร์ที่ระบุเป็นพิกัดละติจูด/ลองจิจูด ประเภทสถานที่ (เช่น ไนท์คลับ ร้านสัตว์เลี้ยง พิพิธภัณฑ์) และอื่นๆ หากต้องการเข้าถึงข้อมูลนี้สำหรับสถานที่หนึ่งๆ คุณสามารถใช้รหัสสถานที่ซึ่งเป็นตัวระบุที่เสถียรของสถานที่นั้นๆ
ขอรายละเอียดสถานที่
โดยคลาส GMSPlace
นี้มีข้อมูลเกี่ยวกับสถานที่หนึ่งๆ รวมถึงช่องข้อมูลทั้งหมดที่แสดงในช่องข้อมูลสถานที่ (ใหม่) รับออบเจ็กต์
GMSPlace
โดยการเรียกใช้
GMSPlacesClient
fetchPlaceWithRequest:
ส่งผ่านออบเจ็กต์ GMSFetchPlaceRequest
และวิธี
เรียกกลับของประเภท
GMSPlaceResultCallback
ออบเจ็กต์ GMSFetchPlaceRequest
ระบุข้อมูลต่อไปนี้
- (ต้องระบุ) รหัสสถานที่ ซึ่งเป็นตัวระบุที่ไม่ซ้ำกันของสถานที่ในฐานข้อมูลของ Google Places และใน Google Maps
- (ต้องระบุ) รายการช่องที่จะแสดงผลในออบเจ็กต์
GMSPlace
หรือที่เรียกว่าฟิลด์มาสก์ ตามที่กำหนดโดยGMSPlaceProperty
หากคุณไม่ระบุอย่างน้อย 1 ช่องในรายการช่อง หรือหากคุณไม่ระบุรายการช่อง การเรียกจะแสดงผลข้อผิดพลาด - (ไม่บังคับ) รหัสภูมิภาคที่ใช้จัดรูปแบบการตอบกลับ
- (ไม่บังคับ) โทเค็นของเซสชันที่ใช้ในการสิ้นสุดเซสชันการเติมข้อความอัตโนมัติ (ใหม่)
สร้างคำขอรายละเอียดสถานที่
ตัวอย่างนี้รับข้อมูลสถานที่ตามรหัส และส่งพารามิเตอร์ต่อไปนี้
- รหัสสถานที่ของ
ChIJV4k8_9UodTERU5KXbkYpSYs
- รายการช่องที่ระบุให้แสดงผลชื่อสถานที่และ URL ของเว็บไซต์
GMSPlaceResultCallback
สำหรับจัดการผลลัพธ์
API จะเรียกใช้เมธอดโค้ดเรียกกลับที่ระบุ โดยส่งผ่านออบเจ็กต์ GMSPlace
หากไม่พบสถานที่ ออบเจ็กต์สถานที่จะเป็น nil
Swift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue} // Create the GMSFetchPlaceRequest object. let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties, sessionToken: nil) client.fetchPlace(with: 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 *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite]; // Create the GMSFetchPlaceRequest object. GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties 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); } }];
GooglePlacesSwift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" let fetchPlaceRequest = FetchPlaceRequest( placeID: placeID, placeProperties: [.name, .website] ) switch await placesClient.fetchPlace(with: fetchPlaceRequest) { case .success(let place): // Handle place case .failure(let placesError): // Handle error }
คำตอบสำหรับรายละเอียดสถานที่
รายละเอียดสถานที่จะแสดงออบเจ็กต์ GMSPlace
ที่มีรายละเอียดเกี่ยวกับสถานที่ ระบบจะป้อนข้อมูลเฉพาะช่องที่ระบุไว้ในรายการช่องในออบเจ็กต์ GMSPlace
นอกจากช่องข้อมูลแล้ว ออบเจ็กต์ GMSPlace
ในการตอบสนองจะมีฟังก์ชันสมาชิกต่อไปนี้
-
isOpen
จะคำนวณว่าสถานที่เปิดในเวลาที่ระบุหรือไม่ isOpenAtDate
คำนวณว่าสถานที่เปิดในวันที่ระบุหรือไม่
พารามิเตอร์ที่จำเป็น
ใช้ออบเจ็กต์ GMSFetchPlaceRequest
เพื่อระบุพารามิเตอร์ที่จำเป็น
รหัสสถานที่
รหัสสถานที่ที่ใช้ใน Places SDK สำหรับ iOS เป็นตัวระบุเดียวกับที่ใช้ใน Places API, Places SDK สำหรับ Android และ API อื่นๆ ของ Google รหัสสถานที่แต่ละรหัสอ้างอิงถึงสถานที่ได้เพียงรายการเดียว แต่สถานที่ 1 แห่งจะมีรหัสสถานที่ได้มากกว่า 1 รหัส
มีบางกรณีที่อาจทำให้สถานที่ได้รับรหัสสถานที่ใหม่ เช่น กรณีนี้อาจเกิดขึ้นหากธุรกิจย้ายไปยังสถานที่ตั้งใหม่
เมื่อคุณขอสถานที่โดยระบุรหัสสถานที่ คุณจะมั่นใจได้ว่าจะได้รับสถานที่เดิมในคำตอบเสมอ (หากสถานที่ยังคงอยู่) อย่างไรก็ตาม โปรดทราบว่าการตอบกลับอาจมีรหัสสถานที่ที่ต่างจากในคำขอของคุณ
รายการช่อง
เมื่อขอรายละเอียดสถานที่ คุณต้องระบุข้อมูลที่จะแสดงผลในออบเจ็กต์ GMSPlace
สำหรับสถานที่นั้นเป็นฟิลด์มาสก์ หากต้องการกำหนดฟิลด์มาสก์ ให้ส่งอาร์เรย์ของค่าจาก GMSPlaceProperty
ไปยังออบเจ็กต์ GMSFetchPlaceRequest
การมาสก์ฟิลด์เป็นแนวทางปฏิบัติในการออกแบบที่ดีเพื่อให้คุณไม่ขอข้อมูลที่ไม่จำเป็น ซึ่งจะช่วยหลีกเลี่ยงเวลาในการประมวลผลและการเรียกเก็บเงินที่ไม่จําเป็น
ระบุช่องต่อไปนี้อย่างน้อย 1 ช่อง
ช่องต่อไปนี้จะเรียก SKU รายละเอียดสถานที่ (รหัสเท่านั้น)
GMSPlacePropertyPlaceID
,GMSPlacePropertyName
,GMSPlacePropertyPhotos
ช่องต่อไปนี้จะเรียก SKU รายละเอียดสถานที่ (สถานที่ตั้งเท่านั้น)
GMSPlacePropertyAddressComponents
,GMSPlacePropertyFormattedAddress
,GMSPlacePropertyCoordinate
,GMSPlacePropertyPlusCode
,GMSPlacePropertyTypes
,GMSPlacePropertyViewport
ช่องต่อไปนี้จะเรียก SKU รายละเอียดสถานที่ (พื้นฐาน)
GMSPlacePropertyBusinessStatus
,GMSPlacePropertyIconBackgroundColor
,GMSPlacePropertyIconImageURL
,GMSPlacePropertyUTCOffsetMinutes
,GMSPlacePropertyWheelchairAccessibleEntrance
ช่องต่อไปนี้จะเรียก SKU รายละเอียดสถานที่ (ขั้นสูง) ให้แสดง
GMSPlacePropertyCurrentOpeningHours
,GMSPlacePropertySecondaryOpeningHours
,GMSPlacePropertyPhoneNumber
,GMSPlacePropertyPriceLevel
,GMSPlacePropertyRating
,GMSPlacePropertyOpeningHours
,GMSPlacePropertyUserRatingsTotal
,GMSPlacePropertyWebsite
ช่องต่อไปนี้จะเรียก SKU รายละเอียดสถานที่ (ที่ต้องการ)
GMSPlacePropertyCurbsidePickup
,GMSPlacePropertyDelivery
,GMSPlacePropertyDineIn
,GMSPlacePropertyEditorialSummary
,GMSPlacePropertyReservable
,GMSPlacePropertyReviews
,GMSPlacePropertyServesBeer
,GMSPlacePropertyServesBreakfast
,GMSPlacePropertyServesBrunch
,GMSPlacePropertyServesDinner
GMSPlacePropertyServesLunch
,GMSPlacePropertyServesVegetarianFood
,GMSPlacePropertyServesWine
,GMSPlacePropertyTakeout
ตัวอย่างต่อไปนี้ส่งรายการค่าของช่อง 2 รายการเพื่อระบุว่าออบเจ็กต์ GMSPlace
ที่แสดงโดยคำขอมีช่อง name
และ placeID
Swift
// Specify the place data types to return. let fields: [GMSPlaceProperty] = [.placeID, .name]
Objective-C
// Specify the place data types to return. NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
GooglePlacesSwift
// Specify the place data types to return. let fields: [PlaceProperty] = [.placeID, .displayName]
พารามิเตอร์ที่ไม่บังคับ
ใช้ออบเจ็กต์ GMSFetchPlaceRequest
เพื่อระบุพารามิเตอร์ที่ไม่บังคับ
regionCode
รหัสภูมิภาคที่ใช้ในการจัดรูปแบบการตอบกลับ ซึ่งระบุเป็นค่า รหัส CLDR ที่มี 2 อักขระ พารามิเตอร์นี้อาจทำให้เกิดการให้น้ำหนักพิเศษ กับผลการค้นหาได้เช่นกัน ไม่มีค่าเริ่มต้น
หากชื่อประเทศของช่องที่อยู่ในคำตอบตรงกับรหัสภูมิภาค รหัสประเทศจะไม่แสดงในที่อยู่
รหัส CLDR ส่วนใหญ่เหมือนกับรหัส ISO 3166-1 แต่มีข้อยกเว้นบางประการ ตัวอย่างเช่น ccTLD ของสหราชอาณาจักรคือ "uk" (.co.uk) ในขณะที่รหัส ISO 3166-1 คือ "gb" (ในทางเทคนิคแล้วสำหรับเอนทิตี "สหราชอาณาจักรบริเตนใหญ่และไอร์แลนด์เหนือ") พารามิเตอร์นี้อาจส่งผลต่อผลลัพธ์ตามกฎหมายที่เกี่ยวข้อง
sessionToken
โทเค็นเซสชันเป็นสตริงที่ผู้ใช้สร้างขึ้นซึ่งติดตามการเรียกการเติมข้อความอัตโนมัติ (ใหม่) เป็น "เซสชัน" การเติมข้อความอัตโนมัติ (ใหม่) ใช้โทเค็นเซสชันเพื่อจัดกลุ่มข้อความค้นหาและตำแหน่งที่เลือกของการค้นหาแบบเติมข้อความอัตโนมัติของผู้ใช้เป็นเซสชันที่แยกกันเพื่อใช้ในการเรียกเก็บเงิน โทเค็นของเซสชันจะส่งผ่านไปยังการเรียกรายละเอียดสถานที่ (ใหม่) ที่ตามมาจากการเรียกการเติมข้อความอัตโนมัติ (ใหม่) ดูข้อมูลเพิ่มเติมได้ที่โทเค็นของเซสชัน
แสดงการระบุแหล่งที่มาในแอปของคุณ
เมื่อแอปแสดงข้อมูลที่ได้จาก
GMSPlacesClient
เช่น รูปภาพและรีวิว แอปต้องแสดงที่มาที่จำเป็นด้วย
ตัวอย่างเช่น พร็อพเพอร์ตี้ reviews
ของออบเจ็กต์ GMSPlacesClient
มีอาร์เรย์ของออบเจ็กต์ GMSPlaceReview
สูงสุด 5 รายการ ออบเจ็กต์ GMSPlaceReview
แต่ละรายการอาจมีการระบุแหล่งที่มาและการระบุแหล่งที่มาผู้เขียน
หากแสดงรีวิวในแอป คุณก็ต้องแสดงการระบุแหล่งที่มาหรือการระบุแหล่งที่มาของผู้เขียนด้วย
สำหรับข้อมูลเพิ่มเติม ดูเอกสารเกี่ยวกับการระบุแหล่งที่มา