То что вы дали - абсолютно не то. Разрезанную область невозможно гарантированно правильно закрасить. Потому что нет информации в какую сторону её закрашивать. Даже если закрашивать по направлению внутрь выпуклости, то всё-равно нет гарантий, что часть линии за пределами bbox не будет являться вогнутость по отношению к общему контуру всей области.
Все области попавшие хоть какой-нибудь своей частью в bbox мне нужны полностью, кроме administrative. В этом смысл моего изначального вопроса.
ps
Я тут только что заметил, что и мой запрос выше тоже не всегда корректно работает
выгружайте дамп с гислаба, как вам советовали выше, и вырезайте нужный кусок osmconvert, он умеет полностью сохранять полигоны, которые зацепило границей обрезки
Спасибо, но мне нужны полностью АКТУАЛЬНЫЕ данные, даже если они были изменены 5 секунд назад. Дампы недели или месяца назад (и даже вчерашние) не годятся. Да и целые города выгружать и обработать не может выбранная программная среда рендера. Годится только url запрос.
Пока наилучший результат мне даёт:
(
(way({{bbox}})[railway!~“.”][highway!~“.”][waterway!~“.”];rel(bw)[type!=“boundary”];way(r)[railway!~“.”][highway!~“.”][waterway!~“.”];<;>;);
(way({{bbox}})[railway!~“.”][highway!~“.”][waterway!~“.”];node(w);rel(bn)[type!=“boundary”];way(r)[railway!~“.”][highway!~“.”][waterway!~“.”];<;>;);
(way({{bbox}})[railway];node(w););
(way({{bbox}})[highway];node(w););
(way({{bbox}})[waterway];node(w););
);out;
Остаётся лишь проблема, которая была и в прошлом запросе - если у какой-либо области все точки и линии находятся вокруг bbox (то есть при правильном рендеринге bbox должен закрашиваться полностью) то такая область теряется. Случается это редко, но желательно тоже пофиксить, поэтому пока не могу пока сдаться или признать запрос совершенным.
Ещё есть проблема океанов(говорю для тех кто возможно найдёт этот запрос), но тут в моём случае по условию задачи допустимо подгрузить geojson с водой нужной местности.
Есть ежеминутные обновления дампов, обновляйтесь и будут вам актуальные данные. А строить систему на Overpass, может оказаться чревато, малые лимиты и вообще можно и бан схлапотать.
Ничего не мешает вырезать из дампа нужный вам поселок и обновлять только его. Хоть раз в минуту.
А в лимиты оверпаса вы упретесь очень быстро: всего пара сотен простых запросов и следующие несколько часов вы будете получать 403 с сервера.
Ни о каких сотнях речи не идёт. Мне пары штук в день будет достаточно. И “рабочие дни” будут в лучшем случае раз в неделю.
Я в курсе существования дампов и если бы приоритет был на большом числе запросов то использовал бы их без сомнений.
Тогда на кой хрен вам актуальность “5 секунд назад”?
У overpass, кстати, тоже есть запаздывание в обновлении, хоть сейчас и относительно небольшое.
Но иногда оно может измеряться часами: http://wiki.openstreetmap.org/wiki/Overpass_API/status
А были времена, когда и месяцами…
дело-то в том, что в нн области все нп отмечены. И по ссылке это видно хорошо. Но отмечены они точками. Плюс хотелось бы выгрузку, которую в josm можно было бы подгрузить.
Нужны именно отсутствующие полигоны при наличии точки place
ua9lif, кажется, у Вас неправильная постановка задачи. ИМХО, Ваш вопрос звучит так - “Как определить к какому району принадлежит указанная точка?”
Первое что нужно, это определить какой “район” Вас интересует - https://wiki.openstreetmap.org/wiki/RU:Tag:boundary%3Dadministrative