概要
地図を使用したアプリを開発するにあたり、地図ライブラリの選定を行いました。
いくつか選択肢があったので、簡単に調べた内容を残しておきます。
結論を先に書くと、用途によるけど「google_maps_flutter」か「flutter_map」 の2択で、
対応デバイスや、料金、実装済みの機能を考慮して決めることになりそうです。
今回自分の場合、地図のオフライン表示が必要だったため、「flutter_map」を採用することにしました。
(google_maps_flutterでは未実装だったため。)
候補
ざっと調べたところ「google_maps_flutter」「flutter_map」「mapbox_gl」の3つがメジャーな様子。
google_maps_flutter
- 概要
- Flutter公式によるGoogleMapライブラリ
- ピン設定や、現在位置表示 など、基本的な機能は充分揃っていそう
- 新しい機能も順次追加されていっているっぽい
- メリット
- Flutter公式 によるリリース
- 色々安心
- サポート、セキュリティ面 など
- 色々安心
- 資料の多さ
- Flutter公式だけあって、ドキュメント豊富
- Flutter公式 によるリリース
- デメリット
- 有料(になる可能性がある)
- ある程度は無料で使えるが一定数以上のアクセスがある場合は従量課金
- オフライン表示に非対応っぽい
- 有料(になる可能性がある)
flutter_map
- 概要
- JSの地図ライブラリ[Leaflet] のdart実装版
- 表示地図は[OpenStreetMap] と呼ばれるオープンソースの地図
- メリット
- プラグインに対応しており、痒い所に手が届きそう
- 無料(?)
- デメリット
- google_maps_flutter に比べるとドキュメントが少ない
- 特に日本語のドキュメント
- とはいえ、サンプルが充実してるのもあり、普通に使う分には困らなさそう
- google_maps_flutter に比べるとドキュメントが少ない
mapbox_gl
- 概要
- like数多かったので一応見てみたもの
- API利用に会員登録が必須
- 環境問題かもしれないけど、自分の手元だとサンプルが動かないものが多かった
- メリット
- オフラインマップに対応
- デメリット
- 有料(になる可能性がある)
- ある程度は無料で使えるが一定数以上のアクセスがある場合は従量課金
- 情報が少ない
- Android/iOS 間での差異が多いらしい(未確認)
- iOS のみ未対応機能の存在など
- 有料(になる可能性がある)
まとめ
今回はオフライン表示が必要なため、自分は flutter_map を採用することになりました。
特に理由がない限りは、google_maps_flutter 使うのがいいのかな。と個人的には思います。
資料の多さはダントツですし、FLutter公式チームリリースの安心感もありますし。