А можно попросить чуть подробнее указать, где и что подправить, чтобы адресацию отключить?
Спасибо.
Записать два отдельных условия: для домиков с адресами и без
Конгениально! Я в восхищении, краткость - сестра таланта.
Лёша, если бы в природе существовал актуальный мануал, расписывающий правила и условия, вопросов бы не возникало.
Я правильно понял, что копать нужно в ways-area-common.yml?
- condition:
- building = *
action:
- action: write_polygon
type: 0x13
presets: [ building ]
level_h: 1
- action: address_poi
и как тут разделить домики с addr:street и без нее?
Спасибо.
Да, вот эту запись разделить на две: одну с addr:street=, другую addr:street!=
Спасибо, попробую.
Вот сделал так:
- condition:
- building = *
- addr:street != *
action:
- action: write_polygon
type: 0x13
presets: [ building ]
level_h: 1
# - action: address_poi
- condition:
- building = *
- addr:street = *
action:
- action: write_polygon
type: 0x13
presets: [ building ]
level_h: 1
- action: address_poi
один хрен, если в осм у домика нет addr:street, то osm2mp в StreetDesc лепит название города.
Кто может помочь?
presets: [ building ] тоже надо отключить
UPD
Сорри, наврал.
Действительно, при наличии addr:housenumber адрес всегда вычисляется.
Тогда да, конфигами такое не получится
Хм… Если это тот preset для зданий, что в setting-mp.yml, то там только Label, и Floors… не считая ситигидовых фиговин.
Ладно, попробую без presets.
И что тогда делать?
И еще один вопрос:
Если у домика есть набор из addr:housenumber, addr:street и addr:suburb, то в .mp у этого домика StreetDesc получается как “addr:street (addr:suburb)”. В результате валидатор заносит этот домик в ошибки “улица не найдена”.
Это можно вылечить?
Я не совсем понимаю, чего хочется в результате получить.
Как-то отдельно выделить домики без addr:street?
А что тут не так? Зачем лечить?
Да. Чтобы валидатор показывал ошибку типа 2 “улица не задана”. http://peirce.gis-lab.info/qa/RU-MOS/addr/2
Сейчас получается такая вот фигня:
Домик http://www.openstreetmap.org/way/230836833#map=19/50.64864/136.92987&layers=D
В .mp у него получается так:
Валидатор ругается, что такой улицы нет поблизости.
Нужно убрать добавление suburb.
Конвертим под валидатор?
Можно, например, добвавить в mp дополнительный ключ
- condition:
- building = *
action:
- action: write_polygon
type: 0x13
presets: [ building ]
level_h: 1
extra_fields:
HouseWithoutAddrStreet:
selector: if
condition: addr:street != *
then: Yes
else: No
А suburb в данном случае надо убирать с объекта: он не является частью адреса
Ну почему? Ведь добавление названия города в адрес при отсутствии улицы - неправильное поведение конвертора.
А можно ли все-таки сделать так, чтобы suburb не прилеплялся к улице? Или это тоже захаркодено?
Это правильное поведение.
Адрес типа “Уездный район, деревня Гадюкино, дом 18Б” - вполне годный и часто встречающийся.
Но потребители mp-формата требуют StreetDesc, поэтому приходится там дублировать “деревня Гадюкино”.
Можно вообще убрать suburb в cfg/addressing.yml
ОК, Спасибо, Лёша.
Я еще покопаюсь в конфигах, может чего и получится.
Лёша, а как бы допилить конвертер в шейпы. Ведь совсем чуток осталось ;).
А вот еще спрошу: а как osm2mp определяет condition: inside_city?
По каким критериям?
Судя по всему, по попаданию внутрь полигона населенного пункта.
А если у населенного пункта нет полигона? А есть только релейшн с admin_level, boundary=administrative, type=boundary.
Где-то в конфигах можно задать что считать полигоном НП для inside_city?