Địa điểm hiện tại

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Chọn nền tảng: Android iOS

Bằng cách sử dụng SDK địa điểm dành cho iOS, bạn có thể khám phá địa điểm hiện tại của thiết bị. Có nghĩa là địa điểm mà bạn báo cáo tại vị trí hiện được báo cáo trên thiết bị. Ví dụ về các địa điểm bao gồm doanh nghiệp địa phương, địa điểm yêu thích và vị trí địa lý.

  1. Yêu cầu uỷ quyền vị trí
  2. Hạn mức sử dụng
  3. Lấy thông tin vị trí hiện tại
  4. Hiển thị mô hình phân bổ trong ứng dụng của bạn

Yêu cầu uỷ quyền vị trí

Nếu ứng dụng của bạn sử dụng GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:, thì ứng dụng đó phải yêu cầu quyền sử dụng dịch vụ vị trí. Thêm khoá NSLocationWhenInUseUsageDescription vào tệp Info.plist để xác định chuỗi sẽ thông báo cho người dùng lý do bạn cần các dịch vụ vị trí. Ví dụ:

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

Nếu bạn muốn gọi findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: khi ứng dụng chạy trong nền mà không kích hoạt hộp thoại xác nhận, hãy thực hiện các bước sau trước khi thực hiện cuộc gọi:

  1. Thêm khoá NSLocationAlwaysUsageDescription vào tệp Info.plist.
  2. Gọi requestAlwaysAuthorization trên bất kỳ thực thể nào của CLLocationManager trước khi gọi phương thức này.

Yêu cầu uỷ quyền từ CLLocationManager như sau:

Swift

    locationManager.requestAlwaysAuthorization()
    

Objective-C

    [self.locationManager requestAlwaysAuthorization];
    

Đang xác định vị trí hiện tại

Để tìm doanh nghiệp địa phương hoặc địa điểm khác mà bạn hiện đang đặt thiết bị, hãy gọi GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:. Bao gồm các thông số sau:

  • Một hoặc nhiều GMSPlaceField, xác định loại dữ liệu cần trả về. Nếu bạn bỏ qua thông số này, TẤT CẢ các trường có thể sẽ được trả về và bạn sẽ được lập hóa đơn tương ứng. Điều này chỉ áp dụng cho các yêu cầu Thông tin chi tiết về địa điểm.
  • Phương thức gọi lại để xử lý kết quả.

Các trường tương ứng với kết quả trên Tìm kiếm địa điểm và được chia thành ba danh mục thanh toán: Cơ bản, Liên hệ và Bầu không khí. Các trường cơ bản được tính phí theo mức cơ bản và không tính thêm phí. Địa chỉ liên hệ và trường Khí quyển được tính phí cao hơn. Để biết thêm thông tin về cách tính phí các yêu cầu dữ liệu về Địa điểm, hãy xem phần Mức sử dụng và thanh toán.

API gọi phương thức gọi lại đã chỉ định, trả về một loạt các đối tượng GMSPlaceLikelihood.

Mỗi đối tượng GMSPlaceLikelihood biểu thị một địa điểm. Đối với mỗi địa điểm, kết quả sẽ bao gồm chỉ báo về khả năng địa điểm đó là chính xác. Giá trị cao hơn nghĩa là xác suất phù hợp hơn cho địa điểm này. Vùng đệm có thể trống hoặc không có địa điểm nào đã biết tương ứng với vị trí của thiết bị.

Mã mẫu sau đây truy xuất danh sách các địa điểm mà thiết bị có nhiều khả năng xuất hiện nhất, đồng thời ghi nhật ký tên và khả năng cho từng địa điểm.

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);
    }
  }
}];

Lưu ý về các giá trị có khả năng xảy ra:

  • Khả năng cung cấp xác suất tương đối của địa điểm là phù hợp nhất trong danh sách địa điểm được trả về cho một yêu cầu. Bạn không thể so sánh khả năng giữa các yêu cầu.
  • Giá trị của khả năng sẽ nằm trong khoảng từ 0 đến 1.0.
  • Tổng xác suất trong một mảng đối tượng GMSPlaceLikelihood được trả về luôn nhỏ hơn hoặc bằng 1,0. Xin lưu ý rằng tổng này không cần thiết là 1,0.

Ví dụ: để thể hiện 55% khả năng là địa điểm chính xác là Địa điểm A, và 35% khả năng là địa điểm đó là Địa điểm B, thì mảng địa điểm có 2 thành viên: Địa điểm A có xác suất là 0,55 và Địa điểm B có xác suất là 0,35.

Hiển thị mô hình phân bổ trong ứng dụng của bạn

Khi ứng dụng của bạn hiển thị thông tin thu được từ GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:, ứng dụng đó cũng phải hiển thị các thông tin ghi nhận sự đóng góp. Đọc thêm về thuộc tính.