Ликбез. Как правильно мапить

Рекомендованным редактором является JOSM. Он может показаться сложноватым, но в нём всё делается эффективней и быстрее. Также JOSM содержит в себе валидатор правок, который предупреждает о распростарнённых ошибках. По JOSM можно посмотреть видео-урок.

Внимание. Если вы пришли в проект на уже нарисованную карту, то скорее всего объекты нарисованы по правильным координатам. Поэтому перед редактированием подвиньте подложку. НЕ ДВИГАЙТЕ ОБЪЕКТЫ ПОД СМЕЩЁННУЮ ПОДЛОЖКУ. В случае сомнений, смотрите GPS треки, или спрашивайте на форуме. Бинг регулярно обновляет карты, и подложка может сильно (или не сильно) “прыгать”.

Добавление улиц
Если вы не знаете названия улицы, а оно должно быть, лучше указать highway=road, чтобы было понятно, что улица не закончена.

Если улица не имеет названия, а служит для проезда, то highway=unclassified

Дворовые проезды обозначаются highway=service, living_street=yes.

Подъезды к частным домам, закрытые дороги на предприятиях, т.е. дороги ограниченного пользования highway=service, service=driveway.

Что касается остальных улиц, то принято Соглашение о классификации дорог. Очень важно ему следовать. В частности, уже на территории Украны запущен валидатор, проверяющий связность дорог на основании принятой классификации. (См. также Звʼязаність дорожнього графа)

Именование улиц

Об именовании улиц и объектов можно почитать больше на Вики.

Следует помнить, что в теге name мы ставим украинское название, в теге name:ru – русское. При этом важно придерживаться соглашений наименования, т.е. мы пишем сначала название улицы, затем вид улицы с маленькой буквы. К примеру: “Московський проспект”, “Авіахімічний провулок”, “3-й Неманський проїзд”.

Если переулок/проезд нумерованый, ставим нумерацию вначале: “2-й Петренковський проїзд”.

Если слов несколько, то с заглавной буквы в украинском и русском названиях пишется только первое слово, за исключением имён собственных. Равно и топоним (улица, проспект и т.п.) пишется с маленькой буквы.

Если улица несёт чьё-то имя, то порядок такой: “Имя Фамилия”, либо “Титул/звание Имя Фамилия”: “Короля Фрідріха Великого проспект”, “Надії Крупської провулок”. Сокращения имён также не допускаются за исключением тех случаев, когда они наличествуют на табличках домов.

Также планируется запуск робота для автоматической генерации английских названий улиц, поэтому лучше оставить тег name:en (не name:eng!) пустым, и он заполнится автоматически через некоторое время. Если же всё-таки хочется это сделать, то необходимо следовать официальному стандарту транcлитерации, и что необходимо использовать title case, т.е. каждое слово записывать с заглавной буквы.

Нумерация домов

Для высотных домов, нарисованных замкнутой линией, выбираем линию, и добавляем тег addr:housenumber, где ставим номер дома. Если номер дома с буквой, не забываем, что она в кириллице, не в латинице. Проставлять addr:street в дом не нужно. Также не нужно добавлять отдельную точку с номером.

Для частных домов ставим точку, либо если есть желание, рисуем многоугольник поменьше. Последовательности домов можно отмечать по схеме Карлсруэ. Примеры есть в Большой Рогани.

Буквы в номерах домов пишем в нижнем регистре, без дефисов и пробелов. Например, “5б”.

Добавление домов в улицу (для JOSM)

  1. Выделяем все веи для улицы, выделяем все дома. Для схемы по Карслруэ важно выделить также и отрезки с тегом addr:interpolation.

  2. Жмём на “добавляем новое отношение” (relation). Оно изображено в виде шестерёнки с плюсом

  3. Прописываем следующие теги для отношения:

    • type=associatedStreet

    • name – название отношения, лучше всего название улицы, например, “Московський проспект”

[/*] [*]В нижней части добавляем все веи и ноды в отношение[/*] [*]На всех веях -- кусках улицы ставим тип street, на всех остальных -- house[/*]

Как найду время, сделаю инструкцию со скриншотами (на украинском здесь).
Ещё рекомендую для упрощения работы пользоваться плагином relation toolbox.

Школы, детсады и больницы

Больше информации об учреждениях можно найти на Вики.

Назначаются на всю территорию, не на здание. Добавляем многоугольник, очерчивающий территорию школы. Если территория огорожена забором, то добавляем отдельный многоугольник с тегом barrier=fence.

Территория обозначается таким образом (список не полон):

  • name=Школа №17 (короткая, понятная надпись, которая будет видна на карте)

  • official_name=Спеціалізована середня школа І-ІІІ ступенів №17 (полное официальное название как в документах)

  • name:en=School 17 (короткое название по-английски, символ нумерации не ставится)

  • name:ru=Школа №17 (короткое название по-русски)

Для учебных заведений нового типа:

  • name=Багатопрофільний ліцей (учебное заведение типа “ліцей” только одно)

  • name=Гімназія №4 (в городе несколько “гимназий”, у этой нет профиля образования)

Адресация (тег addr:housenumber и членство в отношении) задаются отдельно на все корпуса школы/детсада/лицея, которые имеют свой адрес.

Ещё хорошо затем объединить все постройки и границы в relation=site, name=название учреждения. Пример.

Рисование домов (для JOSM)

Для того, чтобы было легче рисовать дома, установите плагин buildings_tools. Он существенно облегчает жизнь.

Ещё важно помнить, что крыша, которую хорошо видно на спутниковых снимках, чаще всего смещена относительно основания, и по окнчании рисования нужно весь многоугольник подвинуть так, чтобы попасть в видимый угол основания дома. Также смещение зависит от высоты дома, поэтому будьте внимательны, когда к 9-этажному дому, к примеру, примыкает одноэтажная пристройка-магазин.

  1. Рисуем дома, параллельные улице.

Жмём ‘s’ – режим выделения объектов. На улице выделяем две точки. Дома будут располагаться параллельно (или перпендикулярно) линии, проведённой через эти две точки.
Жмём ‘w’ – режим рисования зданий. Ставим курсор в угол здания, жмём левую кнопку мыши, переводи мышь в противоположный угол, видим как тянется прямоугольник для здания. Жмём левую кнопку мыши во второй раз, всё, здание готово.

У такого здания уже автоматически проставлен тег building=yes

  1. Рисуем дома сложной формы

Чаще всего такие дома состоят из нескольких квадратов, ориентированных одинаково, либо под углом. Длинные “колбасы” домов соединены меньшей ширины перемычками, часто в этих перемычках находятся тоннели.

Соответсвенно, с помощью плагина building_tools, либо вручную, обводим все такие прямоугольники здания, причём делаем это внахлёст, чтобы прямоугольники перекрывались.
Затем выделяем все прямоугольники здания (удерживая клавишу Ctrl), и жмём Shift+J (join overlapping areas). Прямоугольники объединятся в один, сложной формы. Если прямоугольники составят замкнутое пустое пространство, как к примеру, выглядят типовые школы – в виде квадрата с дыркой, то операция объединения создаст мультиполигон. Он при этом будет подкрашен фиолетовым цветом.

Иногда после объединения, особенно в случае сложных конфигураций, здание целиком или его часть, пропадает. Это глюк “объединялки”. Отмените операцию (Ctrl+z), выделите только часть прямоугольников, и объедините. Затем объедините получившиеся более сложные многоугольники, т.е. проведите операцию в несколько этапов.

Также часто после объединения создаются лишние точки на прямых. Их лучше удалить.

Иногда дом выглядит кривовато, без прямых углов. Выделяем такой дом, и жмём ‘q’ (Orthogonalize shape). Дом будет выровнен.

Часто в микрорайонах есть несколько школ, садиков или даже групп домов одинаковой конфигурации. Не забывайте о буфере обмена (Ctrl+C/Ctrl+V), и поворачиваем здание, если нужно (Ctrl+Shift+drag)

Для многоэтажек хорошо прописать этажность. Тег building:levels=X, где Х – кол-во этажей, например, 9.

POI (Points of Interest, точки интереса)

Этим термином называются все объекты, которые люди могут искать по именованию или назначению. К примеру, кафе, памятники, магазины, учебные заведения и т.п.

Если POI находится целиком в одном здании, то задаём все теги именно на этом здании. Отдельно дублировать точками не нужно.

Если в здании находится несколько POI, то на здании наносится только основное назначение, остальные же добавляются в виде точек. К примеру, театр, в помещении которого есть кафе. Ставим “театр” на здание, “кафе” на точку. Пример.

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

Если POI занимает несколько зданий, то добавьте многоугольник для всей территории, и проставьте теги на нём. Т.е. см. пункт выше, про школы и детсады.

Полезные ссылки
Список основных тегов – Установленные правила маппинга объектов.
Сайт редактора JOSM
Добавление маршрутов транспорта

Eugene

edit: Уточнил информацию по школам
edit2: Добавлена секция про POI, исправлена грамматика
edit3: Добавлена информация по смещению домов на подложках и даны ссылки на стандарты именования
edit4: Добавлена информация о building:levels, улучшено форматирование
edit5: Уточнил теги для улиц
edit6: Добавил про буквы в номерах домов
edit7: Добавил про двигание подложки
edit8: Обновил правила добавления отношения для связи улица-дом.
edit9. Добавил ссылку на соглашение о классификации дорог и валидатор связности
edit10: Уточнен тип отношения для адресации
edit11: Убрано упоминание josm megapack, добавлена ссылка на видео
edit12: Больше ссылок на Вики
edit13: Виправлено посилання на валідатор; додано посилання на повідомлення про “Зв’язаність дорожнього графу”

у улицы есть имя, у отношения есть имя (даже два)
не слишком ли много дублирования? ведь отношения, как я понимаю, и вводились чтобы не прописывать в каждом доме названия улиц
если вдруг улицу переименуют, то менять названия прийдётся аж в трёх местах. и шанс что новичок после переименования пути полезет менять отношение, по-моему, невелик

вполне возможно, что система сейчас именно так и работает, но мне такой подход кажется некорректным

Так я же пишу, что добавлять addr:street в дом не нужно. Даже жирным выделил. Веи улиц должны иметь тег addr:street, ибо иначе названия не будут видны на карте. Т.е. если улица переименуется, то делаем так: 1. Меняем addr:street в отношении, 2. Выделяем всё отношение, оставляем только веи улиц (в диалоге edit relation есть кнопка), и меняем addr:street для всех кусков за раз. Причём ситуация, когда кусков у улицы на самом деле много, в общем-то скорее исключение, чем правило.

name в отношении имеет чисто информативный характер, иначе нужно его будет открывать, чтобы понять, что за зверь. Тег addr:street в нём – это не название.

Eugene

Варіант на українській мові:
http://forum.openstreetmap.org/viewtopic.php?pid=82478#p82478

Угу, тільки там, власне, говориться про те, щоби addr:street додавати до кожного будинку. В такому разі вигода від схеми Карлсруе пропадає. Може виправите?

Eugene

Там написано

Але зміню так, щоб було більш зрозуміло.

Про школи неправильно написано. Тільки-но з’ясували в сусідній гілці :wink:
Не забувайте про http://wiki.openstreetmap.org/wiki/Uk:Howto_Map_A

Насправді, про те, як правильно заносити інформацію про школи, дитсадки, бібліотеки (та багато ще чого), особливо їх назви, треба було б прийти до якоїсь спільної домовленості і притримуватися її.

Точно, зтупив. Виправив. І то мені доведеться пройтися по Харкову ще раз.

Eugene

предлагаю вычитать и исправить различные ошибки (грамматика - “обознаяается”, “ороткая, понятная надпись”, “которткое название”, логика - “Назначаются на всю территорию, не только здание”, “Адресация … задаются отдельно на все корпуса, … которые имеют свой адрес” и так далее)

Спасибо, поправил, и добавил секцию про POI. Как я и ожидал, народ “попёр” мапить после появления Бинга, и уже начали вносить ошибки.

Eugene

PS. Думаю, топик следует дублировать в Вики. Есть мысли, на какую страницу его положить?

Но ведь в Вики уже есть бóльшая часть этой информации, пускай в разных местах. Во-вторых статью необходимо будет перевести и правильно оформить.

Предлагаю просто закрепить эту ветку, чтобы она всегда была на виду.

Думаю, в вики выложить обязательно. и добавить ссылку на нее в Ukr HowTo, чтоб новые люди могли зайти на главную и там найти всю информацию

и - спасибо, оказывается, неправильно мапил associatedStreet :slight_smile:

Дополнения:

  • опиши чуть подробнее про правила именования улиц, не совсем понятно написано, как быть с именами-фамилиями.
  • как с номерами улиц и переулков быть - Івана Підкови перший провулок, 1-й или еще как-то (тут я инфу на вики вообще не находил, если честно).
  • про нумерацию домов написать, чтоб не мапили дома 1-ж, а 1Ж (если я правильно понимаю англ.вики)

http://wiki.openstreetmap.org/wiki/Ukraine#2..D0.A1.D0.BA.D0.BE.D1.80.D0.BE.D1.87.D0.B5.D0.BD.D0.BD.D1.8F.D1.82.D0.B0_.D0.BF.D0.BE.D1.80.D1.8F.D0.B4.D0.BE.D0.BA_.D1.81.D0.BB.D1.96.D0.B2 - Загальна інформація про скорочення та порядок слів в назвах

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

Дело в том, что я потерял существенное время на то, чтобы найти эту информацию, т.к. она размазана по Вики и форумам. Часть инфы вообще была получена от andygol, Komяpa и других участников проекта. Стараюсь облегчить жизнь новичкам, ибо таких достаточно много, и уже приходится исправлять за ними, и объяснять как делать правильно.

Eugene

Насчет Karlsruhe Schema… и addr:street…

Предлагаю быть менее категоричными…
Сейчас уже есть много наработок работающих с Karlsruhe Schema в вариантах с тегами addr или с отношениями, или и с тем и тем одновременно.
Сейчас, в идеале, нужно, “для совместимости с предыдущими версиями”, чтобы адресация была правильно расписана и с помощью тегов addr: и отношениями, тогда практически любой софт будет работать корректно с этими данными.
Что по мне, пускай новичок любым способом поставит правильные названия улицы и номер дома который относится именно к этой улице, а я тихими зимними вечерами, с помощью “инспекторов” и валидаторов, все до оформлю… а если он сразу сделает и так и так - большое ему спасибо…

А вот какой способ предлагать как первичный - это вопрос…
с addr:street - просто для новичка, но немного тажелее порядок наводить
с отношениями - сложнее для новичков, но проще порядок наводить.
дилема однако…
Но еще раз подчерку, что по мне, пускай пишет как угодно, тегами, отношениями… лишь бы правильно… а то хотить по городу и перепроверять - вот это действительно тяжело…

  1. Спасибо за ликбез, а то большая часть времени уходила на поиски информации чем на рисование…

  2. хотелось бы немного подробнее про привязку домов к улице, куда правильней привязывать например в данном случае?

    2а. глянул карту OSM в ПК программах PocetGIS и CityGuide, так вроде поиск не работает с type=street ни с type=associatedStreet, а только если к дому присвоен addr:street, кого пинать по этому вопросу?

  3. думаю имеет смысл написать в шапке про тег building:levels, - пусть кто может - прописует этажность, не сложно, зато думаю полезно в дальнейшем

  4. так же было бы интересно внести ясность с тегом addr:postcode, добавлять ли к улице или к каждому дому, так как на некоторых улицах разные почтовые индексы http://www.uazip.com/12/569/10/index.html

  5. ну и по поводу домиков, желательно ли добавлять тег building=apartments для жилым домам?

PS: пока глубоко не лезу: рисую домики с тегами addr:housenumber=, building=yes, building:levels=
PS2: кто нить может поправить дорогу Нежинская-Лебедевакумача - она теперь двухсторонняя
http://openstreetbugs.schokokeks.org/?zoom=17&lat=50.43842&lon=30.43903&layers=B00T

PS3: если кому лень писать - просто дайте ссылочку на участок где все оформлено по “правилам”, с использованием нужных тегов

  1. Первый вариант правильней. Между street и associatedStreet разницы нет – они синонимы, но во втором варианте совершенно ни к чему переводить название отношения. Название и перевод пишутся не веях улицы, а name в relation служит только для удобства ссылок, в адресном поиске оно не используется. Поэтому и нужно указывать addr:street

2a. Это вопрос к конверторам – в базе данные об адресации есть

  1. Написал.

  2. С почтовым кодом, насколько я знаю, поддерживается иерархия, т.е. дом → улица → населённый пункт, иначе говоря, если на доме нет, то берётся с улицы. Соответственно, в случае разных индексов на одной улице придётся конкртетизировать, по крайней мере на некоторых из домов.

  3. Лишним это точно не будет.

На дороге нужно было просто убрать тег oneway=yes.

Eugene

Пока не следует добавлять информацию про 3D: сам автор признаёт, что это на данном этапе времени — это эксперимент.

http://wiki.openstreetmap.org/wiki/User:Jongleur/MultiLevel_Building_Shapes

Речь идёт только о стандартном building:levels, а не экспериментаторском building:part.

Eugene