Ant Road Planner

Как сделать удобную пешеходную инфраструктуру

Рубрика: Development Страница 4 из 5

Работаем над алгоритмом

Заинтересовавшиеся нашим проектом люди иногда присылают нам карты, на которых наш алгоритм досадно конфузится и не может выдать ничего вразумительного. Получается например вот так (для теста взят лишь фрагмент района), все равномерно вытоптано:

result_24020

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

Под катом пример полного района и увесистая (3 Мб) гиф-анимация того, как сейчас выглядит генерация дорожек.

Читать далее

Обновление 15 августа: фикс багов в импорте DXF

Исправлены следующие проблемы:

  • Определение кодировки файла при наличии кириллических имен слоев
  • Баг с округлением, из-за которого блоки вставлялись с искажениями
  • Баг с обработкой некоторых видов геометрии, из-за которых она могла просто пропадать с итоговой карты, но при этом была видна после импорта в онлайн-редакторе
  • Проблемы в веб-интерфейсе импорта:
    • Невозможность добавить границу
    • Баг с импортом генераторов

Обновление 3 августа: новый дизайн

arp-color-kvadrat-256

Наш сайт обзавелся новым дизайном! Не то чтобы прошлая тема была плоха, но все-таки использовать дефолтный шаблон — это как-то несерьезно.

И заодно сделали себе логотип.

Обновление 22 июля: регистрация

Сегодня мы добавили к нашему симулятору возможность регистрации. Она открыта и бесплатна, можно либо создать новый аккаунт, либо войти через Google или Facebook.

login

 

Анонимный доступ к редактору оставлен, убирать его пока мы не планируем. На данный момент только зарегистрированные пользователи могут следить за списком своих карт и пользоваться импортом DXF. В дальнейшем мы добавим новые возможности.

 

Обновление 11 июля: фиксы в редакторе

Исправлено несколько ошибок, связанных с редактором:

  • Исправлена ссылка на главной странице
  • Исправлено редактирование загруженной карты (при импорте карты не учитывались последующие изменения, сделанные в редакторе)
  • Исправлено размещение генераторов, теперь их можно добавлять поверх других объектов.

Обновление 5 июля: новые возможности редактора

Редактор карт был серьезно переписан. Внешне интерфейс почти не поменялся, были сделаны серьезные внутренние изменения.

editor2

Например теперь вместо API Яндекс-карт используется библиотека Leaflet и карты Open Street Map. Были так же добавлены долгожданные новые возможности:

  • Импорт DXF. Чуть позже мы добавим подробную инструкцию по подготовке файла и настройкам импорта.
  • Рисование карты поверх произвольной подложки. Теперь можно загрузить любое изображение (любой чертеж или план) и использовать его в качестве задника вместо карты Земли.

Статья на Хабре про сложности импорта DXF чертежей

Формат DXF только выглядит простым, а на деле полон костылей и наворотов:

https://habrahabr.ru/post/301484/

ca772c33decd46cc85caa7c1bf88def6

Сейчас я занят переделкой кода редактора, новая версия будет работать на API Leaflet, использовать данные OSM, сможет редактировать карты не привязанные к местности (как DXF так и просто рисовать поверх загруженной картинки-подложки) и вообще будет очень крутой. Надеюсь.

Обновление 4 июня: улучшения редактора и новые типы генераторов

Данное обновление призвано упростить редактирование карт. В нем выполнены пожелания пользователей:

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

Добавлены новые типы генераторов: истоки и стоки (термины из теории графов):

  • Из истоков пешеходы только выходят, но никогда в них не заходят
  • В стоки наоборот, только заходят.

Зачем это надо?

Пешеходы обычно не ходят между разными объектами одного типа. Между подъездами, например. Ранее это никак не учитывалось, что вело к появлению лишних тропинок. Теперь же например можно задать подъезды как истоки, а магазины и прочие цели — как стоки. В итоге пешеходы в симуляции будут двигаться по меньшему количеству более реалистичных маршрутов.

result

Тропа вдоль дома образована пешеходами, ходящими между подъездами, чего в действительности обычно не бывает.

Благодаря этому можно получать более близкие к реальности результаты.

Проблема решена

Вычисления продолжаются, заодно была повышена их точность.

Почему-то веб-сервер, живущий на хостинге Heroku не дружит с распределенными вычислениями JPPF. Возможно Heroku как облачный сервис периодически прибивает или усыпляет веб-сервер когда тот не используется долгое время. И не позволяет держать долгоживущие соединения. В итоге результаты часовых вычислений пропадают, так как соединение рвется.

В итоге я сделал небольшое отдельное приложение, которое напрямую лазает в базу карт, берет их оттуда и считает.

Проблемы с сервером вычислений

В последнее время участилась проблема с зависанием вычислений. Особенно это касается больших карт с большим числом генераторов пешеходов. В статусе карты написано что она считается, но на самом деле ничего не происходит.

Почему-то если вычисления занимают больше определенного времени (нескольких минут) то связь вебсервера и сервера вычислений рвется и результаты никогда не возвращаются.

Я пока ищу решение проблемы. До тех пор если ваша карта долго висит и не считается — пишите мне в комментариях или на smirnov.egor.v@gmail.com, я посчитаю ее вручную у себя.

Страница 4 из 5