Эйч
Эйч
  • Эйч Плюс
  • Все менторы
Задачи/Flutter-разработчик/Функция для анимированного отображения автомобилей на карте

Функция для анимированного отображения автомобилей на карте

Условие задачи

<p>Требуется реализовать метод <code>displayCars</code>, который отвечает за визуализацию машин на карте. Метод получает массив объектов <code>Car</code>. Каждый объект <code>Car</code> содержит уникальный идентификатор, координаты и угол поворота. Необходимо:</p> <ul> <li>добавить новые автомобили, которых ещё нет на карте;</li> <li>переместить уже отображённые машины к их новым координатам с плавной анимацией (для этого используется вызов <code>updatePlacemark</code>);</li> <li>удалить с карты те автомобили, которые присутствуют в текущем наборе маркеров, но отсутствуют в полученном списке.</li> </ul> <p>Никакой «грубой» реализации без анимации не допускается – нельзя просто удалить все маркеры и заново их добавить.</p> <pre><code class="language-dart">class MapController { // можно дописать fields если необходимо final MapPlugin plugin;

MapController(this.plugin);

void displayCars(List<Car> cars) { /// Необходимо написать функцию анимированного движения машинок по карте. /// Анимированное перемещение осуществляется вызовом updatePlacemark /// Наивное решение без анимации — удалить все ранее добавленные машинки и отобразить новые. }

// считаем, что функция реализована Geometry _createGeometry(Car car) {/.../} }

typedef MapPlacemarkId = int;

abstract class MapPlugin { // считаем, что функция реализована MapPlacemarkId addPlacemark(Geometry geometry);

// считаем, что функция реализована void removePlacemark(MapPlacemarkId placemark);

// считаем, что функция реализована void updatePlacemark(MapPlacemarkId placemark, Geometry geometry); }

typedef CarId = String;

class Car { final CarId id;

// getters [coordinate.x], [coordinate.y] final math.Point<double> coordinate; final double course;

const Car({ required this.id, required this.coordinate, required this.course, }); }

class Geometry { final double lat; final double lon; final double course; final String image;

const Geometry({ required this.lat, required this.lon, required this.course, required this.image, }); } </code></pre>

Компании, где дают эту задачу

ЯндексЯндекс

Профессия

Flutter-разработчик

Сопроводим до оффера

Умножим шансы на каждом этапе поиска и поможем получить выгодный оффер

Узнать больше

Сервис развития карьеры

Контактыteam@h.careers@hcareers
TelegramVKYouTubeLinkedIn
Сервисы
AI поиск работы newПоиск вакансий newПоиск компаний newКонструктор резюме newВопросы с собеседований newЗадачи с собеседований newГайды к собеседованиям newПроверятор резюме newГенератор сопроводительных new
Поиски себя
Войти в ITКарьерная стратегияПовысить доходПрофориентация
Работа в России
Сопровождение до оффера Найти работу в РоссииРевью портфолиоРевью резюмеТестовое собеседование
Работа за рубежом
Найти работу за границейПомощь в оформлении LinkedInРевью резюме на английскомТестовое собеседование на английском
Навыки
Личный брендОценка навыковРазвитие навыков и компетенций
Поддержка
ВыгораниеОтношения с коллективомОтношения с руководителемСиндром самозванцаСложное увольнение
Для бизнеса
Аудит процессов компанииВыступление на внутреннем мероприятии компанииКонсалтинг бизнеса
Профессии
HRАдминистрированиеАналитикаДизайнИнформационная безопасностьИскусственный интеллектИсследованияКонсалтингКонтентМаркетингМенеджментНаука и образованиеОфисПоддержкаПредпринимательство
Компания
С чем помогаемОтзывы Вопросы и ответыСертификатыВебинарыСтать ментором

Услуги оказывает ООО «Эйч Карьера»
ИНН 9710095807 ОГРН 1227700077340
Адрес: 127006, г. Москва, Старопименовский пер., д. 18, стр. 2, помещ./ком./этаж I/19/2
Платформа принадлежит ООО «Эйч Карьера»

Copyright © 2020-2025 Сервис развития карьеры Эйч. Все права защищены.

Политика конфиденциальностиПользовательское соглашениеОферта