Ну это, если конвертер новый и нету --target-lang=ru и --default_lang=ru.
liosha
Не подскажешь почему этажность не проставляется ?
settings-navitel.yml
################################
## Field presets
################################
--- presets
---
contacts:
Phone: %phone
WebPage: %website
Email: %email
Fax: %fax
building:
Label: %house
Floors: !!perl/code |-
{
my $tags = shift()->{tag};
my $levels = extract_number($tags->{'building:levels'});
return $levels if $levels;
$levels = int(extract_number($tags->{'building:height'} || $tags->{'height'} || 0) / 3);
return $levels || undef;
}
ways-areas-navitel.yml (переделал)
- condition:
- or:
- amenity = dormitory
- building = apartments|detached|dormitory|house|residential|terrace
- building:use = residential
action:
- action: write_polygon
type: 0x6c
Label: %house
building: yes
- action: address_poi
Спасибо!
Вместо этого нужно presets: [ building ]
И Label: можно убрать
Кто может обновить страничку в wiki? Сейчас по той инструкции конвертер даже нельзя запустить, а по форуму неудобно все выискивать
liosha, пара вопросов по новому стилю конфигурации.
- Атрибуты MP (типа Label) теперь обязательно должны быть в секции extra_fields?
- Какой способ должен давать выигрыш по скорости конвертации - shop=* плюс selector по тегу shop или же перечисление shop по отдельности?
1 - пока поддерживаются оба варианта, но желательно в extra_fields
2 - селектор должен быть сильно быстрее
Еще немножко вопросов (они же хотелки):
- Возможны ли последовательные селекторы? Что-то типа:
- condition:
- building = *
action:
- action: write_polygon
type:
selector: tag
tag: 'building:use'
residential: 0x6c
selector: tag
tag: shop
mall: 0x6e
selector: tag
tag: building
house: 0x6c
residential: 0x6c
industrial: 0x6f
_default: 0x13
presets: [ building ]
- action: address_poi
- Если какой-то тег не встречается селектору и нет селектора _default, на выход выдается примитив с типом 0x0. Возможно ли совсем пропускать значения, отсутствующие в селекторе, ничего не выдавая на выход?
Такие - нет, но можно сделать каскад:
selector: tag
tag: 'building:use'
residential: 0x6c
_else:
selector: tag
tag: shop
...
Сейчас нет, надо будет придумать.
Не хочет
Конструкция с _else не работает (тип результирующих полигонов в mp не определен):
- condition:
- building = *
- building != no
action:
- action: write_polygon
type:
selector: tag
tag: 'building:use'
residential: 0x6c
_else:
selector: tag
tag: building
house: 0x6c
_default: 0x13
presets: [ building ]
- action: address_poi
Конструкция с _empty работает, но в ней, как я понимаю, срабатывает самое внешнее условие умолчания, чего не всегда достаточно:
- condition:
- building = *
- building != no
action:
- action: write_polygon
type:
selector: tag
tag: 'building:use'
residential: 0x6c
_empty:
selector: tag
tag: building
house: 0x6c
_default: 0x13
_default: 0x13
presets: [ building ]
- action: address_poi
Т.е. _else не включает в себя _empty?
Препутал, имелся в виду _empty/_default, разумеется
на первой странице ссылка дана http://wiki.openstreetmap.org/wiki/RU:Osm2mp
Там похоже информация устарела. В разделе “Установка программы в среде Windows” первые два пункта…
Да, давно устарела. Но исправить никто не хочет
А где взять актуальное описание, как настроить и запустить эти скрипты?
Почему бы не положить какой-нибудь readme там же на SVN, рядом со скриптами?
evp
Чтобы положить readme - его для начала нужно написать, о чем liosha и говорит выше
А ещё было бы неплохо выложить туда же и все пакеты, которых нет в свежем Перле, но которые нужны конвертеру.
Это бессмысленно, потому что а) перловые модули по-разному опакечиваются для разных систем, и б) устанавливаются простыми командами из онлайн-репозиториев.
Ну я и говорю: в базовом виде это описание очевидно (чекаут кода, установка модулей, запуск), а в расширенном - никто не хочет писать это описание
При установке в списке пакетов нет Config::Std, чем его заменить можно?
Заменить нельзя. Качайте отдельно и ставьте вручную.
А лучше поставить 5.14-й перл, у него проблем с пакетами меньше