yandex map kit flutter

Использую карту yandex map kit. В приложении при перемещении по карте меняются координаты, и в центр где они определяются нужно добавить маркер. Но я не знаю как это сделать, документации на эту тему не нашел. Кто делал такое уже?!

  @override
  _MapScreenState createState() => _MapScreenState();
}

class _MapScreenState extends State<MapScreen> {
  final mapControllerCompleter = Completer<YandexMapController>();
  AppLatLong? _currentLocation; // Сохранение текущего местоположения

  @override
  void initState() {
    super.initState();
    _initPermission().ignore();
  }



  Future<Uint8List> _rawPlacemarkImage() async { 
    final recorder = PictureRecorder();
    final canvas = Canvas(recorder);
    const size = Size(100, 50);
    final fillPaint = Paint()
      ..color = Colors.blue[100]!
      ..style = PaintingStyle.fill;
    final strokePaint = Paint()
      ..color = Colors.black
      ..style = PaintingStyle.stroke
      ..strokeWidth = 1;
    const radius = 20.0;

    final circleOffset = Offset(size.height / 2, size.width / 2);

    canvas.drawCircle(circleOffset, radius, fillPaint);
    canvas.drawCircle(circleOffset, radius, strokePaint);

    final image = await recorder.endRecording().toImage(size.width.toInt(), size.height.toInt());
    final pngBytes = await image.toByteData(format: ImageByteFormat.png);

    return pngBytes!.buffer.asUint8List();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Текущее местоположение'),
      ),
      body: Column(
        children: [
          Expanded(
            child: YandexMap(
              onMapCreated: (controller) {
                mapControllerCompleter.complete(controller);
              },
              onCameraPositionChanged: (cameraPosition, _, __) {
                _updateLocationFromCameraPosition(cameraPosition.target);
                icon: PlacemarkIcon.single(PlacemarkIconStyle(
                    image: BitmapDescriptor.fromAssetImage('lib/assets/place.png'),
                    rotationType: RotationType.rotate
                ));
              },
            ),
          ),
          Padding(
            padding: const EdgeInsets.all(8.0),
            child: Text(
              _currentLocation != null
                  ? 'Широта: ${_currentLocation!.lat}, Долгота: ${_currentLocation!.long}'
                  : 'Координаты не определены',
              style: TextStyle(fontSize: 16),
            ),
          ),
        ],
      ),
    );
  }

  /// Обновление координат при изменении позиции камеры
  void _updateLocationFromCameraPosition(Point target) {
    setState(() {
      _currentLocation = AppLatLong(lat: target.latitude, long: target.longitude);
    });
  }

  /// Проверка разрешений на доступ к геопозиции пользователя
  Future<void> _initPermission() async {
    if (!await LocationService().checkPermission()) {
      await LocationService().requestPermission();
    }
    await _fetchCurrentLocation();
  }

  /// Получение текущей геопозиции пользователя
  Future<void> _fetchCurrentLocation() async {
    AppLatLong location;
    const defLocation = MoscowLocation();
    try {
      location = await LocationService().getCurrentLocation();
    } catch (_) {
      location = defLocation;
    }
    setState(() {
      _currentLocation = location;
    });
    _moveToCurrentLocation(location);
  }

  /// Метод для показа текущей позиции
  Future<void> _moveToCurrentLocation(AppLatLong appLatLong) async {
    (await mapControllerCompleter.future).moveCamera(
      animation: const MapAnimation(type: MapAnimationType.linear, duration: 1),
      CameraUpdate.newCameraPosition(
        CameraPosition(
          target: Point(
            latitude: appLatLong.lat,
            longitude: appLatLong.long,
          ),
          zoom: 12,
        ),
      ),
    );
  }
}```

Ответы (0 шт):