Хочу представить вашему вниманию свою разработку - Валидатор водных объектов по данным Государственного водного реестра.
Находится он по адресу
http://vwo.osm.rambler.ru
Для сравнения отбираются отношения и линии с тегами natural=water, landuse=reservoir (водоемы); линии с тегами waterway=river, waterway=stream, waterway=canal (водные пути).
Первоначальное сопоставление данных происходит по тегу gvr:code=, затем по name=. Водные пути предварительно объединяются в цепочки: конечная точка линии водного пути должна являться начальной точкой следущей линии этого водного пути. При сопоставлении также учитывается, куда впадает данный водный путь. Например в базе ОСМ есть 2 реки с именем Ольховка, одна из них впадает в реку Коса, другая в реку Лупья. Если Коса и Лупья сопоставлены с водным реестром и в водном реестре содержится информация о том, что у Косы и Лупья есть притоки с именем Ольховка, обе реки Ольховка также будут успешно сопоставлены.
Зеленый цвет означает удачно сопоставленные объекты - с обоих сторон (в водном реестре и в OSM) есть только один объект с таким gvr:code (name) или их несколько, но помогло сопоставление по месту впадения.
Желтый цвет означает что однозначно сопоставить водный объект не удалось - в водном реестре и/или базе OSM есть несколько объектов с таким gvr:code (name) и по месту впадения реки однозначно определить ее не удалось (либо река никуда не впадает, а “висит” в воздухе). Нажав на ссылку !!!, можно увидеть список всех этих объектов.
Красный цвет означает ошибки топологии. Топология на данный момент проверяется для случая впадения одной реки в другую или водоем. Обязательным условием является наличие в базе водного реестра записи о том, куда впадает данная река (колонка “Впадает в” должна быть заполненной). Нажав на ссылку !!!, можно увидеть объяснение данной ошибки: куда должна впадать река по данным ГВР и куда она впадает по данным ОСМ.
Для устранения неоднозачности реки следует в первую очередь устранить неоднозначность реки или водоема, в которую/ый она впадает (рекурсивно для рек). Скорее всего, после этого неоднозначность устранится. Если это не помогает:
- Если у реки есть несколько притоков с одинаковым именем, однозначно нужно проставить тег gvr:code.
- Для рек, впадающих в моря/заливы, помогает только gvr:code.
- Если река “висит” в воздухе, надо продлить ее до впадения в другую реку, водоем либо соединения с самой собой.
- Если водный объект отсутствует в водном реестре, но есть другие объекты с таким же именем, на отсутствующий объект необходимо установить тег gvr:code=0. Объекты с таким тегом валидатор игнорирует и не пытается сопоставлять с водным реестром.
Линии водных путей (рек, ручьев, каналов) должны выстраиваться в цепочку, то есть конечная точка линии должна быть начальной для следующей линии. Допускается наличие проток (параллельных русел), но они должны быть нарисованы по определенным правилам. Вот примеры, как нужно и как не нужно рисовать:
Разными цветами обозначены отдельные линии реки, стрелкой направление течения. Основной смысл в том, что:
- Если линия заходит в одну из веток в месте разветвления, она же (или линия продолжающая ее) должна выйти в месте слияния. Недопустимо, чтобы в месте слияния выходила ветка, начавшаяся в месте разветвления.
- Если в месте разветвления начинаются 2 новые линии, они (или линии, продолжающие их) должны закончиться в месте слияния. Недопустимо, чтобы одна из них пошла дальше.
Внутри разветвления линия реки может дробиться на произвольное число линий, может быть одной линией, главное чтобы соблюдались эти 2 условия.
В варианте 1 валидатор будет считать синюю линию основной, голубую - протокой. В варианте 2 основной линией может оказаться как зеленая, так и голубая линия, в зависимости от того, куда пойдет валидатор при построении цепочки.
Также допускается наличие рукавов устья, то есть линий, начинающихся от основной лини реки и не впадающих обратно в эту реку.
Как протоки, так и рукава могут начинаться/заканчиваться не на основной линии реки, а на другой/ом протоке/рукаве.
Если водный объект в валидаторе имеет наименование, отличающееся от общепринятого и дополнительное наименование тоже отличается от общепринятого, он не может быть распознан по имени (установка тега alt_name не поможет, он не обрабатывается валидатором). Можно проставить ему тег gvr:code, чтобы он опознался по коду. Но лучше исправить наименование в валидаторе, для этого нажмите на картинку в колонке “Заметили ошибку?” и укажите правильное, на ваш взгляд, наименование (существующее наименование при этом желательно перенести в дополнительное). Желательно привести ссылку, где можно убедиться в том, что указанное вами наименование верное.
Таким же образом (через “Заметили ошибку?”) можно отправить запрос на редактирование любых других данных водного объекта, например указать водный объект, в который он впадает или исправить сторону впадения и т.д. Основное требование - обоснование правильности ваших данных.
При отправке запроса на редактирование можно указать e-mail, на который после одобрения/отклонения придет сообщение с перечислением одобренных/отклоненных объектов.
Вопросы, пожелания, предложения по улучшению дизайна, функциональности, алгоритмов сравнения и проверки пишите в этой теме.