Задача навигации внутри помещений является актуальной. Разработано большое число как коммерческих, так и открытых решений, предоставляющих конструктор карт для организаций, мобильные и веб-приложения для широкого круга пользователей. Некоторые навигаторы используют специальное оборудование для автоматического определения местоположения пользователя в здании.

Из обзора существующих решений был сделан вывод о некоторой их перегруженности информацией. Так, пользователю не так важно знать детальную геометрию здания, как небольшое множество ориентиров и направления перемещения относительно них. А тем, кто создает карты, приходится вводить избыточное количество информации, чтобы обеспечить реалистичность для конечного пользователя. Возможно, это приводит к недостаточной распространенности indoor-навигации даже в популярных общественных местах. Таким образом, была поставлена задача построения упрощенной логической модели здания и реализации текстовой навигации, подходящей для широкого класса зданий, на основе XML-формата представления карты.

Навигатор работает с двумя базовыми сущностями: пункт (point) и путь (path). Карта здания представляется в прямоугольной геометрии. Это означает, что есть только четыре направления перемещения: вперед, влево, назад, вправо.

Пункт - это любое место (комната или угол), которое может служить ориентиром и мимо которой можно пройти. Путь - это прямолинейный участок маршрута, имеющий определенное направление. Карта содержит информацию о том, через какие пункты проходит путь и как он ориентирован по отношению к другому пути - в XML-файле это выражается при помощи вложенных тегов <Path>.

Предполагается, что навигатором такого типа можно будет эффективно пользоваться в зданиях, где все пункты имеют нумерацию или четкое название. Например, в университете это номер аудитории. В настоящий момент пользователь вводит, откуда и куда ему нужно пройти, и навигатор выводит маршрут текстом, с указанием направлений поворота и промежуточных пунктов, по которым следует ориентироваться.

Пример диалога

Маршрут от 2 до 1525
Пройти Вход 2 - Exit мимо: Кофейня.
Поверните направо.
Пройти Exit - Угол.
Поверните налево.
Пройти Угол - 1313 мимо: Буфет, Точка кипения, Столовая, Столовая, 1311.
Пройти 1313 - 1334 мимо: 1315, 1317, 1314, 1316, 1319, 1318, 1320, 1322, 1324, 1321, 1326, 1323, 1328, 1325, 1330, 1327, 1332, 1331, 1329.
Поверните направо.
Пройти 1334 - Лестница.
Пройти по лестнице с 3 этажа до 5 этажа.
Пройти Лестница - .
Пройти - 1525 мимо: 1519, 1522, 1521, 1524, 1526, 1523, 1528.

Сложно однозначно сказать, требуется ли в данном случае графическое представление маршрута. Отрисовка карты важна для её редактирования, а у пользователя навигатора прежде всего должна быть возможность узнать, в каком направлении идти и на что ориентироваться относительно введенного им пункта. В дальнейшем возникает проблема придумать такой интерфейс, который бы: а) не был избыточным; б) использовал минимум входной информации о здании; в) обеспечивал реалистичность за счет пиктограмм и прочих средств, пробуждающих воображение пользователя.

Комментарии (5)


  1. dravor
    01.09.2023 10:40
    +1

    Навигатор - это приложение, которое ведет по маршруту, а не дает его описание с предложением самому ориентироваться на местности. В этом и вся техническая трудность реализации indoor-навигации с минимальными вложениями.


    1. lapkin25 Автор
      01.09.2023 10:40

      Всё верно. Вводим своё местонахождение - получаем ориентиры и направление. Дальше идем, снова вводим, и т.д.


      1. dravor
        01.09.2023 10:40
        +1

        В навигатор на каждом повороте занового ничего вводить не надо, тем более что в вашем случае он ничего нового не напишет. Просто вместо "навигатор" стоит придумать другое название, чтоб скорректировать ожидания от UI/UX ))


      1. zuko3d
        01.09.2023 10:40
        +1

        Когда я нахожусь в большом и незнакомом ТЦ (а именно в таких местах я пользуюсь индор-навигацией, т.к. в знакомых я и без навигатора ориентируюсь), то для меня сложнее всего определить "где я сейчас" и обычно именно для этого мне и нужен индор-навигатор.


        1. lapkin25 Автор
          01.09.2023 10:40

          Для таких случаев, когда в здании нет специальных маячков для определения местоположения, можно добавить функцию ввода описания ближайших объектов, чтобы программа определила по ним местоположение. То есть название пункта может задаваться нечетко. В уличных навигаторах обычно вводят текущий адрес, а потом смотрят на карту, а в indoor-навигаторе можно подумать над заменой привычной карты минималистичным описанием ближайших объектов.