🌊

【2024最新】google_maps_flutterで画像からピンを作成する

2024/10/05に公開

はじめに

google_maps_flutterパッケージの2.7.0から画像からピンを作成する方法が変更されましたので、ご紹介したいと思います。

Adds support for BitmapDescriptor classes AssetMapBitmap and BytesMapBitmap.
Updates minimum supported SDK version to Flutter 3.22/Dart 3.4.

https://pub.dev/packages/google_maps_flutter/changelog

以前まで

めちゃめちゃ冗長でした。。。

final pin = BitmapDescriptor.bytes(
        await getBytesFromAsset(Assets.images.pin.path, 30));


 Future<Uint8List> getBytesFromAsset(String path, int width) async {
    ByteData data = await rootBundle.load(path);
    ui.Codec codec = await ui.instantiateImageCodec(data.buffer.asUint8List(),
        targetWidth: width);
    ui.FrameInfo fi = await codec.getNextFrame();
    final image = await fi.image.toByteData(format: ui.ImageByteFormat.png);

    return image!.buffer.asUint8List();
  }

変更後

以前より簡素に!
ImageConfigurationクラスでもろもろの設定ができます。便利ですね。

 final pin = await BitmapDescriptor.asset(
        const ImageConfiguration(size: Size(25, 30)),Assets.images.pin.path);

Discussion