https://github.com/helleb0re/cpp-transport-catalogue
Транспортный справочник
https://github.com/helleb0re/cpp-transport-catalogue
cpp cpp17 graph-algorithms protobuf
Last synced: 12 months ago
JSON representation
Транспортный справочник
- Host: GitHub
- URL: https://github.com/helleb0re/cpp-transport-catalogue
- Owner: helleb0re
- Created: 2023-02-04T17:48:51.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-06-18T16:20:30.000Z (about 3 years ago)
- Last Synced: 2025-02-24T16:52:47.954Z (over 1 year ago)
- Topics: cpp, cpp17, graph-algorithms, protobuf
- Language: C++
- Homepage:
- Size: 71.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# **Транспортный каталог**
Проект траспортного каталога, который позволяет создать базу данных общественного транспорта, визуализировать маршруты в формате SVG и найти кратчайший путь между остановками.
В проекте используются следующие технологии:
- JSON - формат взаимодействия с сервером
- Protobuf - хранение данных БД в сериализованном виде
## **Использование**
- Запрос на добавление данных в БД
```json
"base_requests": [
// добавление информации о маршруте
{
"type": "Bus",
"name": "134",
"stops": ["Stop-1", "Stop-2"],
"is_roundtrip": false
},
// добавление информации об остановках
{
"type": "Stop",
"name": "Stop-1",
"latitude": 34.325467,
"longitude": 45.351613,
"road_distances": {"Stop-2": 1500}
},
{
"type": "Stop",
"name": "Stop-2",
"latitude": 36.325467,
"longitude": 45.121613,
"road_distances": {"Stop-1": 1500}
}
]
```
- Запрос на получение данных из БД
```json
"stat_requests": [
// получение карты в SVG формате
{ "id": 1, "type": "Map" },
// получение информации об остановке
{ "id": 2, "type": "Stop", "name": "Stop-1" },
// получение информации о маршруте
{ "id": 3, "type": "Bus", "name": "134" }
]
```
- Ответ БД на запросы
```json
[
// карта в SVG формате
{
"map": "\n\n\n134\n134\n134\n134\n\n\nStop-1\nStop-1\nStop-2\nStop-2\n",
"request_id": 1
},
// Информация об остановке Stop-1
{
"buses": [
"134"
],
"request_id": 2
},
// Информация о маршруте 134
{
"curvature": 0.00671543,
"request_id": 3,
"route_length": 3000,
"stop_count": 3,
"unique_stop_count": 2
}
]
```
- Изображение карты

## **Зависимости**
1. [С++17](https://en.cppreference.com/w/cpp/17)
2. [GCC(MinGW-w64)](https://www.mingw-w64.org/) 11+ version requires
3. [CMake](https://cmake.org) 3.8 version requires
4. [Protobuf](https://protobuf.dev/) use proto3