コアの場所 - フォールバック、場所のキャッシュ、および代替手段

StackOverflow https://stackoverflow.com/questions/2564835

  •  23-09-2019
  •  | 
  •  

質問

コアの場所についていくつか質問があります。

1) アプリがコア位置を使用する許可をユーザーが拒否した場合、または何らかの理由でコア位置が利用できない場合、フォールバックはありますか?(デバイスのロケールなど?)

2) 次回のためにデバイスの位置をキャッシュできますか?Core Location 自体がこれを行いますか?

3)春の半ばの季節にユーザーの地域の日没時刻が本当に必要であり、デバイスの緯度と経度を取得したら、それを行う機能があります。おそらく、ロケールに基づいて時間を推測することができますか?(例:米国では午後 7 時頃を想定します。)

編集:

私は実際にアプリのユーザーエリアの日没を計算しようとしています。地図とは関係ありません。次の一連のイベントを検討しています。

  • コア ロケーションの可用性を確認します。「はい」の場合は、それを使用し、NSUserPreferences に保存します。Core Location が利用できない場合は、フォールバックに進みます。
  • 保存されている場所を確認します。保管されている場合は、使用してください。そうでない場合は、続けてください...
  • ユーザーが選択した時間を確認します。
役に立ちましたか?

解決

ユーザはCoreLocationを使用して許可しないか、権限が与えられた場合にはCoreLocationが利用できない場合は厳密に言えば、

1)は、緯度、経度ペアとしてユーザの位置を取得する他の代替はありません。ロケールを使用すると、すべての場合には動作しない場合があります。まず、それはあなたにあまりにも遠く現実からかもしれ近似値が得られます。しかし、それはこの近似は、アプリのOKであるかどうかを判断するのはあなた次第です。また、自分たちの国に関連する1つからロケール異なるを使用して、いくつかのユーザーがあります。そして、あなたは海外旅行の人は、日付/時間ごとに時間を調整するという保証はありません。

2)コア場所はデフォルトではGPSユニットから取得最後の位置をキャッシュします。しかし、海外旅行の人々のために、このキャッシュされた場所は、(たとえわずか数マイル離れた旅行の人々のために)確かに間違っているだろう、と一般的に、あなたはキャッシュされた値を破棄し、ユーザーを再度たびにローカライズする必要があります。私は人々が自分たちの国内を移動するために、これは(通常は)大きな問題を作成しないことを理解しています。イタリア内の移動には時間が変更されませんが、米国の上を移動すると、3時間までの時間を変更することがあります。しかし、それはただ国によって異なります。

3)私は、コアの場所を使用してみてくださいすることをお勧めして、問題が発生した場合には、単純に(街はあなたの目的のために十分でなければなりません)入力に彼/彼女の現地時間や場所をユーザーに求めるだろう。あなたがユーザーの位置を求めるために選択した場合は、対応する緯度/経度のペアを取得することができますが、これは働いて、ネットワーク接続が必要になります。

他のヒント

CLLocationManagerのためのオンラインドキュメントから

2):

  

は、ロケーションサービスは、キャッシュされた情報を返す、できるだけ速やかに初期位置に戻るとき利用できる。

あなたはそれがキャッシュされた値であるかどうかを確認するためにCLLocationのタイムスタンプを確認することができます。

3)あなたはそのユーザーが移動し、速やかにそのロケールをリセットしないことを覚えて、最初のTZ近似のためのロケールを使用することを決定しない場合。あなたが現在TZオブジェクトを取得することができます:

[NSTimeZone localTimeZone]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top