Overpass API - примеры запросов

Спасибо, но мне нужны полностью АКТУАЛЬНЫЕ данные, даже если они были изменены 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 секунд назад”? :roll_eyes:

У overpass, кстати, тоже есть запаздывание в обновлении, хоть сейчас и относительно небольшое.
Но иногда оно может измеряться часами: http://wiki.openstreetmap.org/wiki/Overpass_API/status
А были времена, когда и месяцами…

Может кто-нибудь подсказать запрос, который даст выгрузку notes, созданные определённым пользователем?

Нет такого, можно только кто последний трогал объект. Но можно отсеять на примерную дату.

way[notes]({{bbox}})(user:"Cd_spb")(changed:"2012-09-14T07:00:00Z","2012-10-14T07:01:00Z") /* (newer:"2015-01-01T00:00:00Z") */;

Спасибо.
Upd. Как выяснилось, моя задача через overpass не решается.

Вычисление к каким станция привязан выход.
https://overpass-turbo.eu/s/w5N


[out:xml][timeout:25][bbox:{{bbox}}];

( node({{bbox}})[railway=subway_entrance]; );
foreach(
  rel(bn)->.r;
  out skel;
  convert node 
  			::id = id(),
  			ref = t[ref],
  			colour = t[colour],
  			label = "Выход № " + t[ref] + " со станции: " + r.set(t[name]);
  out;
);
{{style:
node {
  text: label;
}
}}


Помогите сделать запрос, чтобы выявить населенные пункты в Нижегородской области, у которых нет полигона place. Спасибо

А такое не подойдет ??
http://resultmaps.neis-one.org/unmapped#8/54.561/43.720

дело-то в том, что в нн области все нп отмечены. И по ссылке это видно хорошо. Но отмечены они точками. Плюс хотелось бы выгрузку, которую в josm можно было бы подгрузить.
Нужны именно отсутствующие полигоны при наличии точки place

https://overpass-turbo.eu/s/wwt


[out:json][timeout:25];
// gather results
(
   way["place"]({{bbox}});
   rel["place"]({{bbox}});
);
map_to_area -> .f;
(
  node(area.f)[place];
) -> .a;
(
  node[place]({{bbox}}) -> .e;
);

(.e - .a) -> .d;

.d out geom qt;

круто, но я немного изменил запрос - для получения данных сразу по региону и поменял формат на XML, для экспорта в JOSM

http://overpass-turbo.eu/s/wwA

Спасибо

Здравствуйте, помогите сделать запрос, чтобы получить следующие данные:

  1. Если открыть карту на 14 уровне или ближе https://www.openstreetmap.org/#map=14/57.4041/67.0257
  2. Вызвать контексное меню и выбрать “Что здесь”
  3. Получить в поле Местоположение значение: Граница района Yarkovsky District и для него значение name:Ярковский район

Т.е. нужно по координатам получить значение, к какому району относится данное место.

Воспользуйтесь nominatim

ua9lif, кажется, у Вас неправильная постановка задачи. ИМХО, Ваш вопрос звучит так - “Как определить к какому району принадлежит указанная точка?”
Первое что нужно, это определить какой “район” Вас интересует - https://wiki.openstreetmap.org/wiki/RU:Tag:boundary%3Dadministrative

Спасибо за ответ, с nominatim возникла проблема:
Есть остров - https://www.openstreetmap.org/#map=16/57.3272/65.0330
Запрос nominatim https://nominatim.openstreetmap.org/reverse.php?format=json&lat=57.3265571&lon=65.031597&zoom=12 возвращает только один объект:

{“place_id”:“179297093”,“licence”:“Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright”,“osm_type”:“relation”,“osm_id”:“897988”,“lat”:“57.2068608”,“lon”:“65.5398027882382”,“display_name”:“Центральный административный округ, Тюмень, городской округ Тюмень, Тюменская область, Уральский федеральный округ, 625000, РФ”,“address”:{“city_district”:“Центральный административный округ”,“city”:“Тюмень”,“county”:“городской округ Тюмень”,“state”:“Тюменская область”,“postcode”:“625000”,“country”:“РФ”,“country_code”:“ru”},“boundingbox”:[“57.1359188”,“57.277846”,“65.398993”,“65.672417”]}

Хотя должен быть Тюменский район и который описан https://www.openstreetmap.org/relation/1660242#map=11/57.2759/65.1476

Мне нужен admin_level=6.

Потому что он работает немного по другой логике. Он ищет ближайший идентифицируемый объект (просто в чистом поле не к чему привязаться) и он оказывается где-то в городском округе, поэтому и адрес выдаёт его.