Дипломная работа на тему "ТЮМГУ | Разработка расширяемой платформонезависимой FLUТТER библиотеки для работы с картой для ООО "Интеллектуальная транспортная система""

1
Похожие работы
Работа на тему: Разработка расширяемой платформонезависимой FLUТТER библиотеки для работы с картой для ООО "Интеллектуальная транспортная система"
Оценка: отлично.
Оригинальность работы на момент публикации 50+% на антиплагиат.ру.
Ниже прилагаю все данные для покупки.
https://studentu24.ru/list/suppliers/Anastasiya1---1326

Описание работы

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего образования
«ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
ИНСТИТУТ МАТЕМАТИКИ И КОМПЬЮТЕРНЫХ НАУК
Кафедра программного обеспечения

РЕКОМЕНДОВАНО К ЗАЩИТЕ В ГЭК

ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
бакалаврская работа
РАЗРАБОТКА РАСШИРЯЕМОЙ ПЛАТФОРМОНЕЗАВИСИМОЙ FLUТТER БИБЛИОТЕКИ ДЛЯ РАБОТЫ С КАРТОЙ ДЛЯ ООО "ИНТЕЛЛЕКТУАЛЬНАЯ ТРАНСПОРТНАЯ СИСТЕМА"

02.03.03 Математическое обеспечение и администрирование информационных систем
Профиль «Технологии программирования и анализа больших данных»

Тюмень 2023

ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ 4
ГЛАВА 1. ОБЗОР ПРЕДМЕТНОЙ ОБЛАСТИ 7
1.1 ОБЗОР СУЩЕСТВУЮЩИХ FLUTTER БИБЛИОТЕК ДЛЯ РАБОТЫ С ГИС 7
1.2 ТРЕБОВАНИЯ К РАЗРАБАТЫВАЕМОМУ РЕШЕНИЮ 8
1.3 КАРТОГРАФИЧЕСКИЕ ПРОЕКЦИИ 10
1.3.1 ПОСТАНОВКА ЗАДАЧИ ПРОЕКЦИИ 10
1.3.2 РАВНОПРОМЕЖУТОЧНАЯ ЦИЛИНДРИЧЕСКАЯ ПРОЕКЦИЯ 12
1.3.3 ПРОЕКЦИЯ МЕРКАТОРА 13
1.3.4 ДРУГИЕ ПРОЕКЦИИ 15
1.4 ОПРЕДЕЛЕНИЕ ПРИНАДЛЕЖНОСТИ ТОЧКИ ПРОЕКЦИИ ГЕОГРАФИЧЕСКОМУ ОБЪЕКТУ НА КАРТЕ 16
1.5 ИССЛЕДОВАНИЕ МЕТОДОВ ОПРЕДЕЛЕНИЯ ПРИНАДЛЕЖНОСТИ ТОЧКИ К МНОГОУГОЛЬНИКУ 18
ГЛАВА 2. РЕАЛИЗАЦИЯ РЕШЕНИЯ 25
2.1 РАБОТА С ГЕОГРАФИЧЕСКИМИ ПРОЕКЦИЯМИ 25
2.2 ПОСТРОЕНИЕ АРХИТЕКТУРЫ БИБЛИОТЕКИ 25
2.2.1 СТРУКТУРЫ ДАННЫХ 26
2.2.2 ИСКЛЮЧЕНИЯ 27
2.2.3 ИНТЕРФЕЙСЫ КОМПОНЕНТОВ ОСНОВНОГО МОДУЛЯ 28
2.2.3 ОБЪЕКТЫ КАРТЫ 33
2.2.4 FLUTTER-ВИДЖЕТЫ 35
2.2.5 РЕАЛИЗАЦИЯ КОМПОНЕНТОВ ОСНОВНОГО МОДУЛЯ 37
2.2.6 РЕАЛИЗАЦИЯ ИНСТРУМЕНТОВ ОБРАБОТКИ ВЗАИМОДЕЙСТВИЯ С ОБЪЕКТАМИ КАРТЫ 40
2.3 ПОКРЫТИЕ ТЕСТАМИ 42
2.4 ПРИЛОЖЕНИЕ ДЛЯ ПРОВЕРКИ РЕШЕНИЯ 44
ГЛАВА 3. ИНТЕГРАЦИЯ ПОЛУЧЕННОГО РЕШЕНИЯ 48
3.1 ИНТЕГРАЦИЯ БИБЛИОТЕКИ В ДЕЙСТВУЮЩЕЕ ПРИЛОЖЕНИЕ 48
3.2 РАЗРАБОТКА ПРИЛОЖЕНИЯ С ИСПОЛЬЗОВАНИЕМ РАЗРАБОТАННОЙ БИБЛИОТЕКИ 51
ЗАКЛЮЧЕНИЕ 54
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 55
ПРИЛОЖЕНИЯ 1-8 57

ВВЕДЕНИЕ
В современном мире цифровые карты практически полностью заменили собой аналоговые варианты географической навигации [22]. Повсеместно карты используются как для повседневных задач вроде поиска ближайшего кафе в обед, так и для более важного в экстренных ситуациях быстрого прокладывания пути до нужной точки [19]. Цифровые карты заняли важную роль в жизни людей. Поэтому спрос на разработку приложений, включающих в себя работу с картой, сейчас как никогда высок. Наличие удобного и эффективного решения для построения таких систем просто необходимо.
Для создания визуальной составляющей и составляющей взаимодействия пользователя при разработке геоинформационных систем требуется наличие инструментов, предоставляющих возможность работы с картографическими материалами, геодезическими данными, проекциями геодезических данных на плоскость картографических подложек, различными географическими объектами и их взаимодействием. Большая часть подобных инструментов предоставляется вендором в виде закрытого API, не предоставляющего возможности к замене готовых реализаций [7]. Так же, изменение или использование подобных инструментов может нести за собой юридические сложности, особенно в ситуациях, когда компания-разработчик данного API находится под юрисдикцией другого государства [5], это критически важно при разработке ПО для государственных заказчиков. В таких случаях ситуация может измениться как в процессе разработки, так и в случае интеграции и использования готового продукта, что приведет к большим затратам ресурсов на полную смену инструментов, а в случае глубокой интеграции используемых инструментов, может привести к необходимости полной переработки ПО.
Кроссплатформенные решения имеют множество преимуществ для использования как в процессе разработки, так и для дальнейшей поддержки существующих продуктов: единая кодовая база позволяет сохранять большее количество ресурсов для концентрации на качестве создаваемого продукта, его конечного вида и дальнейшего развития, а для бизнеса важен факт того, что в случае возникновения проблем (не программных, к примеру юридических) с какой-либо из платформ, разработка продукта в целом не остановится, ни одна из команд не окажется в состоянии простоя и продолжится развитие системы.
Одним из таких решений является кроссплатформенный фреймворк Flutter (использующий язык программирования Dart), первая альфа-версия которого вышла 12 мая 2017, а версия 3.0, стабильно поддерживающая весь перечень доступных платформ, таких как Android, iOS, Web, Windows, MacOS, Linux, появилась только 11 мая 2022 года [17]. Фреймворк используется вследствие следующих преимуществ: поддерживается как JIT, так и AOT компиляция, что обеспечивает как быстрое внесение изменений в процессе разработки, так и отличное быстродействие на конечном устройстве, интерфейс пользователя так же пишется на языке Dart и является одним целым с остальным кодом, при разработке не используется других разметок интерфейса, что приводит к общей унификации и простоте восприятия проекта, у Flutter есть полный инструментарий для работы с платформой, на которой он был запущен, так что можно писать зависимый от платформы код в случае необходимости [23]. Из-за относительной новизны инструмента готовых библиотек для решения задач, возникающих при разработке геоинформационных систем, может быть недостаточно.
Существующие на данный момент библиотеки для работы с ГИС на Flutter либо обладают платформозависимыми реализациями [7], что ограничивает кроссплатформенность, либо не предоставляют интерфейс для изменения существующих решений [5]: смена географической подложки, изменение проекции, создание собственных географических объектов, а использование сразу нескольких библиотек карты вводит приложение в еще
большую зависимость, что может сказаться на дальнейшем развитии и поддержке проекта.
Разработка модульной платформонезависимой библиотеки карты может быть полезна для разработчиков геоинформационных систем, использующих Flutter среди своих инструментов, в частности, требование о наличии подобного инструмента есть у ООО “ИТС”.
Целью работы является построение архитектуры платформонезависимой библиотеки карты для Flutter, ее реализация, подготовка готовых реализаций разработанного интерфейса взаимодействия.
Задачи:
1. Поиск и анализ необходимых алгоритмов для работы с географическими объектами.
2. Изучение картографических проекций.
3. Построение архитектуры библиотеки.
4. Программная реализация.
5. Интеграция полученного решения
Для успешной подготовки и защиты выпускной квалификационной работы использовались средства и методы физической культуры и спорта с целью поддержания должного уровня физической подготовленности, обеспечивающую высокую умственную и физической работоспособность. В режим рабочего дня включались различные формы организации занятий физической культурой (физкультпаузы, физкультминутки, занятия избранным видом спорта) с целью профилактики утомления, появления хронических заболеваний и нормализации деятельности различных систем организма.
В рамках подготовки к защите выпускной квалификационной работы автором созданы и поддерживались безопасные условия жизнедеятельности, учитывающие возможность возникновении чрезвычайных ситуаций.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Ананьев Ю. С. Геоинформационные системы: Учебное пособие. – М.: Изд-во ТПУ, 2003. – 69 с.
2. Бронштэн В. А. Планеты и их наблюдение.— 2-е изд., перераб. и доп.— М.: Наука. Главная редакция физико-математической литературы, 1979.— 240 с.
3. Васин С. И., Иванов В. И. Аналитическая геометрия. Учебно- методическое пособие для студентов. М.: – Москва, 2010. – 60 с.
4. ДеМерс М. Н. Географические информационные системы. Основы. – М.: Дата+, 1999. – 478 с.
5. Документация библиотеки google_maps_flutter для Flutter, версии
6. Документация библиотеки Map для Flutter, версии 1.3.0. U
7. Документация библиотеки yandex_mapkit для Flutter, версии 1.1.1.
8. Картографические проекции.
9. Мартин Р. Чистая архитектура. Искусство разработки программного обеспечения. – М.: Издательский дом "Питер", 2018. – 352 с.
10. Мартин Р. Чистый код: создание, анализ и рефакторинг. – М.: Издательский дом "Питер", 2013. – 464 с.
11. Паттерны объектно-ориентированного проектирования / Гамма Э., Хелм Р., Джонсон Р., Влиссидес Д. – М.: Издательский дом «Питер», 2022. – 448 c.
12. Проекция Меркатора. ArcGIS Pro.
13. Равнопромежуточная цилиндрическая проекция. ArcGIS Pro.
14. Томский политехнический университет. Картографические проекции.
15. Шмуллер Д. Освой самостоятельно UML 2 за 24 часа. Практическое руководство. — М.: Вильямс, 2005. — 405 c.
16. Buckett C. Dart in Action. – М.: Manning, 2023. – 424 с.
17. Flutter documentation.
18. Glassner A. S. Graphics Gems. – М.: Academic Press Inc., 1993. – 864 с. 19.Griffin A. Envisioning the future of cartographic research. // International
Journal of Cartography. – 2017. – 8 с.
20. Hormann K., Agathos A. The point in polygon problem for arbitrary polygons.
21. Hughes J., Andries van Dam. Computer Graphics: Principles and Practice.
– М.: Addison-Wesley Professional, 2013. – 1264 с.
22. Katarzyna S.P, Izabela M. G. Falling into a digital world: how are paper and interactive maps used by digital natives and immigrants? // University of Warsaw. - 2020. - №125. – С. 447-472.
23. Windmill E. Flutter in Action. – М.: Manning Publications, 2020. – 368 с.

НЕ НАШЛИ, ЧТО ИСКАЛИ? МОЖЕМ ПОМОЧЬ.

СТАТЬ ЗАКАЗЧИКОМ