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

Xmypblu, переделай пожалуйста запрос, что бы не нужно было указывать область/район. Что бы искал по области которая на карте справа видна.

http://overpass-turbo.eu/s/6lv

аккуратней с зумом и охватом bbox’a :wink:

Спасибо.

Крутота. Сделал вариант с {{bbox}}: http://overpass-turbo.eu/s/6lS (осторожно, зумьтесь поближе).

А где residential ?

Его не было в исходном запросе. Заменил ссылку, теперь есть.

В декабре в документацию Overpass QL добавили раздел Counting of elements

там приведен пример для подсчета аптек и вывода таблицы в режиме вывода csv
http://overpass-turbo.eu/s/6Nd

помогите переделать запрос подсчета домиков
http://overpass-turbo.eu/s/6kr
чтобы показывались населенные пункты, в которых отрисовано меньше 10 зданий

в соседней теме gryphon поделился запросом получения списка улиц по bbox
http://overpass-turbo.eu/s/aAB

я попытался сделать выборку названий автобусных остановок по указанной (Сахалинской) области
http://overpass-turbo.eu/s/aD1

Вопрос: он долго выполняется из-за того, что выборка происходит по слишком большой области… или я что-то не так написал в запросе?

Есть такое.

  1. много точек в границе (тысячи точек админ границы это уже много)
  2. пространственно большой запрос (иногда global быстрее работает чем выбор по области)

Для больших районов вариант такой есть:

  1. выбор объектов по bbox-query (относительно быстрее, 4 точки ведь)
    2.1 обрезка по шейпфайлу-границе
    2.2 ALT+SHIT+I у админ границы в JOSM (не помню что за плагин и название)

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

В overpass-turbo можно серваки менять. Там серваки Рамблера есть, в них больше ОЗУ - запроси их ночью.

Доброго времени суток!
Подскажите, можно ли с помощью OverPass API выбрать все отношения, в которые входит объект(way) с известным OSM ID. В моем случае нужно выбрать все дома находящиеся на улице с известным ID. Т.е. у меня есть ID всех улиц(переулков, площадей и т.д. внутри города). Необходимо получить все ID домов, внутри города, с их привязкой к ID улиц.

Никак не могу разобраться с тем, как при поиске задавать условия для member`s в relation.
Попробовал выполнять запрос, ограничивая bbox размерами тайла,- работает. Но для моего города таких тайлов около 90000. Не охота их в цикле перебирать.

Общая идея в рекурсии: https://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL#Recurse_.28n.2C_w.2C_r.2C_bn.2C_bw.2C_br.29 CTRL+F “role” решил бы вопрос.

“улица” - это type:relation?

Если улицы известны - рекурсия вниз по улицам
Если улицы неизвестны - рекурсия вверх по участникам попавшим в гео-регион

UPD: http://nadoloni.com/ показывает “улицы” в верхней строке, нацельте его на нужный город

В OSM улицы к домам отношениями обычно не привязывают, так что это вам всё равно не поможет. Привязка идёт по совпадению названия улицы с тегом addr:street у дома. Неоднозначности (одноимённые улицы) резолвятся с учётом полигонов населённых пунктов (place=*) и районов города (т.к. в разных районах тоже могут быть одноимённые улицы). Подробности можно подсмотреть в разных конвертерах, например в osm2mp или в геокодере openstreetmap.ru

Это зависит от страны. В Украине, например, почти вся адресация сделана через отношения associatedStreet.

@OVK, если не секрет, какая страна тебя интересует?

если я правильно понял - как-то так: http://overpass-turbo.eu/s/b3V

…но если зашла речь про отношения - скорее всего город не в России.
играть в угадайку неохота - так что ждем конкретики

Спасибо за оперативность.
Речь действительно идет об Украине (Днепропетровск). Запрос в OverPass следующий:

[out:json]; ({{bbox}});out meta;>;
вместо bbox задавал координаты тайла при 18-ом зуме.

Выдает след конструкцию:

{
“type”: “relation”,
“id”: 3284982,
“timestamp”: “2015-08-15T09:57:04Z”,
“version”: 19,
“changeset”: 33349461,
“user”: “Husim”,
“uid”: 2921272,
“members”: [
{
“type”: “way”,
“ref”: 81004247,
“role”: “house”
},
{
“type”: “way”,
“ref”: 81004311,
“role”: “house”
},

{
“type”: “way”,
“ref”: 115559938,
“role”: “street”
},

{
“type”: “node”,
“ref”: 2626410366,
“role”: “house”
}
],
“tags”: {
“name”: “Комсомольська вулиця”,
“name:en”: “Komsomolska Street”,
“name:ru”: “Комсомольская улица”,
“name:uk”: “Комсомольська вулиця”,
“type”: “associatedStreet”
}
}

Т.е. здесь ID улицы присутствует внутри одного из свойств “members”.

Попробую уточнить вопрос: можно ли как-то в OverPass задавать условие выборки по параметру “ref” узла “members” в relation типа “associatedStreet”. Выбирать все отношения, в кот. входит элемент с указанным ID внутри определенного bbox.

P.S. Или я не в ту сторону копаю и есть какой-тот другой вариант нахождения списка домов на определенной улице?

OVK,
в каком формате нужно получить данные? Или формат не имеет значения?

edward17,
Вообще-то без разницы. А из чего можно выбрать?

у меня сходу не получилось разобраться, но какие-то примеры можно посмотреть тут:
http://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_API_by_Example#QA_on_Streets.2C_Addresses_and_House_Numbers

d1g
СПАСИБО ОГРОМНОЕ!!!
http://nadoloni.com/ - это просто праздник какой-то! Спас гору времени и нервов!
Правда в ответах JSON у них какая-то путаница с названиями городов и улиц. Ну, да не беда,- распарсим, поправим.
Еще раз, благодарю! Удачи!

Подскажите, как указать в запросе выборку POI, в которых отсутствует какой-то тег? Например post_office без opening_hours. Не пустой, а именно отсутствующий