Я хочу разместить маркеры, используя изображения .svg в качестве значков. Я использую библиотеку google_maps_flutter. Это работало с конвертированными изображениями .png, но я не нашел способа напрямую использовать файлы .svg.
Я пишу здесь после прочтения этой проблемы: Использование SVG-маркеров в google_maps_flutter Плагин Flutter
И пытаетесь использовать метод из AssetImage, как описано в этой теме: Как изменить размер значка маркера Google Map во флаттере?
Я надеялся, что эта новая версия библиотеки поможет решить мою проблему.
Я попытался решить ее с помощью следующего кода:
Класс MapWidget
for (Place place in widget.places) {
place.toMarker(
context,
() => _onPlaceTapped(place),
).then(setState((){
markerSet.add
}));
}
Место занятий
Future<Marker> toMarker(BuildContext context, VoidCallback onTap) async {
return Marker(
markerId: MarkerId(id.toString()),
position: LatLng(lat, lon),
icon: await category.markerIcon(createLocalImageConfiguration(context)),
onTap: onTap,
);
Категория класса
Future<BitmapDescriptor> markerIcon(ImageConfiguration configuration) async {
BitmapDescriptor b;
switch (type) {
case CategoryType.FirstCategory:
b = await BitmapDescriptor.fromAssetImage(configuration, 'assets/markers/marker-first.svg');
break;
case CategoryType.SecondCategory:
b = await BitmapDescriptor.fromAssetImage(configuration, 'assets/markers/marker-second.svg');
break;
default:
b = await BitmapDescriptor.fromAssetImage(configuration, 'assets/markers/marker-third.svg');
break;
}
return b;
}
Путь к изображениям уже добавлен в pubspec.yaml, если вам интересно.
Я ожидал, что красные маркеры Google по умолчанию будут заменены на некоторые пользовательские маркеры (на каждом отдельном маркере должно быть небольшое изображение значка), однако отображаются только маркеры по умолчанию (не по умолчанию в операторе switch, я я говорю о маркерах Google по умолчанию).
Нет сообщения об ошибке при использовании симулятора iOS и google_maps_flutter 0.5.15 + 1 версия библиотеки.