RU:Как нарисовать частный сектор с адресами
В проприетарных картах (ДубльГИС, ЯрМап или Яндекс Карты) уже рисуют частный сектор вплоть до отдельных домов и расставляют их адреса. В OpenStreetMap достаточно информации в открытых источниках, чтобы рисовать частный сектор настолько же детально, не вставая с дивана. Мы не знаем точно источники информации у проприетарных карт, её актуальность, и проверяют ли её на местности. Мы знаем, что нам информации вполне хватает, а если участники будут ещё уточнять карты на местности, нам не будет равных.
Вот инструкция, как нарисовать кусок частного сектора, не приходя туда лично.
Краткий список, по которому можно проверять себя:
Требования
- python 2.x.x, с добавленным путем к python в системную переменную path.
- josm
- плагин command line
- плагин buildng tools
- модуль address2 (версия для python 3.8 и 3.9)для command line (на замену python скрипта выпущен полноценный плагин https://github.com/De-Luxis/JOSM-Russia-address-helper-plugin, установить можно в менеджере модулей JOSM)
- слой WMS кадастра Росреестра
- слой спутниковых снимков (Bing)
- Знать (желательно - сохранить в настройках) правильное смещение спутникового снимка в районе
Порядок работы
- Включаем подложку кадастра и Bing
- Сдвигаем Bing, чтобы он совпадал с кадастром
- Создаём новый слой, чтобы не смешивать смещённые и несмещённые данные
- Ищем где дома пересекаются с отмеченными в Кадастре участками и ставим там точки при помощи команды address
- Проверяем что в меню "Правка - Задать размеры зданий" установлена галочка на "Использовать адресные точки под зданиями"
- Обрисовываем дома при помощи W (building tools), теги с точек должны перейти на дома
- Исправляем адреса (удаляем номера квартир, слово "дом" из адреса и т.д.)
- Интерполируем адреса домов, которые не записаны в кадастре
- Отключаем слои подложки, проверяем, не осталось ли ошибок
- Исправляем названия улиц в адресах домов на канонические
- Добавляем название города и страну в адреса
- Возвращаем подложку Bing на правильное место
- Смещаем слой новых зданий на место
- Сливаем слой с существующим и заливаем на сервер
Подробнее
В картах земельного кадастра Росреестра есть планировка земельных участков и информация о них. Самые важные для нас - адрес и назначение. Этих двух полей достаточно чтобы
- проставить адреса. Даже если не все участки отмечены, можно догадаться, где какой адрес.
- подписать названия улиц по тем, что написаны в данных участков.
- расставить landuse
Кроме того, кадастровые кварталы совпадают с границами поселений, поэтому их тоже можно из кадастра срисовать.
Пример: на снимке видно здание, назначение которого неизвестно. Щёлкаем на карте на участок и видим, что в нём написан не только адрес, но и что это детский сад номер такой-то.
Плагин CommandLine позволяет выполнять любые внешние программы, написанные на любых языках. И одна из них - это address.py, которая запрашивает информацию об участке и сохраняет её в точку с тэгами.
Итак, начинаем подготовку.
1. Входим в список плагинов (Edit/Preferences/кнопка с вилкой и розеткой) и выбираем CommandLine, устанавливаем его.
2. Устанавливаем так же плагин Building Tools
3. Скачиваем из вики-страницы разные команды и address addresses2 addresses2 (github) (версия для python 3.8 и 3.9)
4. Распаковываем архивы zip в папку JOSM/Plugins/CommandLine (в Линуксах это ~/.josm/plugins/CommandLine). Если папки нет - создаём её. В конце концов в папке CommandLine должен быть такой набор файлов:
5. Перезапускаем JOSM
6. Заходим в настройки, редактор панелей и добавляем address в панель инструментов:
7. Добавляем подложку Росреестра, если её нет: wms:http://citrin.ru/cadastre?SRS={proj}&WIDTH={width}&height={height}&BBOX={bbox}
Она должна появиться в меню Imagery. Проверяем, грузит ли она что-нибудь, если нет - спрашиваем на форуме, что не так сделали.
Теперь мы готовы к работе. Жмём на панели по кнопке A, затем на карте. Если там был участок с адресом, он появится в виде точки. Если там такого участка не было, ничего не появится. Дальше, если дом уже нарисован, копируем точку, удаляем её, выделяем дом, Shift+Ctrl+V (вставить тэги). Исправляем неточности, читаем тэги (category, utilization), делаем выводы (скажем, что дом многоквартирный, значит building=apartments, а вокруг него участок - landuse=residential), затем удаляем эти служебные тэги и fixme.
Но для массовой работы такая схема не пойдёт, потому что возни ну слишком много.
1. Копировать тэги каждый раз муторно. Есть способ проще: когда при помощи прямоугольника из building tools (W на клавиатуре) вы рисуете дом, а на территории была адресная точка, дом её "поглотит": теги перейдут на дом, а точка исчезнет.
2. Подложка кадастра сильно смещена, а плагин смещений пока не знает. Если вы подвинете подложку Кадастра на правильное место, то придётся делать геометрические операции в голове: "я жму на подложку здесь, значит точка на самом деле там". Если оставить подложку на месте, тоже придётся много упражняться: "дом здесь, значит жмём левее на столько метров".
Решение - сначала сдвинуть спутниковый снимок под подложку кадастра. Нарисовать все точки в отдельном слое, нарисовать контуры домов, затем исправить сдвинуть обратно и слить слои данных в один.
Пошаговая инструкция
Итак, открываем JOSM и загружаем нужное место из OSM. Если мы не знаем смещения подложки Бинг в этом районе, надо загрузить данные треков и подвинуть подложку, а затем сохранить координаты в заготовки смещений.
Добавляем также подложку кадастра, двигаем её выше подложки Бинга и смотрим, как они совмещаются.
Бинг у нас уже выровнен нормально, кадастр - сдвинут. Если так, то новые дома надо будет рисовать в отдельном слое, чтобы не смешивать их с существующими данными. Заходим в меню (Файл - Новый слой), затем прячем слой с существующими данными:
Жмём правой кнопкой на слой Бинга и выбираем Смещение/Новое. Двигаем слой так, чтобы совместить с кадастром. Мы двигаем именно Бинг, чтобы кадастр остался без смещения. Сохранять новое смещение слоя нужно, если вы ещё планируете рисовать в этом городе по кадастру.
Слой сдвинут. Жмём на панели инструментов кнопку "Address" и на карту там, где дом пересекается с участком (чтобы и в участок ткнуть, и потом точку "съесть" прямоугольником). На этой иллюстрации это точки в виде красной буквы "F". Ждать, пока точка появится, не нужно, можно "прощёлкать" все дома заранее.
После этого можно рисовать дома (кнопка W). Можно спрятать слой Кадастра, чтобы не мешало. Если дом рисовать при помощи прямоугольника (W) поверх адресной точки, точка исчезнет, а тэги с неё перейдут на дом. Напомню, что полезно выделить пару точек на улице, вдоль которой рисуем дома, чтобы прямоугольники домов были сразу выровнены.
Смотрим: есть дома, под которыми не было участка и, соответственно, адресной точки:
По соседним домам видно, что это дом №16. Копируем соседний дом, выделяем наш безадресный, Shift+Ctrl+V, правим номер дома в тэгах. Пробел заполнен.
Смотрим на то, правильно ли заполнены номера, смотрим в значения тэгов category, utilization (эти тэги придуманы специально для этого плагина, их сохранять в ОСМ не нужно).
Полезно отключить слои подложки, чтобы не мешали видеть цифры.
Теперь, когда все адреса и номера расставлены, надо сделать названия улиц каноническими. Копируем из тэга addr:street название, идём в поиск (Ctrl+F), ищем строку addr\:street="ул. Луначарского".
Выделились дома на этой улице. Переписываем значение тэга для всех них.
Нужно не забыть добавить название города в адреса, чтобы поисковики, которые ищут по тэгам, эти дома находили. Сначала найдём их сами: "addr\:street=* -addr\:city" значит объект с улицей, но без тэга addr:city.
Пишем имя города в тэг addr:city и код страны, addr:country=RU. Удаляем лишние тэги (addr:full, category, utilization, fixme).
Все дома готовы, теперь надо сдвинуть их на точное место. Выбираем в списке смещений подложки Бинг правильное, затем выделяем все объекты в нашем специальном слое и двигаем их.
Отключаем слои подложки и оглядываем дома в поисках ошибок. Здесь есть три дома с ошибками: 24-2 (это участок дома №24 квартиры 2, надо исправить номер на просто "24"), "дом 28" (удаляем слово "дом") и 32-2 (тоже номер квартиры). Исправляем ошибки.
Совмещаем слои данных (хотя это не обязательно), заливаем на сервер.
Ссылки
RU:Совет Российского OSM/Декларация №1 - Об адресной информации и ПКК Росреестра
- не актуально.