Как стать автором
Обновить

Универсальный indoor-навигатор

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


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

Разные этажи описываются отдельно друг от друга, в тегах <Floor>, но могут содержать идентификаторы лестниц и лифтов. На разных этажах идентификатор лестницы или лифта один и тот же.

Ориентация карты на каждом этаже задается атрибутом dir у внешнего тега <Path>.

Приведем пример карты ВГУЭС.

Вот как выглядит исходник карты.

<Plan object="VSUES">
  <Exit id="2" name="Exit" floor="3" show_name="1" />
 
  <Floor num="3">
    <Path start="2" type="left_right_walls" dir="up">
      <Point id="near_exit2" name="у входа 2" />
      <Path start="near_exit2" rotate="left" type="no_walls">
        <Point name="Underground" show_name="1" />
      </Path>
      <Room name="Coffee" location="left" />
      <Door/>
      <Point id="exit2_exit2" name="Exit" />
      <Path rotate="left" start="exit2_exit2" type="no_walls">
        <Point/>
        <Point id="exit2_exit2_left" name="Corner" />
        <Path rotate="right" type="left_wall" start="exit2_exit2_left">
          <Room name="Stairs" location="left" />
          <Room name="Buffet" location="left" />
          <Room name="Golub. pad'" location="left" />
          <Door id="door_golub_pad" />
          <Path rotate="left" type="left_right_walls" start="door_golub_pad">
            <Point id="corner1" name="Cafe" location="left" show_name="1" />
            <Room location="right" name="Stud. otr." />
            <Stairs id="stairs1" />

Попробуем найти маршрут от ауд. 1321 до ауд. 4311. Вывод программы:

Пройти от 1321 до 1313 мимо 1324, 1322, 1320, 1318, 1319, 1316, 1314, 1317, 1315.

Поверните направо.

Пройти от 1313 до Corner мимо 1309, 1312, 1307, 1310.

Поверните направо.

Пройти от Corner до ToiletW мимо ToiletM.

Пройти от ToiletW до Kaf. mark. i torg. мимо Blinnaya.

Пройти от Kaf. mark. i torg. до 4311 мимо 4301, 4303, 4305, 4307, 4309.

Таким образом, текстовый навигатор лишён избыточности графической информации, характерной для навигаторов, которые можно найти в Play Маркет по запросу indoor navigation. Упрощенная схема здания является прямоугольной и может редактироваться пользователем. Таким образом, текстовое описание маршрута является важной функцией мобильного приложения.

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.