สถานที่ปัจจุบัน

เลือกแพลตฟอร์ม: Android iOS

เมื่อใช้ Places SDK สําหรับ iOS คุณจะค้นพบตําแหน่งที่อุปกรณ์อยู่ในปัจจุบันได้ กล่าวคือ สถานที่ที่ตำแหน่งที่รายงานในปัจจุบันของอุปกรณ์ ตัวอย่างสถานที่ ได้แก่ ธุรกิจในพื้นที่ จุดที่น่าสนใจ และสถานที่ตั้งทางภูมิศาสตร์

  1. ขอสิทธิ์เข้าถึงตำแหน่ง
  2. ขีดจำกัดการใช้งาน
  3. รับตำแหน่งปัจจุบัน
  4. แสดงการระบุแหล่งที่มาในแอป

การขอสิทธิ์เข้าถึงตำแหน่ง

หากแอปใช้ GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: แอปจะต้องขอสิทธิ์เพื่อใช้บริการตำแหน่ง เพิ่มคีย์ NSLocationWhenInUseUsageDescription ลงในไฟล์ Info.plist เพื่อกำหนดสตริงที่จะแจ้งให้ผู้ใช้ทราบถึงเหตุผลที่คุณต้องการบริการตำแหน่ง เช่น

<key>NSLocationWhenInUseUsageDescription</key>
<string>Show your location on the map</string>

หากต้องการโทร findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: เมื่อแอปทำงานอยู่เบื้องหลังโดยไม่แสดงกล่องโต้ตอบการยืนยัน ให้ทำตามขั้นตอนต่อไปนี้ก่อนโทร

  1. เพิ่มคีย์ NSLocationAlwaysUsageDescription ลงในไฟล์ Info.plist
  2. เรียกใช้ requestAlwaysAuthorization ในอินสแตนซ์ใดก็ได้ของ CLLocationManager ก่อนเรียกใช้เมธอด

ขอสิทธิ์จาก CLLocationManager ดังนี้

Swift

    locationManager.requestAlwaysAuthorization()
    

Objective-C

    [self.locationManager requestAlwaysAuthorization];
    

การรับตำแหน่งปัจจุบัน

หากต้องการค้นหาธุรกิจในพื้นที่หรือสถานที่อื่นๆ ที่อุปกรณ์อยู่ ให้โทรไปที่ GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: ใส่พารามิเตอร์ต่อไปนี้

  • GMSPlaceField อย่างน้อย 1 รายการ ซึ่งระบุประเภทข้อมูลที่จะแสดงผล หากคุณละเว้นพารามิเตอร์นี้ ระบบจะแสดงผลช่องทั้งหมดที่เป็นไปได้และจะเรียกเก็บเงินจากคุณตามนั้น วิธีการนี้ใช้กับคำขอรายละเอียดสถานที่เท่านั้น
  • เมธอด Callback เพื่อจัดการผลลัพธ์

ช่องต่างๆ สอดคล้องกับผลการค้นหาของ Place Search และแบ่งออกเป็น 3 หมวดหมู่การเรียกเก็บเงิน ได้แก่ ข้อมูลพื้นฐาน ข้อมูลติดต่อ และบรรยากาศ ระบบจะเรียกเก็บเงินสำหรับช่องพื้นฐานในราคาฐานและไม่มีค่าใช้จ่ายเพิ่มเติม ระบบจะเรียกเก็บเงินสำหรับฟิลด์รายชื่อติดต่อและบรรยากาศในอัตราที่สูงขึ้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีเรียกเก็บเงินคำขอข้อมูล Place โปรดดูการใช้งานและการเรียกเก็บเงิน

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% ที่สถานที่ที่ถูกต้องคือสถานที่ ก และมีความน่าจะเป็น 35% ที่สถานที่ที่ถูกต้องคือสถานที่ ข อาร์เรย์ความน่าจะเป็นจะมีสมาชิก 2 คน ได้แก่ สถานที่ ก ที่มีความน่าจะเป็น 0.55 และสถานที่ ข ที่มีความน่าจะเป็น 0.35

การแสดงการระบุแหล่งที่มาในแอป

เมื่อแอปแสดงข้อมูลที่ได้จาก GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: แอปจะต้องแสดงการระบุแหล่งที่มาด้วย อ่านข้อมูลเพิ่มเติมเกี่ยวกับการระบุแหล่งที่มา