Skip to content

This app is a changeable database of routes, with the subsequent search for the optimal route from the database and with visualization of the route

License

Notifications You must be signed in to change notification settings

Gugush284/transport_map

Repository files navigation

Transport map

Описание

Проект подготовлен в рамках курсового проекта по компьютерным технологиям 4 семестра МФТИ.
Transport map - это приложение формирующее базу данных, основываясь на данных, полученных с "Портала открытых данных правительства Москвы". Далее с помощью algorithm формируется новая база данных, где находятся оптимальные маршруты, соединяющие любые две пары остановок. Далее подключается server, где и происходит визуализация карты.

Функционал

Пользователю предоставляются два окна, куда он может вбивать назание остановок, между которыми ему требуется совершить свой путь. Если у пользоателя возникла проблема с названием остановок, то окна подскажут ему решение. Так же пользователь может свободно перемещаться по карте.

При желании можно построить автобусные маршруты для любого другого города, при наличии даных.

Порядок запуска:

  1. Программы в папке parser
  2. alg.py в папке "algorithm"
  3. run.py в папке "server"

Усановка и запуск

Для установки требуется набрать следующую команду в терминале:

 git clone git@github.com:Gugush284/transport_card.git  

Для работы парсера для скачивания данных требуются следующие библиотеки:

  • requests
  • json
  • time
  • math
  • sqlite3

Для того, чтоб запустить parser нужно:

  1. Запустить файл parser_db.py (парсит данные с сайта, записывает их в базу данных)

Для того, чтоб запустить программу, исправляющую databse, нужно:

  1. Запустить файл edit_db.py (программа заменяет имена маршрутов и остановок на их id)
  2. Запустить файл edit_db1.py (программа корректирует столбец Route_Num, проверяя его данные на валидность)
  3. Запустить файл edit_db2.py (программа для вставки обратного пути цепочки остановок для некольцевого маршрута+возможной инверсии обозначений кольцевого маршрута)
  4. Запустить файл edit_db3.py (программа вставляет координаты остановки в координаты маршрута + вставляет обратные координаты для маршрута в обратную сторону)

Для работы алгоритма необходимо: Либо переимееновать базу данных в example.db, либо в коде alg.py и read_db заменить упоминания файла example.db при использовании библиотеки os на нужное Вам название

Для корректной работы сервера необходимо установить следующие библиотеки:

  • os
  • flask
  • flask_wtf
  • sqlite
  • folium
  1. Для того, чтобы запустить сервер, необходимо запустить python скрипт run.py и перейти по ссылке.
  2. На открытой странице небходимо ввести названия первой и последней остановки, и нажать на кнопку отправить чтобы получить маршрут.
  3. Для того, чтобы вернуться на первоначальную страницу, необоходимо нажать на back to map. Шаблоны для URL страниц находятся в директории app/templates.
  4. Search.html отвечает за первоначальную страницу, login.html - за страницу с построеным маршрутом.
  5. Обработка URL запросов и построение маршрута производятся в файле views.py.
  6. Cкрипт init.py инициализирует сервер и импортирует views.py
  7. Для построения маршрута и карты со всеми остановками в скрипте views.py создаются файлы basic_map.html и route_map.html

Ограничения приложения

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

Список известных проблем

  1. Алгоритм Дейкстры в alg.py будет работать быстрее, если заняться распараллеливанием процессов.
  2. Алгоритм дублирует остановки в финальной базе данных. Программа работает и так, но увеличивается время поиска и вес самой базы
  3. База данных требует перестройки: выяснилось, что старый сайт предоставляет несогласованные данные для остановок и маршрута. На перспективу можно построить базу данных самостоятельно, используя другие источники данных

Дальнейшие планы

Проект свернут в силу неактуальности (команда сдала курсовую; появились более интересные проекты)

Инструкци для разработчиков

Находится в репозитории

За алгоритм отвечали Кисляк Полина, Егор Барышников

За парсер и выкачку данных Влад Нестеренко

За сервер Дмитрий Михалун

About

This app is a changeable database of routes, with the subsequent search for the optimal route from the database and with visualization of the route

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •