
~Jhellico's Diary
Recent diary entries
Карта розміщення банкоматів Приватбанку (на основі даних офіційного сайту) - http://jhellico.cartodb.com/tables/privatbank/embed_map?title=true&description=true
[dimonster:] (http://forum.openstreetmap.org/viewtopic.php?pid=305091#p305091)
Поэтому практически выведены такие правила адресации:
Тегирование домиков:
1) теги addr:country, addr:city, addr:street, addr:region, addr:district и прочие addr:чегототам на домах НЕ ИСПОЛЬЗУЮТСЯ! Кроме addr:housenumber (или addr:housename, но он редко где нужен)
2) привызывание домиков к улицам, (а при адресации по микрорайонам - к микрорайонам) делается с помощью релейшенов (отношений) типа associatedStreet или street. (см. ниже)
3) остальные теги домиков пишем как обычно (building=yes или что-то иное, этажность, amenity и др.)
4) если один домик официально имеет несколько адресов, например, находится на пересечении улиц Иванова и Петрова и имеет два адреса: “Иванова улица, 1” и “Петрова улица, 14”, то на контуре домика пишем тот номер дома по тому адресу, который используется чаще. Потом ставим внутри контура точку, пишем на ней building=yes и пишем номер дома по второму адресу. Затем контур дома включаем в отношение для улицы Иванова, а точку с номером включаем в отношение для улицы Петрова.
Получаем:
-
Полигон дома с тегами building=yes, addr:housenumber=1, включен в отношение улицы Иванова
-
Точку с тегами building=yes, addr:housenumber=14, включен в отношение улицы Петрова
Вопрос: Почему нельзя поставить два номера через дробь на контур дома и включить дом в два отношения? Ответ: Потому что тогда непонятно к какой улице относится какой номер дома.
Вопрос: А почему так получается, что для одного домика нужно два объекта - контур и точка. Дом-то один. Ответ: Дом один, а адресов два. В реальности само наличие двойных (тройных, четверных) адресов - это извращение и маразм. Нечто вроде одного человека с двумя паспортами на разные имена и фамилии. Поэтому и в OSM это явление отображается извращёнными средствами и кажется маразмом.
Тегирование линий улиц
1) Линии улицы подписываем по названию, используя теги name, name:ru, name:uk и другие name:xx
2) В теге name пишем название улицы на украинском языке (кроме Крыма - там отдельный разговор).
3) В тегах name:ru, name:uk и прочих name:xx пишем название улицы соответственно на русском, украинском и xx-ском языках
4) Название улицы на английском языке (name:en), если оно получено простой транскрипцией, можете не писать. Его потом автоматически проставит робот “_sevbot”.
3) Статусную часть названия (слова вулиця, улица, Street, провулок, переулок, Lane и т.д.) пишем обязательно, указываем полностью, без сокращений и в конце названия. Например: name=Радянська вулиця name:ru=Советская улица name:uk=Радянська вулиця
Вопрос: Почему не “ул. Советская” или “Советская ул.”? Ответ: Для однообразия. Это важно для компьютера. И так меньше ошибок.
Вопрос: Почему надо указывать одно и то же название и в name, и в name:uk ? Ответ: Чтобы после “языковых войн” можно было бы всё-таки получить из базы название на украинском языке. Впрочем, в тех местах, где “войн правок” не происходит, можно ограничится украинским названием в name.
Вопрос: А если я не знаю украинского названия? Ответ: Не знаешь - не пиши. Будет улица без тега name. Либо спроси на форуме. Либо узнай из официальных документов.
Вопрос: А я хочу видеть на карте названия на русском языке. А на osm.org выдаёт украинские! Что делать? Ответ: Используйте рендер www.toolserver.org. Например, на http://openstreetmap.org.ua/ мы сделали для выбора языка кнопки name:uk, name:ru. Или ждите, когда подобный инструмент появится на главной странице osm.org (насколько я знаю, работы по этой теме ведутся).
Привязка домиков к улицам (или микрорайонам) с помощью релейшенов (отношений):
1) выбираем мышкой все линии с тегом highway, относящиеся к данной улице, а также все домики, относящиеся к данной улице
2) создаём отношение
В тегах отношения (вверху) указываем тип type=associatedStreet (можно использовать и тип street, но желательно, чтобы в пределах одного населённого пункта использовался только один тип).
В тегах отношения указываем названия улиц на разных языках. Так же, как это делали на линиях улиц. name=Радянська вулиця name:ru=Советская улица name:uk=Радянська вулиця Добавляем в отношение участников (выбранные нами линии улицы и домики). После добавления прописываем для каждого участника отношения его роли. Для линии улицы пишем роль street, а для домика роль house.
Если домики адресуются не по улицам (“Советская улица, 72”) а по микрорайонам (“Юбилейный микрорайон, 72), то в тегах отношения пишем названия микрорайона на разных языках.
name=Ювілейний мікрорайон
name:ru=Юбилейный микрорайон
name:uk=Ювілейний мікрорайон
При адресации по микрорайонам в релейшене отсутствуют учасники с ролью street. Думаю, можно включить на роль street мелкие проезды внутри микроайона, чтобы JOSM не ругался на отсутствие участников с ролью street. Учтите, что в программе СитиГид адресация по микрорайонам всё равно не поддерживается.
3) Если в населённом пункте имеются улицы - “однофамильцы” в разных районах, то в теги отношений для таких улиц добавляем тег addr:suburb с названием района города, в котором расположена эта улица. Не забудьте обозначить сам район точкой или полигоном с тегом place=suburb и названиями.
4) для одной улицы (микрорайона) создаём только одно отношение. Даже если улица имеет разрывы или состоит из нескольких линий. Если кто создал два отношения для одной и той же улицы, то надо убедиться, что это одна и та же улица, а не разные одноимённые улицы в разных районах, после чего выделить всех членов второго отношения, добавить их в первое, не допуская дубли, после чего второе отношение удалить. Потом выделить всех членов первого отношения и проверить правильность.
Вопрос: А зачем названия прописывать дважды: сначала на линиях улиц, а потом в релейшене? Ответ: Потому что конвертер не хочет брать названия улиц из тегов линий улиц. Поэтому названия на линиях улиц пишутся для того, чтобы их было видно на карте, а названия в тегах релейшена пишутся для базы адресного поиска. Вопрос: А нельзя ли написать на домике addr:street=Радянська вулиця, на линиях улицы написать name=Радянська вулиця, name:ru=Советская улица. А потом заставить конвертер искать улицу с названием “Радянська вулиця”, чтобы взять с неё русскоязычное название? Ответ: Нельзя! Конвертер этого не умеет и не будет. Вопрос: А можно использовать теги типа addr:street:ru Ответ: Нет. Во-первых, это неудобно. Во-вторых, вызовет кучу возможных ошибок. Например, если на домике забыли написать название улицы на каком-то языке, то при создании карты на этом языке он выпадет из поиска.
Привязка улицы к населённому пункту
1) никаких тегов для привязки улицы, дома или микрорайона к городу (деревне) дописывать НЕ НУЖНО. Необходимо и достаточно, чтобы линии улицы и все домики находились целиком ВНУТРИ границы населённого пункта. Вопрос:А если укажу? Ответ: Тогда в базе адресного поиска может появиться два города. Причём все дома будут в одном городе, а ваш домик в другом.
Тегирование населённых пунктов и привязка улиц к населённым пунктам:
1) населённый пункт обозначается точкой в условном центре населённого пункта, а также границой территории населённого пункта. При наличии в населённом пункте именованых улиц границу рисовать обязательно!
2) точка-центр и граница (помимо прочих тегов) должны иметь теги place и нзвания на разных языках
Например,
place=town
name=Іванівка
name:ru=Ивановка
name:uk=Іванівка