คุณจะค้นหาสถานที่ที่อุปกรณ์ตั้งอยู่ได้ด้วย 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 รายการโดยระบุประเภทข้อมูลที่จะแสดง หากคุณไม่ใส่พารามิเตอร์นี้ ระบบจะแสดงช่องที่เป็นไปได้ทั้งหมดและระบบจะเรียกเก็บเงินจากคุณตามนั้น ข้อกําหนดนี้มีผลกับคําขอรายละเอียดสถานที่เท่านั้น- วิธีเรียกกลับเพื่อจัดการผลลัพธ์
ช่องจะสอดคล้องกับผลการค้นหาสถานที่ และแบ่งออกเป็น 3 หมวดหมู่การเรียกเก็บเงิน ได้แก่ พื้นฐาน ข้อมูลติดต่อ และบรรยากาศ ระบบจะเรียกเก็บเงินในช่องพื้นฐานตามราคาฐาน และจะไม่มีค่าใช้จ่ายเพิ่มเติม ระบบจะเรียกเก็บเงินสําหรับช่องรายชื่อติดต่อและบรรยากาศในอัตราที่สูงกว่า ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการเรียกเก็บเงินสําหรับคําขอข้อมูลสถานที่ได้ที่การใช้งานและการเรียกเก็บเงิน
API จะเรียกเมธอดเรียกกลับที่ระบุ โดยแสดงอาร์เรย์ของออบเจ็กต์ 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); } } }];
หมายเหตุเกี่ยวกับค่าความน่าจะเป็น
- ความน่าจะเป็นให้ความน่าจะเป็นสัมพัทธ์ของสถานที่ซึ่งตรงกับคําแนะนํามากที่สุดในรายการสถานที่ที่ส่งคืนสําหรับคําขอ 1 รายการ คุณจะเปรียบเทียบความเป็นไปได้ในคําขอต่างๆ ไม่ได้
- ค่าแนวโน้มจะอยู่ระหว่าง 0 ถึง 1.0
- ผลรวมของแนวโน้มในอาร์เรย์ออบเจ็กต์
GMSPlaceLikelihood
ที่แสดงผลมักจะน้อยกว่าหรือเท่ากับ 1.0 เสมอ โปรดทราบว่าผลรวมไม่ใช่ 1.0
ตัวอย่างเช่น เพื่อแสดงความน่าจะเป็น 55% ว่าสถานที่ที่ถูกต้องคือสถานที่ ก และ 35% ของสถานที่ที่ ข มีความเป็นไปได้ที่ อาร์เรย์ ข สมาชิก 2 รายคือสถานที่ ก มีความเป็นไปได้ 0.55 และ สถานที่ ข มีความเป็นไปได้ 0.35
การแสดงการระบุแหล่งที่มาในแอป
เมื่อแอปแสดงข้อมูลที่ได้มาจาก GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
แอปต้องแสดงการระบุแหล่งที่มาด้วย อ่านเพิ่มเติมเกี่ยวกับ
การระบุแหล่งที่มา