RU:Catalog
Jump to navigation
Jump to search
Эта статья является неполной. Вы можете помочь проекту OpenStreetMap, дополнив её.
Каталог объектов OSM призван для организации каталога объектов OSM, в том числе и POI, унифицирующий их определение, иерархию и перевод. Предполагаемое использование:
- Полный перевод тегов, для понимания обычного человека
- Конвертация в пресеты JOSM
- Создания иерархии элементов для различных каталогов/списков и её однородность
- Организации списка "правильных" тегов, для пользователей и валидаторов
Обсуждение http://forum.openstreetmap.org/viewtopic.php?id=16704
GitHub https://github.com/ErshKUS/osmCatalog
Варианты:
Описание схемы
Каталог
Наименование | Обязательный | Описание |
---|---|---|
name | да | Уникальное имя объекта. Только буквы английского алфавита, цифры и знак подчеркивания. |
parent | нет | Указание на родителя. Допускается указание нескольких, тогда первый родитель будет основным. |
tags | нет | Сочетание тегов описывающих элемент. Может быть несколько, условие "И" (т.е. должны совпадать все теги). В качестве значения тега можно использовать *. |
moretags | нет | Дополнительные информационные теги объекта. |
poi | да | Является ли объект POI. Если true, то подразумевается наличие тегов: name, opening_hours, operator, brand, phone, fax, website |
type | нет | Для типа объекта: node, way, area, relation |
moretags:
Наименование | Обязательный | Описание |
---|---|---|
class | да | Уникальное имя, нужно для перевода. Только буквы английского алфавита, цифры и знак подчеркивания. |
tag | да | Ключ тега, которым обозначается |
type | да | Класс тега: period - периоды времени (opening_hours); number - количественное значение (lanes); namelang - имена, имеющие переводы на языки (name:ru); translate - полностью переводимые значения тега |
пример в формате json:
[ { "name": "trade", "parent": [""], "tags": {}, "moretags": {}, "poi": true, "type": [""] }, { "name": "shop_supermarket", "parent": ["trade"], "tags": {"shop": "supermarket"}, "moretags": { "toilets": { "class": "boolean", "tag": "toilets", "type": "translate" } }, "poi": true, "type": ["node", "area"] }, { "name": "services", "parent": [""], "tags": {}, "moretags": {}, "poi": true, "type": [""] }, { "name": "amenity_bank", "parent": ["services"], "tags": {"amenity": "bank"}, "moretags": { "atm": { "class": "boolean", "tag": "atm", "type": "translate" }, "atm2": { "class": "boolean", "tag": "atm2", "type": "translate" } }, "poi": true, "type": ["node", "area"] }, { "name": "amenity_toilets", "parent": ["services"], "tags": {"amenity": "toilets"}, "moretags": {} }, "poi": true, "type": ["node", "area"] } ]
Борьба с общими и уточняющими тегами категорий:
- выстраивать перебор таким образом, что если есть две категории с одинаковыми тегами ставить на первое место категорию где есть дополнительные теги
- проходить скриптом каталог, с расставление исключающих тегов, например для highway_service исключение highway_living_street 'highway=>service, -living_street=>*'
Словарь
Наименование | Обязательный | Описание |
---|---|---|
language | да | Язык перевода. Только двухбуквенное. |
catalog | да | Перевод объектов каталога. name-имя, description-описание, link-сайт с подробным описанием, keywords-ключевые слова |
moretags | нет | Перевод дополнительный информационных тегов. |
class | да | Перевод типов значений. |
пример в формате json:
{ "language": "ru", "catalog": { "trade": {"name": "Торговля", "description": "", "link": "", "keywords": ""}, "services": {"name": "Услуги", "description": "", "link": "", "keywords": ""}, "shop_supermarket": {"name": "Супермаркет", "description": "", "link": "", "keywords": ""}, "amenity_bank": {"name": "Банк", "description": "", "link": "", "keywords": ""} "amenity_toilets": {"name": "Туалет", "description": "", "link": "", "keywords": ""} }, "moretags": { "atm": {"name": "Банкомат", "description": "", "link": ""}, "atm2": {"name": "Банкомат2", "description": "", "link": ""}, "toilets": {"name": "Наличие туалета", "description": "", "link": ""} }, "class": { "null": "неизвестно", "boolean": { "true": "да", "false": "нет", "yes": "да", "no": "нет" } } }
классификация:
- непереводимое значение - как есть, например, скорость
- время - приведение типа "Mo-Su 09:00-21:00" в нужную локализацию
- ссылка - тоже не переводимое, расширение типа
- локализованный текст (:ru, :en, ...) - ищется сначало соответствующий локали, иначе без :xx
- переводимое значение - yes, no и т.д.
- переводимое сочетание тег=значение - необходимость под вопросом