В этом руководстве мы расскажем, как нарисовать в нашем онлайн-редакторе карту местности, отправить ее на обработку, получить результат и суметь его понять.
Краткий туториал можно найти вот тут, а ниже мы опишем процесс более подробно и ответим на накопившиеся за время с момента его написания вопросы.
Начало работы
Выбор типа карты
Как только вы откроете наш редактор, вам будет предложено выбрать режим рисования карты, как на скриншоте ниже:
На данный момент, в нем доступны следующие варианты:
- Рисование поверх OSM. В качестве подложки будут загружена карта OpenStreetMap, вы сможете рисовать поверх нее.
Этот вариант хорошо подходит, если вы хотите обработать какой-то уже существующий и отмеченный на карте район города.
Важно! Сама карта-подложка в симуляции никак не используется и служит только ориентиром для рисования. Все дома, дороги и прочие объекты вам нужно будет обрисовать с помощью инструментов редактора!
- Рисование поверх загруженной подложки. Если у вас есть PDF файл с проектом благоустройства, вы можете вырезать план из него, вставить в виде картинки подложки в редактор и затем обрисовать нужные объекты и сооружения поверх него.
Этот вариант используется там, где вы хотите обработать еще не существующую в реальности (и на карте) местность, например еще не реализованный проект.
Кроме загрузки картинки вы должны будете указать масштаб — ширину области в метрах. Так как без вашей помощи алгоритм не может оценить, является ли загруженная вами картинка планом маленького дворика шириной в 50 метров или целого микрорайона шириной в пару километров.
- Открыть ранее сохраненную карту. Если вы уже рисовали карту в редакторе и сохраняли ее у себя локально в виде json файла, с помощью этого пункта вы сможете открыть сохраненный файл и продолжить редактирование.
- Импортировать OSM GeoJSON. Вы можете сохранить данные участка карты OpenStreetMap в формате GeoJSON (это умеют делать многие редакторы OSM, например JOSM) и затем загрузить в редактор, чтобы не обрисовывать дома или дороги вручную.
Однако у этого метода есть ряд проблем, начиная от ошибок конвертации OSM XML в GeoJSON (не все редакторы умеют это делать корректно, часть объектов может потеряться) и заканчивая тем, что необработанные данные OSM плохо подходят для симуляции, о чем мы писали ранее.
Опыт показывает, что ручная обрисовка OSM карты работает лучше и быстрее.
Кроме Google и Yandex неплохие спутниковые снимки (иногда даже лучшего качества) России можно найти в майкрософтовском поисковике Bing.
- Импорт DXF. Если у вас есть автокадовский проект благоустройства территории в DWG формате, вы можете пересохранить его в DXF (менее популярный, но тоже поддерживаемый всеми CAD формат) и проимпортировать напрямую в наш редактор. Возможно, перед этим вам потребуется немного изменить исходный DWG файл и привести его структуру к той, которую понимает наш импортер. Требования к структуре и процесс импорта уже описаны нами в отдельной статье.
Так какой тип в итоге выбирать?
Мы обычно работаем следующим образом.
Если есть проект благоустройства, еще не существующий в реальности:
- Если есть DWG проект — посмотреть, насколько он соответствует требованиям к структуре нашего импортера и попробовать проимпортировать его.
- Если не сработало (а DXF непростой формат, и в импорте могут быть ошибки, из-за чего он вообще не сработает, или не загрузится часть объектов), или автокадовских файлов нет, использовать рисование поверх подложки. Как правило, такие проекты к нам приходят в виде PDF брошюры с картами, планами, рендерами и красивыми картинками. Достаточно вырезать план благоустройства из этой брошюры (хотя бы и с помощью PrtScrn и Paint) и загрузить как подложку.
Если надо обработать существующую местность:
- Если для местности есть хорошие спутниковые снимки — делаем скриншот спутниковой карты гугла/яндекса, загружаем ее как изображение-подложку и обрисовываем поверх нее. Как правило, это дает лучший результат, чем рисование поверх OSM карты.
К сожалению, мы не можем добавить в ARP подложки со спутниковыми снимками напрямую из-за их лицензионных ограничений.
- Если спутниковые снимки этого места плохого качества, или на них ничего не разобрать из-за деревьев, рисуем поверх OSM подложки
Типичные проблемы
Я загружаю DXF файл, а сервер выдает мне ошибку. Как уже сказано выше, импорт DXF — сложный процесс, который не очень хорошо работает по независящим от нас причинам (просто нет качественных публично доступных библиотек по работе с этим форматом). Присылайте ваш DXF файл нам на info@antroadplanner.ru и мы попробуем разобраться и помочь.
Я нарисовал карту поверх OSM подложки, но здания почему-то не перенеслись и мне показывает просто зеленое поле. Как уже сказано выше, объекты с OSM подложки не используются, подложка — лишь ориентир для рисования. Все объекты должны быть обрисованы в редакторе.
Я проимпортировал OSM геометрию, но дороги получились какие-то странно узкие и пешеходы по ним не ходят. В OSM у дорог нет ширины, они там заданы просто линиями. Импортер никак не может из OSM получить реальные контуры дорог, а это важно для симуляции. Поэтому импортом из OSM лучше не пользоваться, все равно дороги и площади придется перерисовывать вручную.
Виды объектов на карте
Все объекты, участвующие в симуляции, можно разбить на следующие типы:
- Генераторы пешеходов — точки (или области), между которыми передвигаются пешеходы.
- Непроходимые препятствия. Здания, водные объекты, непроходимые заборы. Пешеходы никак не могут пройти через них.
- Проходимые препятствия. Это области и объекты, через которые пешеходы могут перейти или перелезть, но для них это сложнее, чем просто пройти по газону. Это могут быть небольшие заборчики, кусты и живые изгороди или просто неровный и неудобный для ходьбы рельеф.
- Пешеходные дорожки. Сюда входят все области с твердым покрытием, по которым пешеходы спокойно могут ходить. Тротуары, дорожки, сюда же относятся парковки и внутридворовые проезды.
Проходимые препятствия с точки зрения алгоритма делятся еще на два вида:
- Вытаптываемые — такие, которые становятся тем привлекательнее для пешеходов, чем больше людей прошло там раньше. Например, живая изгородь: пешеходы протаптывают в них проходы, после чего изгородь перестает быть препятствием на пути новых людей.
- Невытаптываемые — такие, характеристики которых не меняются со временем и в зависимости от количества прошедших людей, например заборы или автомобильные дороги.
Генераторы могут быть одного из трех видов
- Истоки (оранжевые) генерируют пешеходов, то есть служат начальной точкой в маршруте.
- Стоки (синие) поглощают пешеходов, то есть служат целевой точкой в маршрутах.
- Универсальные (желтые) могут и генерировать, и поглощать.
Одного из двух условных размеров:
- Маленькие — подходят для большинства объектов, таких как подъезд дома или детская площадка.
- Большие — предназначены для объектов, генерирующих большой пешеходный траффик: входы в метро, крупные ТРЦ, большие остановки общественного транспорта.
И одного из двух видов генерации:
- Точечные — пешеходы генерируются в центре области генератора, подходит для генераторов, соответствующих небольшим объектам, например вход в подъезд дома.
- Площадные — пешеходы генерируются в случайной точке в пределах области генератора. Подходят для протяженных объектов, например детских площадок или больших остановок ОТ.
Разметка объектов на карте
В ходе нашей работы мы выработали следующую последовательность рисования карты. Не обязательно придерживаться именно такого порядка, вы можете изменить его, если захотите.
Непроходимые препятствия
Сперва мы обрисовываем непроходимые препятствия: здания, водные объекты. Их обычно не так много, но они позволяют задать общие ориентиры карты.
Как правило, тут необязательно идеально точно передавать очертания объектов. Обычно достаточно довольно грубой обрисовки границ, не нужно обводить отдельно каждый выступ береговой линии и выступ стены дома.
Пешеходные дорожки и площадки
Самый трудоемкий этап, так как пешеходная инфраструктура должна быть размечена максимально качественно и в соответствии с проектом. Тут придется потрудиться и максимально точно передать ту форму, которая заложена в проекте. Так как даже небольшие отклонения могут исказить результат.
Инструментом «Обустроенные дорожки» необходимо обрисовать все поверхности с твердым покрытием, по которым предполагается массовое движение пешеходов. Это могут быть:
- Тротуары
- Собственно пешеходные дорожки, независимо от типа покрытия (асфальт, плитка, набивное или иное)
- Внутридворовые проезды и прочие shared spaces, по которым пешеходы двигаются наравне с машинами
- Территории парковок у ТРЦ, через которые пешеходы срезают свой путь
Не всегда бывает очевидно, должен ли участок считаться пешеходной дорожкой или каким-то иным типом (автомобильной дорогой или проходимым препятствием). Если вам неясно, должен ли этот участок быть пешеходной дорожкой, задайте себе вопрос: «если бы мне нужно было пройти вдоль этого участка, шел бы я по нему или по газону вдоль него». В первом случае — если на ваш взгляд привлекательность этого участка для пешехода выше, чем привлекательность газона, размечайте его как пешеходную дорожку.
Типичный пример: вдоль внутридворового проезда пешеход предпочтет идти по поверхности самого проезда, а вот вдоль оживленной улицы он лучше пойдет по газону, в стороне от проезжей части.
Наиболее спорной ситуацией являются парковки. На них есть как привлекающие пешеходов элементы (твердое покрытие), так и отталкивающие (стоящие и едущие машины). Между стоящими машинами бывает сложно протолкнуться, поэтому в зависимости от размеров и плотности парковки пешеходы могут как идти сквозь нее, так и обходить ее по периметру. Стоящие машины могут перегораживать пешеходам подход к краю парковки и выход с нее в произвольном направлении, защищая газон вдоль края от образования троп.
Возможный вариант при разметке — саму площадь парковки можно разметить как пешеходную дорожку, а ряды парковочных мест на ней — как проходимое препятствие.
Проходимые препятствия
После того, как пешеходные дорожки размечены, можно разметить и проходимые препятствия. Как правило, это разного рода растительность.
Важное уточнение: по умолчанию считается, что вся неразмеченная территория карты является газоном. Поэтому газоны не надо никак дополнительно размечать. Растительность в терминах ARP — это то, что мешает пешеходам свободно ходить. Это живые изгороди, кусты, клумбы, цветники или близко стоящие группы деревьев, загораживающие проход.
Идеально размечать растительность не нужно, так как в реальности деревья и кусты будут расти не совсем там и так, как указано на концепции и в проекте. Достаточно в общих чертах обрисовать область, которая будет занята растениями.
Кроме растений, в список проходимых препятствий входят заборы и автомобильные дороги.
Заборы бывают непроходимыми (в рост человека, которые не перелезть, обычно всякие заборы вокруг домов, школ) и проходимыми (все что ниже пояса, оградки вокруг газонов или улиц), через которые перелезть можно.
Как отличить автодорогу от пешеходной написано выше.
Генераторы пешеходов
Ключевую роль в симуляции играет расстановка точек, между которыми могут ходить пешеходы.
По умолчанию генераторы создаются как небольшие прямоугольники и имеют точечный вид. При необходимости достаточно кликнуть на прямоугольник и растянуть его до нужного размера, чтобы покрыть площадку целиком.
Как правило, типичный проект благоустройства содержит следующие типы точек притяжения для пешеходов:
- Входы и выходы на участок. Точки, через которые прибывают и убывают транзитные пешеходы, идущие к объектам за пределами границы проектирования. Размещаются на дорожках, пересекающих границу участка.
Как правило, используется тип «универсальный точеный малый». Иногда (если транзитный поток в этом месте велик, например в том направлении находится станция метро) имеет смысл ставить большой генератор.
- Подъезды домов. С подъездами есть нюанс: люди (кроме почтальонов) обычно не ходят от одного подъезда к другому. Поэтому подъезды задаются типом «исток точечный малый» и только генерируют пешеходов, но не могут служить им целью. Это может быть не очень интуитивно, но позволяет избежать образования лишних троп между подъездами, которых в реальности не бывает.
- Парковки. Так же как и с подъездами, люди обычно не ходят от одной парковки к другой. Как генератор выделяется вся площадь парковки и ставится тип «сток площадной малый», чтобы пешеходы подходили к случайным точкам парковки.
- Детские, спортивные площадки, зоны отдыха. Как правило имеют значительную площадь, она вся размечается генератором и размечается как «универсальный площадной малый»
- Все остальное — входы в магазины и иные общественно-деловые здания, остановки ОТ, достопримечательности, мусорные баки — размечаются как универсальные генераторы нужного размера.
Граница
После того, как все объекты размечены, необходимо задать границу проведения симуляции. Пешеходы не будут пересекать границу, генераторы за пределами границы не будут учитываться.
Проверка перед отправкой
Перед отправкой карты на обработку следует еще раз проверить следующие моменты:
- Все объекты на карте размечены, ничего не пропущено. Это может быть не так просто заметить при рисовании поверх подложки, где линии редактора сливаются с линиями подложки.
- Размечены все генераторы пешеходов.
- У площадных генераторов выставлен нужный вид генерации. По умолчанию генераторы считаются точечными, независимо от их размера.
- Не забыты генераторы в местах выхода пешеходов из района проектирования.
- Пешеходные дорожки соединяются без дыр. Часто при рисовании дорожки из нескольких полигонов в местах их стыка остаются щели, лучше пересекать полигоны с некоторым запасом.
- Область проектирования очерчена границей.
Сохранение и отправка карты
Рекомендуется время от времени сохранять карту в виде JSON файла, на случай если в редакторе случится какой-либо сбой.
Если при отправке карты (с помощью большой зеленой кнопки) произошла ошибка, присылайте нам сохраненный JSON файл на info@antroadplanner.ru и мы попробуем разобраться.
Интерпретация результатов
После обработки вы получите изображение с кучей красных следов, в котором еще нужно суметь разобраться.
Если вы допустили ошибки в разметке карты, то скорее всего результат будет неадекватным: карта может быть целиком залита красным (вытоптано вообще все). В реальности, если не сделать дорожек вообще, такое тоже может быть — вместо установившейся сети троп получится просто равномерное вытоптанное поле. Но в целом это скорее проблема алгоритма, с которой мы еще будем пытаться что-то сделать.
Если немного повезет (в проекте было почти достаточно дорожек, а генераторов не очень много), то на результате будет довольно легко найти и понять все места, где дорожек не хватило.
Важно при этом научиться отделять мусор (которого, к сожалению, в результатах тоже достаточно много), от реальных проблемных мест.
Стоит осознать, что в данный момент наш алгоритм не может вам выдать готовые контуры необходимых пешеходных дорожек, а лишь указывает проблемные направления. Конкретное место размещения и форма новых дорожек должны быть выбраны вручную на основе этих данных (это все равно гораздо быстрее, чем продумывать все вручную с самого начала, без симуляции).
Типичные «мусорные» места, на которые можно не обращать внимания:
- Сдвоенные параллельные тропы в одном месте, как на рисунке выше. Их можно объединить в одну. Важно суметь выделить основное направление движения пешеходов в этом месте и не обращать внимания на кучу параллельных линий.
Куча параллельных линий показывают большой спрос на диагональный транзит ко входу на территорию школы (зеленый генератор 119) в этом месте
- Тропы вокруг генераторов на краях участка. Генераторы на дорожках, ведущих за территорию проектирования, являются лишь приближением для объектов, находящихся за границами участка. В реальности на карте там, где стоит такой генератор, ничего не будет, будет просто кусок дорожки. И эта точка сама по себе притягивать никого не будет. Однако, она может породить мусорные тропы, соединяющие ее с соседними такими же генераторами.
Лишняя тропа на границе участка, так как в реальности площадка справа и дорога слева соединяются выше, за границей области, и никто не будет переходить в этом месте с одной на другую
- Некоторые вещи невозможно правильно нарисовать в существующем редакторе. Например, нельзя правильно нарисовать дом с подъездами, выходящими на обе стороны дома. Если размечать каждую дверь как отдельный генератор, то получатся тропы, обходящие дом по периметру, хотя в реальности люди бы прошли насквозь.
После отфильтровывания всех лишних красных линий, можно использовать полученный результат для выбора мест прокладки новых дорожек.
Итерационный процесс
Многие архитекторы и просто жители сталкивались с такой проблемой: люди протаптывают тропу, ее покрывают плиткой, однако на этом все не заканчивается: люди протаптывают уже новую тропу, ведущую к этой плиточной дорожке.
Любое изменение УДС может привести к созданию каких-то новых маршрутов. Например, раньше тут никто не ходил, так как путь по газонам и тропам был все-таки слишком далеким и грязным. А после того, как часть троп заменили дорожками — путь стал более привлекательным, в итоге люди стали топтать газон в новом месте.
Поэтому для получения действительно удобной УДС одного запуска симуляции обычно мало. Чаще всего приходится сделать 2-3 итерации. После каждой итерации в дорожную сеть вносятся необходимые изменения, после чего симуляция запускается снова уже на новом варианте. С каждой итерацией число потенциальных стихийных троп уменьшается.
Помимо карты стихийных троп, можно использовать карту с плотностями распределения пешеходов, чтобы убирать более не нужные дорожки, для которых нашлась более удобная замена как мы это делали, например, в этой статье.
Заключение
Надеемся, это руководство прояснило некоторые вопросы и поможет вам рисовать карты лучше и получать более качественные результаты.
Ссылки на прочие полезные обучающие материалы:
Видео-инструкция по рисованию карты
Справка по рисованию карты
Инструкция по подготовке карты в CAD программе