Flutter

[Flutter]GoogleMapのマーカーを画像にする方法

Googleマップのマーカーを画像にする方法が分からなくて困ったので、解決方法を記しておきます。

先に簡単に結論を述べておくと、画像をBitmapDescriptorという形式に変換するとマップに表示出来ます。

では、記事に入っていきます、

GoogleMapのマーカーを画像にする方法

本解説では、Googleマップの導入方法などは割愛させていただきます。

というわけで、手順としては以下の通り。

  1. BitmapDescriptor変数を定義
  2. 画像をUint8List形式に変換する関数を用意
  3. Uint8ListをBitmapDescriptorに変換
  4. マーカーに画像をセットする

では、詳しく解説していきます。

BitmapDescriptor変数を定義

まず最初に、BitmapDescriptor変数を定義します。

BitmapDescriptor markerIcon;

画像をUint8List形式に変換する関数を用意

次に、画像をUint8List形式に変換する関数を用意します。

この作業を行わず直接画像をBitmapDescriptor形式へ変換すると画像のサイズの調整が出来ないので不便です。

Uint8ListをBitmapDescriptorに変換する関数を作成

というわけで、次は先ほど作成した関数を利用して画像をUnit8List形式にしてから、BitmapDescriptorへと変換して、最初に作成したBitmapDescriptor変数へと代入を行います。(notifyLisnersは不要なら外して良いです。)

これで準備は完了です。

マーカーに画像をセットする

最後は、マーカーのiconプロパティに先ほど作成したBitmapDescriptor変数を入れるだけです。

先ほどまでの処理をまとめた関数を用意しておき、Googlemapを読み込む前にFutureBuilderなどで読み込むと良い感じで出来上がります。

というわけで、この記事は終わりとなります。

僕の場合、GoogleMapを作成するときにFutureBuilderを使ったら無限ビルドが起こったので、良ければこちらの記事([Flutter]FutureBuilderの無限ビルドを防ぐ方法)も参考に。

[Flutter]FutureBuilderの無限ビルドを防ぐ方法どうもこんにちは。 先日FlutterでFutureBuilderを使っていたら無限にビルドが走るようになっていて困ったので、解決...

COMMENT

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