На самом деле работает только закомментированный код репозитория примера google_maps ... потому что в флаттере SDK есть некоторые изменения в API (ну в настоящее время я в 1.78 + hotfix4)
Итак,это та же функция, что и ответ kapil с некоторыми изменениями в API, вам нужно всего лишь изменить строку 'assets / red_square.png' для вашего маршрута изображения.
Future<BitmapDescriptor> _getAssetIcon(BuildContext context) async {
final Completer<BitmapDescriptor> bitmapIcon =
Completer<BitmapDescriptor>();
final ImageConfiguration config = createLocalImageConfiguration(context);
const AssetImage('assets/red_square.png')
.resolve(config)
.addListener(ImageStreamListener((ImageInfo image, bool sync) async {
final ByteData bytes =
await image.image.toByteData(format: ImageByteFormat.png);
final BitmapDescriptor bitmap =
BitmapDescriptor.fromBytes(bytes.buffer.asUint8List());
bitmapIcon.complete(bitmap);
}));
return await bitmapIcon.future;
}
Пробали, если вы создаете переменную BitMapDescriptorВам нужно только вызвать эту функцию в первый раз, прежде чем добавлять маркеры, но не забывайте «ждать».
Также рекомендуется поместить еще 2 изображения большего размера в папки с именами (2.0x и 3.0x)Вы можете увидеть разрешение в примере изображений
Не забудьте раскомментировать "/ assets" в вашем pubspec.yaml