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

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

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

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

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

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

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

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

Напишите подробнее:

  • что значит связанные? Это пересекают район где-то, полностью в нем находятся, дома с этой улицы попадают в район или на улице стоит индекс района?
  • сколько районов, насколько больших

Последний вариант “связности” делается просто, иначе нужно примерно то, о чем я спрашивал несколько постов назад. Но это работает очень медленно (т.е. оверпасс может отказываться выполнять) и к тому же нестабильно.

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

В первом приближении можно вот так получить улицы которые хоть где-то пересекают границу района:

[out:csv(::id,"name")][timeout:10];
way(216882430);
out geom;
map_to_area ->.area;

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

То есть руками смотрите номер линии, соответствующей району (или мультиполигона, тогда надо заменить “way” на “rel”), вбивате его и получаете список улиц в этом районе в таком виде:

180119057	Calle Ramo Toscana
180119058	Calle del Ogio o de la Rugheta
180119059	Calle del Paradisio
180119060	Calle del Sturion

А дальше уже зависит от того, как вы хотите это использовать, так как вы не ответили на то, что я спрашивал. Проще всего будет, если вы напишете, для какого города и для какого уровня районов вы хотите получить списки. В разных местах немного по-разному мапят. Ну и я уже писал, что для слишком больших районов и для границ с большим количеством точек (area.area) работает очень медленно и оверпасс может просто кикать запрос.

Но я вижу одну проблему: не знаю найдет ли оверпасс линию, которая проходит внутри района, но точек внутри него не имеет. Можете поискать пример, проверим (не обязательно район с улицей, любой путь пересекающий полигон, желательно не очень большой).
И одну возможную проблему: улицы могут быть разбиты на куски (мостами, отличающимися скоростными ограничениями и т.п.) и вы получите кучу дубликатов. Если нужны только именованные улицы, то это решаемая проблема, а вот если есть неименованные, то я не вижу простого способа их соединить.

way [highway]["name"](area.area);

Найдёт всё что внутри.
Другое дело, что у нас кучу “микрорайонов” это не понятное “вон там за дрогой” и отмечено просто точкой.
Если это не разовая хотелка для своего города, то имеет смысл поднимать свой локальный nominatim.

Найдёт всё что внутри.
В смысле не обязательно, чтобы внутри были точки?

Спасибо, оказывается формат запросов изменился, раньше area писалась в начале запроса. То-то я смотрю мои старые запросы с area выдают ошибку. А может и не в этом дело…

Это только у меня JOSM который день выдает ошибку соединения с Overpass API? Предлагает проверить наличие Интернет соединения. Или это новогодние каникулы сервера Overpass API?

Здрасти, уже почти год будет, как основной адрес заблокирован телеграмом. Используйте альтернативы.

Какой адрес заблокирован? Какой рабочий? Я весь год пользовался без проблем. При чем здесь телеграмм?
В работе был - http://overpass.openstreetmap.ru/cgi/
В резерве - https://overpass-api.de/api/
Прошу развернуть ответ. Укажите адрес. Спасибо.

https://overpass-api.de/api/

https://overpass.kumi.systems/api/

Не телеграммом, конечно, а роскомпозором, который всё ещё пытается с ним воевать при помощи ковровых блокировок.

За что гонения?! В чём его вина? Впрочем спасибо за развернутый ответ. Запустил. На долго ли? Никогда с этим не сталкивался.

https://ru.wikipedia.org/wiki/Telegram#%D0%9A%D0%BE%D0%BD%D1%84%D0%BB%D0%B8%D0%BA%D1%82_%D1%81_%D0%A0%D0%BE%D1%81%D0%BA%D0%BE%D0%BC%D0%BD%D0%B0%D0%B4%D0%B7%D0%BE%D1%80%D0%BE%D0%BC

Телеграмм мне не интересен. Не пользую.

Уже решено! Работает! (см. выше)

странно, а кто вопрос этот задавал: “За что гонения?! В чём его вина?”

Там чуть выше - хронология (“Не телеграммом, конечно, а роскомпозором,…”). Примеры даны блокировки и рабочего канала для Overpass API (по теме).

Ребята кто поможет с загрузкой данных?