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