Хм… Если это тот 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?
type=boundary никакого отношения к населённым пунктам не имеет.
Ну это смотря что за страна.
Вы это литовцам расскажите Я тут попытался наделать мультиполигонов с place и name, получил откат с комментарием Incorrect and duplicate info. В дальнейшей беседе мне была выдана следующая инфа:
Вопрос остается в силе - Где-то в конфигах можно задать что считать полигоном НП для inside_city?
Иначе ограничения скорости расставляются не правильно.
в addressing.yml есть
- level: city
tags: [ city, town, hamlet ]
area_condition: place = city|town|village|hamlet|allotments|isolated_dwelling
там же есть вариант для региона
- level: region
tags: [ region, state ]
area_condition:
and:
- type = multipolygon|boundary
- boundary = administrative
- admin_level = 4
вроде больше нигде не встречается
попробовать добавить по
- admin_level = 8
Понял, странные они, ну да ладно, воспользуйтесь тогда опцией osmconvert
--modify-tags=<tag_modification_list>
и добавьте на границы place.
Это конфиг cfg/preload-areas.yml
- condition:
- place = *
action:
- action: load_cityside_area
Это я пробовал, оказывает влияние только на адресацию.
Спасибо, обязательно попробую.