Как использовать маркеры SVG в плагине google_maps_flutter Flutter? - PullRequest
1 голос
/ 05 июня 2019

Я хочу разместить маркеры, используя изображения .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 версия библиотеки.

...