文系コボラーが初めてiOSアプリ開発に挑戦し、Web系エンジニアになった日記

文系コボラーがほぼ独学でiOSアプリを作ってみました。 -> iOS/Androidエンジニア -> Web系エンジニアになるまでの日記。

RealmでGMSPolylineを保存する

久しぶりのpostです。

仕事やらプライベートやらが忙しかったという言い訳のもと、更新をサボってました。。。
 
さて、肝心のアプリはそれなりに出来てきていて、
あとはバックグラウンドでの位置情報取得が実装出来れば、
一旦リリースできるかもしれません。
 

RealmでGMSPolylineを保存する

移動ルートをGoogleMapSDKのGMSPolyline で描画しているのですが、それをRealmでローカルに保存して、履歴として表示するようにしています。
 
GMSPolyline 自体はただのlatitudeとlongitudeの集合なので、RealmオブジェクトのサブクラスとしてDouble型を2つ、latitude,longitudeとしてそれぞれ格納しておくクラスをつくり、
それをメインのRealmオブジェクトにList型で定義してあげれば良いです。

 

 

class Record: Object {

    dynamic var seqNo: Int = 0

    let polyLine = List<PolylineArray>()

}

class PolylineArray: Object {

    dynamic var poliLineLatitude: Double = 0

    dynamic var poliLineLongitude: Double = 0

}

 
で、位置情報を取得する度にその時点のlatitude,longitude をオブジェクトにaddする。
 
 
取り出して描画する際は、Realmで取得したオブジェクトに紐付くPolylineArrayを順に取得して、
そのlatitude,longitude をGMSPolylineに設定してあげれば表示出来ます。
 
 
 
Realmで画像とかも保存したいんだけど、できるのかなー。