RU:Как нарисовать частный сектор с адресами

From OpenStreetMap Wiki
Jump to navigation Jump to search

В проприетарных картах (ДубльГИС, ЯрМап или Яндекс Карты) уже рисуют частный сектор вплоть до отдельных домов и расставляют их адреса. В OpenStreetMap достаточно информации в открытых источниках, чтобы рисовать частный сектор настолько же детально, не вставая с дивана. Мы не знаем точно источники информации у проприетарных карт, её актуальность, и проверяют ли её на местности. Мы знаем, что нам информации вполне хватает, а если участники будут ещё уточнять карты на местности, нам не будет равных.

Вот инструкция, как нарисовать кусок частного сектора, не приходя туда лично.

Краткий список, по которому можно проверять себя:

Требования

  1. python 2.x.x, с добавленным путем к python в системную переменную path.
  2. josm
  3. плагин command line
  4. плагин buildng tools
  5. модуль address2 (версия для python 3.8 и 3.9)для command line
  6. слой WMS кадастра Росреестра
  7. слой спутниковых снимков (Bing)
  8. Знать (желательно - сохранить в настройках) правильное смещение спутникового снимка в районе

Порядок работы

  1. Включаем подложку кадастра и Bing
  2. Сдвигаем Bing, чтобы он совпадал с кадастром
  3. Создаём новый слой, чтобы не смешивать смещённые и несмещённые данные
  4. Ищем где дома пересекаются с отмеченными в Кадастре участками и ставим там точки при помощи команды address
  5. Проверяем что в меню "Правка - Задать размеры зданий" установлена галочка на "Использовать адресные точки под зданиями"
  6. Обрисовываем дома при помощи W (building tools), теги с точек должны перейти на дома
  7. Исправляем адреса (удаляем номера квартир, слово "дом" из адреса и т.д.)
  8. Интерполируем адреса домов, которые не записаны в кадастре
  9. Отключаем слои подложки, проверяем, не осталось ли ошибок
  10. Исправляем названия улиц в адресах домов на канонические
  11. Добавляем название города и страну в адреса
  12. Возвращаем подложку Bing на правильное место
  13. Смещаем слой новых зданий на место
  14. Сливаем слой с существующим и заливаем на сервер

Подробнее

В картах земельного кадастра Росреестра есть планировка земельных участков и информация о них. Самые важные для нас - адрес и назначение. Этих двух полей достаточно чтобы

  • проставить адреса. Даже если не все участки отмечены, можно догадаться, где какой адрес.
  • подписать названия улиц по тем, что написаны в данных участков.
  • расставить 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 должен быть такой набор файлов:

20 files.png

5. Перезапускаем JOSM
6. Заходим в настройки, редактор панелей и добавляем address в панель инструментов:

21 buttons.png

7. Добавляем подложку Росреестра, если её нет: wms:http://citrin.ru/cadastre?SRS={proj}&WIDTH={width}&height={height}&BBOX={bbox}

22 wms.png

Она должна появиться в меню Imagery. Проверяем, грузит ли она что-нибудь, если нет - спрашиваем на форуме, что не так сделали.

Теперь мы готовы к работе. Жмём на панели по кнопке A, затем на карте. Если там был участок с адресом, он появится в виде точки. Если там такого участка не было, ничего не появится. Дальше, если дом уже нарисован, копируем точку, удаляем её, выделяем дом, Shift+Ctrl+V (вставить тэги). Исправляем неточности, читаем тэги (category, utilization), делаем выводы (скажем, что дом многоквартирный, значит building=apartments, а вокруг него участок - landuse=residential), затем удаляем эти служебные тэги и fixme.

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

1. Копировать тэги каждый раз муторно. Есть способ проще: когда при помощи прямоугольника из building tools (W на клавиатуре) вы рисуете дом, а на территории была адресная точка, дом её "поглотит": теги перейдут на дом, а точка исчезнет.
2. Подложка кадастра сильно смещена, а плагин смещений пока не знает. Если вы подвинете подложку Кадастра на правильное место, то придётся делать геометрические операции в голове: "я жму на подложку здесь, значит точка на самом деле там". Если оставить подложку на месте, тоже придётся много упражняться: "дом здесь, значит жмём левее на столько метров".

Решение - сначала сдвинуть спутниковый снимок под подложку кадастра. Нарисовать все точки в отдельном слое, нарисовать контуры домов, затем исправить сдвинуть обратно и слить слои данных в один.

Пошаговая инструкция

Итак, открываем JOSM и загружаем нужное место из OSM. Если мы не знаем смещения подложки Бинг в этом районе, надо загрузить данные треков и подвинуть подложку, а затем сохранить координаты в заготовки смещений.

Добавляем также подложку кадастра, двигаем её выше подложки Бинга и смотрим, как они совмещаются.

1 offset.png 2 offset.png

Бинг у нас уже выровнен нормально, кадастр - сдвинут. Если так, то новые дома надо будет рисовать в отдельном слое, чтобы не смешивать их с существующими данными. Заходим в меню (Файл - Новый слой), затем прячем слой с существующими данными:

3 layers.png

Жмём правой кнопкой на слой Бинга и выбираем Смещение/Новое. Двигаем слой так, чтобы совместить с кадастром. Мы двигаем именно Бинг, чтобы кадастр остался без смещения. Сохранять новое смещение слоя нужно, если вы ещё планируете рисовать в этом городе по кадастру.

4 offset.png

Слой сдвинут. Жмём на панели инструментов кнопку "Address" и на карту там, где дом пересекается с участком (чтобы и в участок ткнуть, и потом точку "съесть" прямоугольником). На этой иллюстрации это точки в виде красной буквы "F". Ждать, пока точка появится, не нужно, можно "прощёлкать" все дома заранее.

5 points.png

После этого можно рисовать дома (кнопка W). Можно спрятать слой Кадастра, чтобы не мешало. Если дом рисовать при помощи прямоугольника (W) поверх адресной точки, точка исчезнет, а тэги с неё перейдут на дом. Напомню, что полезно выделить пару точек на улице, вдоль которой рисуем дома, чтобы прямоугольники домов были сразу выровнены.

Смотрим: есть дома, под которыми не было участка и, соответственно, адресной точки:

6 no address.png

По соседним домам видно, что это дом №16. Копируем соседний дом, выделяем наш безадресный, Shift+Ctrl+V, правим номер дома в тэгах. Пробел заполнен.

Смотрим на то, правильно ли заполнены номера, смотрим в значения тэгов category, utilization (эти тэги придуманы специально для этого плагина, их сохранять в ОСМ не нужно).

Полезно отключить слои подложки, чтобы не мешали видеть цифры.

7 check.png

Теперь, когда все адреса и номера расставлены, надо сделать названия улиц каноническими. Копируем из тэга addr:street название, идём в поиск (Ctrl+F), ищем строку addr\:street="ул. Луначарского".

8 street.png

Выделились дома на этой улице. Переписываем значение тэга для всех них.

9 street.png

Нужно не забыть добавить название города в адреса, чтобы поисковики, которые ищут по тэгам, эти дома находили. Сначала найдём их сами: "addr\:street=* -addr\:city" значит объект с улицей, но без тэга addr:city.

11 no city.png

Пишем имя города в тэг addr:city и код страны, addr:country=RU. Удаляем лишние тэги (addr:full, category, utilization, fixme).

12 city.png

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

13 move.png

Отключаем слои подложки и оглядываем дома в поисках ошибок. Здесь есть три дома с ошибками: 24-2 (это участок дома №24 квартиры 2, надо исправить номер на просто "24"), "дом 28" (удаляем слово "дом") и 32-2 (тоже номер квартиры). Исправляем ошибки.

14 recheck.png

Совмещаем слои данных (хотя это не обязательно), заливаем на сервер.

15 result.png

Любуемся результатом.

Ссылки

RU:Совет Российского OSM/Декларация №1 - Об адресной информации и ПКК Росреестра - не актуально.

RU:Россия/Публичная кадастровая карта