AndroidでRealmを使ってみた〜お気に入り機能の実装(其の五)〜

今回はRealmから抽出したデータを並び替えする処理をしてみたいと思います。 前々回で抽出したデータを並び替えたいと思います。 完成した後の画面がこちらです。 こちらはGoogleMapsを利用して、電源の使えるカフェを地図上に表示させるアプリで、 並び替えは「現在地から近い順」にしています。 なお、Realmに並び替えの処理が存在するのですが、 今回紹介させていただく方法は別の方法ですのでご了承ください。。。 並び替えに必要なデータは
  • 現在地の緯度・経度
  • 各データの緯度・経度
になります。 ※現在地の緯度・経度の取得は本内容とは直接関係ないので、割愛致します。

「現在地から近い順」に並び替える手順

  1. 現在地から緯度・経度を取得
  2. Realmに登録されているデータから緯度・経度を取得
  3. 上記の1と2のデータから距離を算出
  4. 距離を含む各データをArrayListに格納
  5. ArrayListのデータを距離が近い方から並び替える
  6. 並び替えたArrayListをListViewで表示
といった流れで処理させていきます。

1.現在地から緯度・経度を取得

現在地の緯度・経度は取得できているものとします。

2.Realmに登録されているデータから緯度・経度を取得
3.距離を算出
4.距離を含む各データをArrayListに格納

それぞれの電源の使えるカフェのデータには緯度・経度があり、それらはRealmに登録されているので取得していきます。 距離の求め方は中学生?の時にやった三角関数を用いれば算出できますね!! a:緯度 b:経度 c:距離 となります。

5.ArrayListのデータを距離が近い方から並び替える

Collectionsクラスのsortメソッドを利用して並び替えをおこないます。

6.並び替えたArrayListをListViewで表示

最後にListViewに設定すれば、「現在地から近い順」で表示されます!! もっといい方法があったら教えていただけるとうれしいです。。。汗 今回の記事で「AndroidでRealmを使ってみた」を終わりたいと思います!! 今回のRealmを利用したアプリがこちらになるので、よければダウンロードしてみてください!!

Usami Go

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です