Проект представляет из себя систему городской маршрутизации. Программа принимает для считывания и выдает ответы на запросы файл в формате JSON.
- На вход подается указание файла сериализации protobuf(.db), настройки поведения атобусов (ожидание на остановке, скорость автобусов), настройки рисуемой карты, информация остановок и автобусов.
- Запрос на вывод формируется из обязательного указания файла сериализации protobuf(.db) и опционально: название(я) остановок, автобусов, а так же путь между двумя остановками и конструирование карты маршрутов (каждому отдельному объекту запроса должен назначаться идентификатор(id)).
- Вывод запроса выдает информацию о запрошенных остановках и автобусах, а так же маршрута между остановкими (кратчайший) и карту, в формате .svg.
Варианты работы программы лежат в директории Test_Files.
- Запуск программы с аргументом make_base, с входным JSON файлом, для постороения базы:
{
"serialization_settings": {
"file": "transport_catalogue.db"
},
"routing_settings": {
"bus_wait_time": 2,
"bus_velocity": 30
},
"render_settings": {
"width": 1200,
"height": 500,
"padding": 50,
"stop_radius": 5,
"line_width": 14,
"bus_label_font_size": 20,
"bus_label_offset": [
7,
15
],
"stop_label_font_size": 18,
"stop_label_offset": [
7,
-3
],
"underlayer_color": [
255,
255,
255,
0.85
],
"underlayer_width": 3,
"color_palette": [
"green",
[
255,
160,
0
],
"red"
]
},
"base_requests": [
{
"type": "Bus",
"name": "14",
"stops": [
"Улица Лизы Чайкиной",
"Электросети"
],
"is_roundtrip": true
},
{
"type": "Stop",
"name": "Улица Лизы Чайкиной",
"latitude": 43.590317,
"longitude": 39.746833,
"road_distances": {
"Электросети": 4300
}
},
{
"type": "Stop",
"name": "Электросети",
"latitude": 43.598701,
"longitude": 39.730623,
}
]
}
- Запуск программы с аргументом process_requests с входным файлом JSON, для считывания запроса (опцианально можно указать выходной JSON файл (перезапись)):
{
"serialization_settings": {
"file": "transport_catalogue.db"
},
"stat_requests": [
{
"id": 218563507,
"type": "Bus",
"name": "14"
},
{
"id": 508658276,
"type": "Stop",
"name": "Электросети"
},
{
"id": 1964680131,
"type": "Route",
"from": "Улица Лизы Чайкиной",
"to": "Электросети"
},
{
"id": 1359372752,
"type": "Map"
}
]
}
- C++17 (STL)
- GCC 11.2.0
- CMake 3.12.0
- Protobuf-cpp 3.18.1
- Реализовать простой UI
- Добавить маршруты со спутниковых карт