Пользовательский размер маркера в Картах Google с использованием Flutter: методы и примеры

Чтобы настроить размер маркера в Картах Google с помощью Flutter, вы можете использовать следующие методы:

Метод 1. Использование плагина Flutter для Google Maps

  1. Добавьте зависимость google_maps_flutter в файл pubspec.yaml.
  2. Импортируйте необходимые пакеты в файл Dart:
    import 'package:google_maps_flutter/google_maps_flutter.dart';
    import 'package:flutter/services.dart' show rootBundle;
  3. Создайте собственный BitmapDescriptor с указанной шириной и высотой:
    BitmapDescriptor customMarker = await BitmapDescriptor.fromAssetImage(
     ImageConfiguration(size: Size(48, 48)), // Set the desired width and height
     'assets/custom_marker.png', // Replace with your custom marker image
    );
  4. Установите собственный маркер в виджете GoogleMap:
    GoogleMap(
     markers: {
       Marker(
         markerId: MarkerId('customMarker'),
         position: LatLng(37.4219999, -122.0840575),
         icon: customMarker,
       ),
     },
     // Other properties
    )

Метод 2: использование плагина Flutter Map с Картами Google

  1. Добавьте зависимости flutter_map и flutter_map_marker_cluster в файл pubspec.yaml.
  2. Импортируйте необходимые пакеты в файл Dart:
    import 'package:flutter_map/flutter_map.dart';
    import 'package:flutter_map_marker_cluster/flutter_map_marker_cluster.dart';
    import 'package:latlong2/latlong.dart';
  3. Создайте собственный маркер заданной ширины и высоты:
    var customMarker = Marker(
     point: LatLng(37.4219999, -122.0840575),
     builder: (ctx) => Container(
       width: 48, // Set the desired width
       height: 48, // Set the desired height
       child: Image.asset('assets/custom_marker.png'), // Replace with your custom marker image
     ),
    );
  4. Добавьте собственный маркер в виджет FlutterMap:
    FlutterMap(
     options: MapOptions(
       // Set other options
     ),
     layers: [
       MarkerClusterLayerOptions(
         markers: [customMarker],
         // Other options
       ),
     ],
    )