Симулятор теперь доступен по адресу http://antroadplanner.ru !
Автор: smirnovegorv Страница 19 из 21
Исправлено несколько ошибок, связанных с редактором:
- Исправлена ссылка на главной странице
- Исправлено редактирование загруженной карты (при импорте карты не учитывались последующие изменения, сделанные в редакторе)
- Исправлено размещение генераторов, теперь их можно добавлять поверх других объектов.
Редактор карт был серьезно переписан. Внешне интерфейс почти не поменялся, были сделаны серьезные внутренние изменения.
Например теперь вместо API Яндекс-карт используется библиотека Leaflet и карты Open Street Map. Были так же добавлены долгожданные новые возможности:
- Импорт DXF. Чуть позже мы добавим подробную инструкцию по подготовке файла и настройкам импорта.
- Рисование карты поверх произвольной подложки. Теперь можно загрузить любое изображение (любой чертеж или план) и использовать его в качестве задника вместо карты Земли.
Формат DXF только выглядит простым, а на деле полон костылей и наворотов:
https://habrahabr.ru/post/301484/
Сейчас я занят переделкой кода редактора, новая версия будет работать на API Leaflet, использовать данные OSM, сможет редактировать карты не привязанные к местности (как DXF так и просто рисовать поверх загруженной картинки-подложки) и вообще будет очень крутой. Надеюсь.
Поправлены некоторые баги в импортере карт, которые могли приводить к ошибкам при отправке карты из редактора.
Данное обновление призвано упростить редактирование карт. В нем выполнены пожелания пользователей:
- Исправлена граница карты, она теперь задается полилинией, а не полигоном. Теперь она не будет мешать редактировать остальные объекты
- Генераторы разных типов теперь визуально отличаются цветом и размером
- Добавлены хинты для объектов на карте. В следующем обновлении в них можно будет редактировать свойства.
Добавлены новые типы генераторов: истоки и стоки (термины из теории графов):
- Из истоков пешеходы только выходят, но никогда в них не заходят
- В стоки наоборот, только заходят.
Зачем это надо?
Пешеходы обычно не ходят между разными объектами одного типа. Между подъездами, например. Ранее это никак не учитывалось, что вело к появлению лишних тропинок. Теперь же например можно задать подъезды как истоки, а магазины и прочие цели — как стоки. В итоге пешеходы в симуляции будут двигаться по меньшему количеству более реалистичных маршрутов.
Благодаря этому можно получать более близкие к реальности результаты.
Вычисления продолжаются, заодно была повышена их точность.
Почему-то веб-сервер, живущий на хостинге Heroku не дружит с распределенными вычислениями JPPF. Возможно Heroku как облачный сервис периодически прибивает или усыпляет веб-сервер когда тот не используется долгое время. И не позволяет держать долгоживущие соединения. В итоге результаты часовых вычислений пропадают, так как соединение рвется.
В итоге я сделал небольшое отдельное приложение, которое напрямую лазает в базу карт, берет их оттуда и считает.
В последнее время участилась проблема с зависанием вычислений. Особенно это касается больших карт с большим числом генераторов пешеходов. В статусе карты написано что она считается, но на самом деле ничего не происходит.
Почему-то если вычисления занимают больше определенного времени (нескольких минут) то связь вебсервера и сервера вычислений рвется и результаты никогда не возвращаются.
Я пока ищу решение проблемы. До тех пор если ваша карта долго висит и не считается — пишите мне в комментариях или на smirnov.egor.v@gmail.com, я посчитаю ее вручную у себя.
Одним из ключевых параметров, влияющих на полученные результаты, является разрешение сетки. Пешеходы двигаются между ее узлами, и ее ячейки содержат информацию о «вытоптанности» газонов.
Повышение разрешения сетки позволяет повысить точность представления результата. Например вот на этой карте местами разрешения не хватает, в итоге газон получается почти равномерно залит красным, что не очень помогает в плане определения оптимальных направлений движения:
Особенно это заметно в случае больших карт, охватывающих целый район: в таком случае при ограничении сетки в 250 узлов по наибольшей стороне размер одной ячейки может превысить несколько квадратных метров.
К сожалению в силу ряда технических проблем нет возможности запускать карты с высоким разрешением на веб-сервисе. Однако такие карты я могу посчитать на своем компьютере отдельно.
Вот пример карты с высоким разрешением, на которой сейчас тестируется импорт из DXF (скоро-скоро он уже появится на вебсервисе, пока в урезанном виде):
Несмотря на высокую плотность дорожек их направления четко прослеживаются.
Если разрешение обработанной карты вас не устраивает — присылайте ее мне на smirnov.egor.v@gmail.com (либо ссылку на карту на сервисе, либо geojson файл), я обсчитаю ее с максимальной детальностью.
Проект исчерпал бесплатный лимит базы данных MongoLab. Сейчас я попробую сжать базу и почистить ее от наиболее бессмысленных карт. В течение какого-то времени сервис может работать с ошибками.
UPD: удалил с полсотни карт с ошибками и просто бессмысленных, на какое-то время хватит. Но надо искать нормальное решение. Наверное придется автоматически удалять карты старше недели. Ну или пожертвования собирать.
UPD #2: база очищена целиком, удалены карты которым больше недели и которые либо не посчитались, не валидны, либо слишком примитивны. Такая чистка теперь будет проводиться ежедневно.
За нормальные карты (которые успешно посчитались, при этом на них есть более 2 генераторов и более 2 прочих объектов) пока можно не бояться, они в базе останутся.