OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#126 2017-11-14 12:06:39

Cd_spb
Member
From: Санкт-Петербург
Registered: 2011-11-04
Posts: 1,252

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

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

Last edited by Cd_spb (2017-11-14 18:58:55)

Offline

#127 2018-02-11 13:49:26

freeExec
Moderator
From: Ульяновск,Модератор всех слоёв
Registered: 2012-07-31
Posts: 7,597

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

Вычисление к каким станция привязан выход.
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;
}
}}

Offline

#128 2018-02-26 12:51:04

Antisida
Member
From: Нижний Новгород
Registered: 2011-01-15
Posts: 903

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

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

Offline

#129 2018-02-26 13:08:49

pfg21
Member
From: Чебоксары
Registered: 2012-10-18
Posts: 3,195

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

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

Offline

#130 2018-02-26 13:45:00

Antisida
Member
From: Нижний Новгород
Registered: 2011-01-15
Posts: 903

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

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

Offline

#131 2018-02-26 14:37:06

freeExec
Moderator
From: Ульяновск,Модератор всех слоёв
Registered: 2012-07-31
Posts: 7,597

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

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;

Offline

#132 2018-02-26 15:11:55

Xmypblu
Member
From: Москва
Registered: 2011-01-18
Posts: 410

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

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

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


Последняя заметка в дневниках: Шикотан вам в ленту

Offline

#133 2018-02-26 18:48:23

Antisida
Member
From: Нижний Новгород
Registered: 2011-01-15
Posts: 903

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

Спасибо

Offline

#134 2018-04-12 09:13:58

ua9lif
New Member
Registered: 2018-04-12
Posts: 2

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

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

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

Offline

#135 2018-04-12 14:00:34

freeExec
Moderator
From: Ульяновск,Модератор всех слоёв
Registered: 2012-07-31
Posts: 7,597

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

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

Offline

#136 2018-04-12 14:04:52

Cd_spb
Member
From: Санкт-Петербург
Registered: 2011-11-04
Posts: 1,252

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

ua9lif, кажется,  у Вас неправильная постановка задачи. ИМХО, Ваш вопрос звучит так - "Как определить к какому _району_ принадлежит указанная точка?"
Первое что нужно, это определить какой "район" Вас интересует - https://wiki.openstreetmap.org/wiki/RU: … nistrative

Offline

#137 2018-04-18 04:58:03

ua9lif
New Member
Registered: 2018-04-12
Posts: 2

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

Спасибо за ответ, с nominatim возникла проблема:
Есть остров - https://www.openstreetmap.org/#map=16/57.3272/65.0330
Запрос nominatim https://nominatim.openstreetmap.org/rev … 97&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/ … 59/65.1476

Первое что нужно, это определить какой "район" Вас интересует - https://wiki.openstreetmap.org/wiki/RU: … nistrative

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

Offline

#138 2018-04-18 09:51:25

freeExec
Moderator
From: Ульяновск,Модератор всех слоёв
Registered: 2012-07-31
Posts: 7,597

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

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

Offline

#139 2018-05-20 06:46:52

Xmypblu
Member
From: Москва
Registered: 2011-01-18
Posts: 410

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

по мотивам темы про "landuse=military" попытался составить запрос:
http://overpass-turbo.eu/s/yWN

но для полного счастья не хватает условия - выбрать объекты у которых номер версии больше 1, то есть после создания были изменения.
Ранее тут писали что с историей объектов overpass не работает, но в последнее время вроде были большие изменения, а вдруг теперь и это можно?

Хотя это не поможет в "особо хитром случае", но как вариант простого просмотра и для составления списка пакетов правок может сгодится.

Возможно кто-то знает лучший способ мониторинга изменения тега "military"?

P.S. если у кого запрос не пашет, я в настройках выбрал сервер https://overpass.kumi.systems/api/
P.P.S. надо как-нибудь собраться и составить таблицу - как подписывают и комментируют объекты "military" в России... думаю будет весело.


Последняя заметка в дневниках: Шикотан вам в ленту

Offline

#140 2018-06-14 13:26:52

mini-me
Member
Registered: 2018-05-26
Posts: 6

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

Подскажите пожалуйста, как найти два highway=footway, соединённые одной или двумя highway=service общей длиной не более 50 метров?

Offline

#141 2018-07-13 07:10:40

parukhin
Member
Registered: 2013-01-29
Posts: 329

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

Коллеги, подскажите, можно найти отдельную линию из двух точек на одной из точек которой стоит определённый тег?
В частности, мне нужно найти highway=track у которой на конце traffic_calming=*
Вот такую, например, https://www.openstreetmap.org/way/401638910

Last edited by parukhin (2018-07-13 07:11:44)

Offline

#142 2018-07-13 08:04:45

freeExec
Moderator
From: Ульяновск,Модератор всех слоёв
Registered: 2012-07-31
Posts: 7,597

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

Можно, смотрите справки по count_members, возможно foreach, но мне кажется можно без него.

Offline

#143 2018-10-17 11:52:17

Президент Ирака
Member
Registered: 2013-02-14
Posts: 79

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

Подскажите, почему запрос работает нестабильно? Он рисует дороги на пешеходных полигонах, но не всегда, некоторые дороги не отображаются, так и не нашел закономерности.
Достаточно частая ошибка когда дорога просто подсоеденина к краю полигона и в итоге роутинг через него не работает.
Или может есть сервис который находит подобные ошибки? osmose и keepright их не видят.

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

Пробовал смотреть с помощью (around.area:0), но это не работает для путей, которые не пересекают границу, либо надо увеличивать радиус (до 1, 5, 10? метров), что тоже не гарантирует 100 % результат.

[timeout:20][bbox:{{bbox}}];

(
way ["area:highway"="footway"];
relation ["area:highway"="footway"];
relation ["highway"="footway"];
way ["area:highway"="pedestrian"];
relation ["area:highway"="pedestrian"];
relation ["highway"="pedestrian"];
);

out geom;
map_to_area ->.area;

(
way ["highway"](area.area);
);
out geom;

Upd: внезапно на полигонах 3337985 (Neumarkt) и 3337984 (Frauenkirche) все стало нормально отображаться, но рядом полно площадей где до сих пор не работает.

Last edited by Президент Ирака (2018-10-17 16:23:48)

Offline

#144 2018-10-17 11:57:01

freeExec
Moderator
From: Ульяновск,Модератор всех слоёв
Registered: 2012-07-31
Posts: 7,597

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

1. Роутинг по area:highway не предполагается, это чисто для красоты
2. map_to_area работает только для полигонов в name

Offline

#145 2018-10-17 12:08:03

Президент Ирака
Member
Registered: 2013-02-14
Posts: 79

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

freeExec wrote:

1. Роутинг по area:highway не предполагается, это чисто для красоты

Так я про это и говорю, что не всем мапперам очевидно, что только для красоты. Часто встречаю просто дороги брошенные на такой полигон и все.

freeExec wrote:

2. map_to_area работает только для полигонов в name

Как это не работает? Часть дорог же отображается, и они ограничены именно .area. Может быть криво работает? Или area[] работает только с name?
Причем некоторые мультиполигоны последний раз редактировались более года назад, думаю overpass должен был успеть их перегенерить, если менялась геометрия.


Внезапно на полигонах 3337985 (Neumarkt) и 3337984 (Frauenkirche) все стало нормально отображаться, но рядом полно площадей где до сих пор не работает.
Попробовал поменять сервера, через //overpass-api.de/api/ и https://overpass.kumi.systems/api/ (не)отображаются одни и те же дороги, может быть дело в overpass-turbo?

Last edited by Президент Ирака (2018-10-17 16:24:22)

Offline

#146 2018-11-20 18:09:54

Президент Ирака
Member
Registered: 2013-02-14
Posts: 79

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

У overpass поиск по значению действительно медленнее, чем по ключу, или есть какая то хитрость?
а то по ключу можно искать регуляркой по всему миру, а по значению отказывается искать в 100х100 км несильно замапленной территории.
по ключу я ищу так:

node[~"."~"value"];

есть более производительный способ или это особенность базы?

Offline

#147 2018-11-20 20:41:41

pfg21
Member
From: Чебоксары
Registered: 2012-10-18
Posts: 3,195

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

предположу что это особенности индексации базы ??
к примеру, индекс ключей есть, а индекс значений не формируют.
для значений некоторых ключей, name operator, индексы имеют мало смысла.
вариант2: индексы значений неимоверно больше индекса ключей -  что в принцеипе логично.
и т.д.

Offline

#148 2018-11-21 07:15:58

chnav
Member
From: Moscow, Russia
Registered: 2010-03-18
Posts: 2,848

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

Сдается мне что regexp сам по себе очень небыстр и индексация для него не работает вообще.

Offline

#149 2018-11-21 14:53:00

Президент Ирака
Member
Registered: 2013-02-14
Posts: 79

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

Я бы не сказал, что прямо уж так небыстр, например

way[~"^[^:]*[а-я]"~"."];

выполняется за три секунды (именно обращение к API, остальное, как понимаю, делается в браузере) без ограничений по координатам, а way["Тип"]; за две. По мне так сложноуловимая разница.

Можно, конечно придумать регулярку посложнее, но в POSIX бэкреференсы и прочее не поддерживается, так что врядли люди пользуются чем-то более сложным.

Offline

#150 2018-11-23 09:13:08

justsayhello
Member
Registered: 2018-11-23
Posts: 2

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

Добрый день, подскажите пожалуйста, как можно выгрузить  связанные улицы с районами (и микрорайонами), по определенному городу ?

Offline

Board footer

Powered by FluxBB