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

เลือกแพลตฟอร์ม: 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 รายการโดยระบุประเภทข้อมูลที่จะแสดง หากคุณไม่ใส่พารามิเตอร์นี้ ระบบจะแสดงช่องที่เป็นไปได้ทั้งหมดและระบบจะเรียกเก็บเงินจากคุณตามนั้น ข้อกําหนดนี้มีผลกับคําขอรายละเอียดสถานที่เท่านั้น
  • วิธีเรียกกลับเพื่อจัดการผลลัพธ์

ช่องจะสอดคล้องกับผลการค้นหาสถานที่ และแบ่งออกเป็น 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: แอปต้องแสดงการระบุแหล่งที่มาด้วย อ่านเพิ่มเติมเกี่ยวกับ การระบุแหล่งที่มา