Используйте свое воображение для следующего визуального представления здания:
- у вас есть здание
- здание имеет этажи
- этажи имеют залы и комнаты
- связь между этажами осуществляется по лестнице и лифту
- на первом этаже есть выходная дверь, которая соединяется с внешней стороной
Как подготовить график для прокладки от одного помещение в другое?
2-этажное здание
- Узлы: снаружи, двери комнаты, лестницы и двери лифта и все узлы вдоль Прихожая: a1 ~ a4 & b1 ~ b4
- Черные края в центре зала,
- Синие края go от середины зала до двери комнаты ,
- Ребра, соединяющие этажи, - это лестница и шахта лифта соответственно
Таблица ребер для маршрутизации может иметь такую информацию:
для (stair_door1, stair_door2) край:
- id = 1
- source = 15 (при условии, что star_door1 имеет идентификатор 15)
- target = 66 (при условии, что star_door2 имеет идентификатор 16)
- cost = 1.5 (подниматься наверх медленнее)
- reverse_cost = 0,6 (спуск по лестнице быстрее)
для края (elevator_door1, elevator_door2):
- id = 1
- source = 15 (при условии, что star_door1 имеет идентификатор 15)
- target = 66 (при условии, что star_door2 имеет идентификатор 16)
- cost = 0.3
- reverse_cost = 0.3
И так для каждого ребра.
Вы должны решить, каковы затраты, если у вас есть доступная геометрия, вы можете использовать длину и использовать неориентированный график.
Как только вы у вас есть таблица ребер и таблица вершин (запомните график G = {E, V})
), который вы можете использовать, например, pgr_dijkstra
Это все, что вам нужно для маршрутизации, поскольку вы можете видеть, что геометрии не нужны, et c, но для окончательного применения в таблице ребер и вершин вам могут потребоваться геометрии, т.е. mes (как имена узлов), номер этажа и т. д. c, но дополнительные столбцы в таблицах зависят от приложения.