เมื่อใช้ Places SDK สำหรับ iOS คุณจะค้นพบสถานที่ที่อุปกรณ์ตั้งอยู่ในปัจจุบันได้ ซึ่งก็คือสถานที่ ณ ตำแหน่งที่อุปกรณ์รายงานในปัจจุบัน ตัวอย่างของสถานที่ ได้แก่ ธุรกิจในพื้นที่ จุดที่น่าสนใจ และสถานที่ตั้งทางภูมิศาสตร์
กำลังขอสิทธิ์เข้าถึงตำแหน่ง
หากแอปใช้
GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: แอปต้องขอสิทธิ์ใช้บริการตำแหน่ง เพิ่มคีย์ NSLocationWhenInUseUsageDescription ลงในไฟล์ Info.plist เพื่อกำหนดสตริงที่แจ้งให้ผู้ใช้ทราบว่าเหตุใดคุณจึงต้องใช้บริการตำแหน่ง เช่น
<key>NSLocationWhenInUseUsageDescription</key> <string>Show your location on the map</string>
หากต้องการเรียกใช้
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: เมื่อแอปทำงานอยู่เบื้องหลังโดยไม่ทริกเกอร์กล่องโต้ตอบการยืนยัน ให้ทำตามขั้นตอนต่อไปนี้ก่อนทำการเรียกใช้
- เพิ่มคีย์
NSLocationAlwaysUsageDescriptionลงในไฟล์Info.plist - เรียกใช้
requestAlwaysAuthorizationในอินสแตนซ์ใดก็ได้ของCLLocationManagerก่อนเรียกใช้เมธอด
ขอสิทธิ์จาก CLLocationManager ดังนี้
Swift
locationManager.requestAlwaysAuthorization()
Objective-C
[self.locationManager requestAlwaysAuthorization];
กำลังรับข้อมูลตำแหน่งปัจจุบัน
หากต้องการค้นหาธุรกิจในพื้นที่หรือสถานที่อื่นๆ ที่อุปกรณ์ตั้งอยู่ในปัจจุบัน ให้เรียกใช้ GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: รวมพารามิเตอร์ต่อไปนี้
GMSPlaceFieldอย่างน้อย 1 รายการที่ระบุประเภทข้อมูลที่จะแสดงผล หากคุณละเว้นพารามิเตอร์นี้ ระบบจะแสดงผลช่องที่เป็นไปได้ทั้งหมด และจะเรียกเก็บเงินจากคุณตามนั้น ซึ่งจะมีผลกับคำขอรายละเอียดสถานที่เท่านั้น- เมธอด Callback เพื่อจัดการผลลัพธ์
ฟิลด์จะสอดคล้องกับผลการค้นหาสถานที่ และแบ่งออกเป็น 3 หมวดหมู่การเรียกเก็บเงิน ได้แก่ พื้นฐาน ข้อมูลติดต่อ และบรรยากาศ ระบบจะเรียกเก็บเงินสำหรับช่องพื้นฐานในอัตราฐาน และไม่มีค่าใช้จ่ายเพิ่มเติม ระบบจะเรียกเก็บเงินสำหรับฟิลด์ข้อมูลติดต่อและบรรยากาศในอัตราที่สูงขึ้น ดูข้อมูลเพิ่มเติมเกี่ยวกับการเรียกเก็บเงินสำหรับคำขอข้อมูลสถานที่ได้ที่การใช้งานและการเรียกเก็บเงิน
API จะเรียกใช้เมธอด Callback ที่ระบุ โดยแสดงผลอาร์เรย์ของออบเจ็กต์ GMSPlaceLikelihood
ออบเจ็กต์ GMSPlaceLikelihood แต่ละรายการจะแสดงสถานที่ สำหรับสถานที่แต่ละแห่ง ผลลัพธ์จะรวมการระบุความเป็นไปได้ว่าสถานที่นั้นเป็นสถานที่ที่ถูกต้อง ค่าที่สูงขึ้นหมายความว่ามีโอกาสมากขึ้นที่สถานที่นั้นจะตรงกันมากที่สุด บัฟเฟอร์อาจว่างเปล่าหากไม่มีสถานที่ที่ทราบซึ่งสอดคล้องกับตำแหน่งของอุปกรณ์
ตัวอย่างโค้ดต่อไปนี้จะดึงข้อมูลรายการสถานที่ที่อุปกรณ์มีแนวโน้มที่จะอยู่มากที่สุด และบันทึกชื่อและความเป็นไปได้ของสถานที่แต่ละแห่ง
Swift
// Specify the place data types to return. let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))! placesClient?.findPlaceLikelihoodsFromCurrentLocation(withPlaceFields: fields, callback: { (placeLikelihoodList: Array<GMSPlaceLikelihood>?, error: Error?) in if let error = error { print("An error occurred: \(error.localizedDescription)") return } if let placeLikelihoodList = placeLikelihoodList { for likelihood in placeLikelihoodList { let place = likelihood.place print("Current Place name \(String(describing: place.name)) at likelihood \(likelihood.likelihood)") print("Current PlaceID \(String(describing: place.placeID))") } } })
Objective-C
// Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID); [_placesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:fields callback:^(NSArray<GMSPlaceLikelihood *> * _Nullable likelihoods, NSError * _Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } if (likelihoods != nil) { for (GMSPlaceLikelihood *likelihood in likelihoods) { GMSPlace *place = likelihood.place; NSLog(@"Current place name: %@", place.name); NSLog(@"Place ID: %@", place.placeID); } } }];
หมายเหตุเกี่ยวกับค่าความเป็นไปได้
- ความเป็นไปได้จะแสดงความน่าจะเป็นที่สัมพันธ์กันของสถานที่ซึ่งตรงกันมากที่สุดภายในรายการสถานที่ที่แสดงผลสำหรับคำขอเดียว คุณไม่สามารถเปรียบเทียบความเป็นไปได้ในคำขอต่างๆ
- ค่าของความเป็นไปได้จะอยู่ระหว่าง 0 ถึง 1.0
- ผลรวมของความน่าจะเป็นในอาร์เรย์ที่แสดงผลของออบเจ็กต์
GMSPlaceLikelihoodจะน้อยกว่าหรือเท่ากับ 1.0 เสมอ โปรดทราบว่าผลรวมไม่จำเป็นต้องเป็น 1.0
ตัวอย่างเช่น หากต้องการแสดงความน่าจะเป็น 55% ว่าสถานที่ที่ถูกต้องคือสถานที่ A และความน่าจะเป็น 35% ว่าเป็นสถานที่ B อาร์เรย์ความน่าจะเป็นจะมีสมาชิก 2 รายการ ได้แก่ สถานที่ A ที่มีความน่าจะเป็น 0.55 และสถานที่ B ที่มีความน่าจะเป็น 0.35
การแสดงการระบุแหล่งที่มาในแอป
เมื่อแอปแสดงข้อมูลที่ได้จาก GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: แอปจะต้องแสดงการระบุแหล่งที่มาด้วย อ่านข้อมูลเพิ่มเติมเกี่ยวกับการระบุแหล่งที่มา