Курсовая работа "Геоинформационная система"

  1. Разработчики
  2. Задание
  3. Инструкции
  4. Запуск программы через командную строку
  5. Описание работы программы
  6. Заключение

Выполнили:

  • Илья Павлов
  • Анна Овсинская
  • Анатолий Долгих
  • Максим Абраменко

Задание:

Требуется разработать программное приложение с графическим интерфейсом на языке программирования Python с использованием библиотеки PyQt5 для разработки GUI и PeeWee для работы с базой данных.

Минимальный набор требований для получения зачёта следующий:
  1. Реализовать минимальный набора функционала, заданного вариантом;
  2. Уметь объяснить устройство (архитектуру) своей программы, назначение используемых в программе классов и методов, знать их поля и прототипы соответственно;
  3. Подготовить отчёт о выполнении курсового проекта (требования см. ниже);
  4. Подготовить демонстрацию своей программы – база данных должна быть заполнена демонстрационными примерами, рудиментарные элементы спрятаны или отключены.

Этот набор требований обеспечивает оценку в 60 из 100 баллов. Знание и понимание студентом реализованных в программе возможностей оценивается индивидуально от 0 до 20 баллов, при 0 зачёт не ставится. Качество реализации программы оценивается дополнительными от 0 до 20 баллов, которые прибавляются к оценке каждого студента.

Параметр субъективный – может подразумевать, но не ограничивается следующими пунктами:

  1. Развитие функциональных возможностей в дополнение к указанным в задании;
  2. Реализацию функциональных особенностей, касающихся удобства пользования программой;
  3. Проявление творческого подхода к работе в целом.
Порядок получения зачёта следующий:
  1. Требуется разработать программу согласно варианту задания;
  2. Оформить отчёт, который должен содержать титульный лист, оглавление, вариант задания и заключение;
  3. Перечислить и описать в отчёте реализованные возможности;
  4. Прикрепить к отчёту скриншоты с примерами того, как эти возможности работают;
  5. Выслать по почте отчёт и архив с исходным кодом по адресу avtrifonenkov@mephi.ru и договориться о дате и времени защиты проекта;
  6. В условленное время всем одновременно подключиться в конференции, в которой вы продемонстрируете свой проект и будете отвечать на вопросы преподавателя.
Минимальные требования
Таблицы

Маршруты: Название, Точки, Дата создания Точка: Широта, Долгота, Порядковый номер

Интерфейс

Экран «Маршруты»: отображает список маршрутов, их названия, количество точек в каждом, при нажатии на элемент списка происходит переход к экрану «Карта»

Экран «Карта»: отображает карту; на карте метками обозначены координаты, задающие контрольные пункты маршрута, метки соединены прямыми линиями; при нажатии правой мыши по карте запоминаются координаты точки, по которой произошло нажатие, появляется контекстное меню с предложением добавить точку к маршруту; новая точка становится новым концом маршрута

Виджет «Всплывающее описание»: при наведении курсора мыши на метку поверх карты рядом с меткой «всплывает» поле, которые отображает координаты точки, порядковый номер точки, а также содержит кнопку «Удалить точку». При удалении точки порядковые номера оставшихся пересчитываются

Рекомендации к усложнению:

Редактирование списка точек маршрута. Возможность добавления точек в середину маршрута нажатием на соединительную прямую на карте. Корректировка координат точки «перетаскиванием». Расчёт и отображение текущей длины маршрута (пример – функция «линейка» в крупных картографических сервисах).

Инструкция:

Плагины карты по-разному работают на разных операционных системах. В зависимости от ОС необходимо заменить 103 строку файла MyMap.qml: В linux:

 Plugin {
            id: mapPlugin
            name: /*"osm"*/ "mapboxgl"/*, "esri", ...*/
        }

В windows:

 Plugin {
            id: mapPlugin
            name: "esri" /* "mapboxgl", "esri", ...*/
        }

Запуск программы через командную строку:

python main.py interface.qml

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

Запускаем программу через консоль: python main.py interface.qml Открывается экран приложения, с ранее загруженными в базу данных маршрутами:

Вводим новый маршрут и нажимаем кнопку "добавить":

Теперь видим, как этот маршрут отобразился в списке:

Нажимаем на кнопку "карта", чтобы открыть карту с данным маршрутом:

Далее открывается пустая карта (в данном случае пустая):

Ставим точки маршрута, нажимая правой кнопкой мыши. Чтобы листать карту необходимо зажать левую кнопку и двигать карту:

Откроем для примера старый маршрут:

Заключение:

Реализована система хранения маршрутов на языке Python и QML с использованием базы данных, связанной с python через библиотеку peewee.