Current Place

プラットフォームを選択: Android iOS

Places SDK for iOS を使用すると 確認できます。つまり、デバイスの 現在地が表示されます場所の例としては、ローカル ビジネス、 簡単に把握できます

  1. 位置情報の承認をリクエストする
  2. 使用量上限
  3. 現在地を取得する
  4. アプリに帰属情報を表示する

位置情報の承認をリクエストする

アプリで <ph type="x-smartling-placeholder"></ph> GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:, アプリが位置情報サービスを使用する権限をリクエストする必要があります。追加 Info.plist への NSLocationWhenInUseUsageDescription キー 場所を指定する理由を示す文字列を定義します。 提供します。例:

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

必要に応じて <ph type="x-smartling-placeholder"></ph> findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:: アプリがバックグラウンドで動作していて、確認ダイアログをトリガーせずに、 次の手順を行ってください。

  1. NSLocationAlwaysUsageDescription キーを Info.plist ファイルに追加します。
  2. CLLocationManager の任意のインスタンスで requestAlwaysAuthorization を呼び出す メソッドを呼び出せます

次のように CLLocationManager から承認をリクエストします。

Swift

    locationManager.requestAlwaysAuthorization()
    

Objective-C

    [self.locationManager requestAlwaysAuthorization];
    

現在地を取得する

デバイスが現在設置されているローカル ビジネスや場所を探すため 特定、発信 GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:。含める 次のパラメータを指定します。

  • データ型を指定する 1 つ以上の GMSPlaceField 返されます。このパラメータを省略すると、指定可能なフィールドがすべて返され、 状況に応じて課金されます。これは Place Details リクエストにのみ適用されます。
  • 結果を処理するためのコールバック メソッド。

フィールドは Place Search の結果に対応しており、次の 3 つの請求カテゴリに分けられます。 Basic、Contact、Atmosphere です。基本フィールドは基本レートで課金され、追加の費用は発生しません 料金。Contact フィールドと Atmosphere フィールドはより高いレートで課金されます。詳細情報 プレイス データ リクエストの課金の仕組みについて詳しくは、 使用量と請求額

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

Likelihood 値について:

  • 可能性は相対確率を 返された場所のリストの中で、最も一致する場所を示す 単一リクエスト。異なるリクエスト間で可能性を比較することはできません。
  • Likelihood の値は、0~1.0 です。
  • 返された配列内の可能性の合計は、 GMSPlaceLikelihood 常に 1.0 以下になります。なお、合計は 必ず 1.0 になります。

たとえば、55% の確率で正しい場所が場所 A であることを表す場合、 35% の確率で場所 B である場合、Likelihood 配列には 2 つのメンバーがあります。 場所 A の確率は 0.55、 場所 B の確率は 0.35 です。

アプリに帰属情報を表示する

以下から取得した情報をアプリが表示するタイミング GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:: アプリ 帰属表示も必要です詳細を見る: アトリビューション