Places SDK สำหรับ iOS (ใหม่) จะให้ข้อมูลที่สมบูรณ์เกี่ยวกับสถานที่ต่างๆ แก่แอปของคุณ ซึ่งรวมถึงชื่อและที่อยู่ของสถานที่ ตำแหน่งทางภูมิศาสตร์ที่ระบุเป็นพิกัดละติจูด/ลองจิจูด ประเภทสถานที่ (เช่น ไนท์คลับ ร้านสัตว์เลี้ยง พิพิธภัณฑ์) และอื่นๆ หากต้องการเข้าถึงข้อมูลนี้ของสถานที่ใดสถานที่หนึ่ง คุณสามารถใช้รหัสสถานที่ ซึ่งเป็นตัวระบุที่คงที่ซึ่งระบุสถานที่แต่ละแห่งโดยไม่ซ้ำกัน
ดูรายละเอียดสถานที่
ชั้นเรียน GMSPlace
มีข้อมูลเกี่ยวกับสถานที่ที่เจาะจง รวมถึงช่องข้อมูลทั้งหมดที่แสดงในช่องข้อมูลสถานที่ (ใหม่) รับออบเจ็กต์
GMSPlace
โดยการเรียกใช้
GMSPlacesClient
fetchPlaceWithRequest:
ส่งออบเจ็กต์ GMSFetchPlaceRequest
และ
เมธอด Callback ของประเภท
GMSPlaceResultCallback
ออบเจ็กต์ GMSFetchPlaceRequest
ระบุข้อมูลต่อไปนี้
- (จำเป็น) รหัสสถานที่ ซึ่งเป็นตัวระบุที่ไม่ซ้ำกันของสถานที่ในฐานข้อมูลของ Google Places และใน Google Maps
- (ต้องระบุ) รายการช่องที่จะแสดงผลในออบเจ็กต์
GMSPlace
หรือเรียกอีกอย่างว่าฟิลด์มาสก์ ตามที่กำหนดโดยGMSPlaceProperty
หากคุณไม่ระบุอย่างน้อย 1 ช่องในรายการช่อง หรือหากคุณไม่ได้ระบุรายการช่อง การเรียกใช้จะแสดงข้อผิดพลาด - (ไม่บังคับ) รหัสภูมิภาคที่ใช้ในการจัดรูปแบบคำตอบ
- (ไม่บังคับ) โทเค็นเซสชันที่ใช้สิ้นสุดเซสชันการเติมข้อความอัตโนมัติ (ใหม่)
ส่งคำขอรายละเอียดสถานที่
ตัวอย่างนี้ได้สถานที่ตามรหัสโดยส่งผ่านพารามิเตอร์ต่อไปนี้
- รหัสสถานที่ของ
ChIJV4k8_9UodTERU5KXbkYpSYs
- รายการฟิลด์ที่ระบุให้แสดงผลชื่อสถานที่และ URL ของเว็บไซต์
GMSPlaceResultCallback
เพื่อจัดการผลลัพธ์
API จะเรียกใช้เมธอด Callback ที่ระบุโดยการส่งผ่านในออบเจ็กต์ GMSPlace
หากไม่พบสถานที่ วัตถุสถานที่จะเป็นค่าศูนย์
Swift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let myProperties: [GMSPlaceProperty] = [.name, .website] // Create the GMSFetchPlaceRequest object. let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties) client.fetchPlaceWithRequest(fetchPlaceRequest: fetchPlaceRequest, callback: { (place: GMSPlace?, error: Error?) in guard let place, error == nil else { return } print("Place found: \(place.name)") })
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. NSArray<GMSPlaceProperty *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite]; // Create the GMSFetchPlaceRequest object. GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties]; [placesClient fetchPlaceWithRequest: fetchPlaceRequest, callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) { if (error == null) { 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 รหัส
มีบางกรณีที่อาจทำให้สถานที่ได้รับรหัสสถานที่ใหม่ ตัวอย่างเช่น กรณีนี้อาจเกิดขึ้นหากธุรกิจย้ายไปยังสถานที่ตั้งใหม่
เมื่อคุณขอสถานที่ด้วยการระบุรหัสสถานที่ คุณจะมั่นใจได้ว่าคุณจะได้รับสถานที่เดียวกันนั้นในคำตอบเสมอ (หากยังมีสถานที่นั้นอยู่) อย่างไรก็ตาม โปรดทราบว่าการตอบกลับอาจมีรหัสสถานที่ที่แตกต่างจากในคำขอของคุณ
รายการช่อง
เมื่อขอรายละเอียดสถานที่ คุณต้องระบุข้อมูลที่จะแสดงในออบเจ็กต์ 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
,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
แต่ละรายการมีการระบุแหล่งที่มาและการระบุแหล่งที่มาของผู้เขียนได้
หากแสดงรีวิวในแอป คุณต้องแสดงการระบุแหล่งที่มาหรือการระบุแหล่งที่มาของผู้เขียนด้วย
สำหรับข้อมูลเพิ่มเติม โปรดดูเอกสารเกี่ยวกับการระบุแหล่งที่มา