В общем, я примерно понял ситуацию, пойду программировать.
Остались два вопроса.
В базе OSM я вижу много объектов вида “type”: “area”, “tags”.“place”: “city”.
Ведь это границы городов и меня они не должны интересовать?
Если русское название для населенного пункта не найдено, могу ли я использовать транскрипцию для известных языков?
Насколько я понял, не могу:
Плохо, что при этом получится множество объектов без русского наименования и его придется придумывать на этапе отображения. Это значит, что каждый движок должен содержать правила транскрипции для десятков языков. Мне известны правила (и есть код) для шестнадцати. На практике это значит, что транскрипции не будет.
Хотя, на странице multilingual names я вижу примеры, которые явно говорят о необходимости транскрипции (но в сторону от местного названия к международному — не наш случай):
Example:
name=: name in Bulgarian (булевард Източен)
int_name=: transcribed name (bulevard Iztochen)
name:en= (optional): Iztochen Blvd.
Про словарь
Его и с викизнания распарсить довольно сложно… К тому же, непонятно, есть ли в этом смысл, т.к. сам словарь получен путем транскрибирования местных названий:
place = city — это территория населенного пункта, а ни в коем случае не граница. Часто рисуется на глаз по видимому на спутниковых снимках краю застройки.
Все границы у нас boundary.
Вижу области (area), в которых одновременно есть теги “place”: “city” и “type”: “boundary”.
Скажите, фактически ставится ли точка (node) для каждого города? Или бывают города, у которых только территория/граница?
Точка нужна для определения таких штук, как координаты города и расстояние от города до других точек. С area это неудобно делать.
Вижу в форуме дискуссии на эту тему. Там, как обычно, у каждого есть свое мнение и нет способа выяснить, как же в итоге нужно делать.
Причем это берется на одной странице (ссылка выше).
Переход на страницу неоднозначности будет говорить об ошибке в самой статье. (Как то городок в Британии и железная дорога в Китае.)
Ссылка должна однозначно определять . К примеру Грузия
Для анг. Вики четко определена ссылка [[en:Georgia (country)]] заметьте страна а не штат.
Ну и раз пошла такая пьянка может и теги wikipedia=en: сразу заполнить. Один черт данные те же самые
У себя - используйте как хотите, но только в базу это вносить не нужно.
Не на этапе отображения, а на этапе конвертации. Там это делается элементарно через плугин к osmosis-у. Кроме того, есть разные правила даже для одного языка, сегодня нужен один вариант, а завтра понадобился другой - опять базу курочить?
Какие языки этот плугин может транскрибировать на русский?
Ну, это тупик. Так вы навсегда останетесь без русских названий, т.к. во всех печатных справочниках названия появляются с использованием таких непостоянных правил. Дело ваше, конечно. Мне без разницы, на чьей стороне будет происходить транскрибирование.
Если название на русском устоялось - разумеется его надо вносить в базу как name:ru. А если нет - то лучше я сам выберу каким алгоритмом его формировать (и из какого языка).
Автоматическую транскрипцию деревень и сел точно не стоит лить в базу. Если англичанам к примеру понядабятся транскрибированные названия малых городов России я думаю они лучше сделают.
Его надо написать Но если вы опубликуете используемые вами правила транскрибирования для разных языков - можно будет закатать это в плагин для осмосиса.
Хочу обратить внимание на аспект: Что населённые пункты, могут иметь точку с тэгами города/деревни, а так же с такими же тэгами на полигоне. Вполне вероятно, что полигон может быть отношением. Так что вносить изменения возможно нужно будет аж в три места:D
По Украине для всех населенных пунктов у которых не было name:en это название было сгенерировано ботом. По точно тем же правилам транскрипции что используются УкраАвтоДором для обозначения английских названий населенных пунктов на дорожных знаках. Думаю, что среди англичан не найдутся те кто знают эти правила. Хранение этих автоматически полученных данных позволяет всем пользоваться этой информацией и не выискивать в интернете а как должно быть или выдумывать свой велосипед. http://www.openstreetmap.org/?lat=52.106&lon=31.835&zoom=11&layers=Q
Определена транскрипция Украинский → Латинница, не более того (заметьте, латинница, а не английский или немецкий). Даже на русский язык так переводить нельзя. И таки да, правила официальные, из постановления Кабинета Министров Украины.
Я в любом случае говорю только про города (city — в первую очередь, town — во вторую). Это десятки тысяч, а не сотни. Всё это можно руками перебрать.
Это сложная задача. Я собираюсь использовать Транскриптор, но там довольно мало языков. И его исходники я опубликовать не могу.
Дело в том, что на данный момент я считаю неправильным делать транскрипцию английского названия, которая уже является транскрипцией или транслитерацией исходного названия. Но нужно получше изучить вопрос.