OpenStreetMap

В продолжение ввода подъездов/квартир с OsmAnd где он вручную указывал “fixme=квартиры”. Этот шаг можно упростить и автоматизировать выполнив поисковый запрос в JOSM

("building:part"=yes or building=apartments or building=residentail or building=house) - (parent "addr:flats"=*)

Вся хитрость в том, что после того как мы выбрали все “жилые” или интересные нам здания, нам нужно исключить (операция “-“) те, у которых есть ребёнок с ключом “addr:flats”.

Я не опечатался, запрос нужно читать наоборот, ребёнок: для мультиполигона - линия или точка, для линии - только точка. Ещё раз код ниже значит:

- (parent "addr:flats"=*)
  1. исключить линии, у которых есть хотя бы один ребёнок (точка) с ключом “addr:flats”=
  2. в добавок к 1, исключить мультиполигоны, у которых есть хотя бы один ребёнок (точка или линия) с ключом “addr:flats”=

PS. Любителям составления запросов предлагаю продолжить как бы выглядел запрос “выбрать жилые здания с отличным от 1, 2, 3, 4, 8 количеством детей addr:flats” в overpass такое сделать будет проще.

Discussion

Log in to leave a comment