15 мая 2018-го

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Заверните всё, пожалуйста

Overpass API версии 0.7.54 вышел больше года назад и в нём было так много нового, что Роланд завёл блог проекта, чтобы похвастаться полезными применениями. Язык запросов был и так сложен, но там появились выражения: если, например, добавить (if:count_tags() == 0), то получите объекты без тегов. А чтобы выбрать дороги с повышенной скоростью, пригодится (if:number(t[maxspeed])>110). Наконец, появился важный селектор отбора по идентификатору (id:123,456,...).

Со дня на день выйдет следующая версия API. Роланд уже неделю обновляет описание языка запросов в вики. Там, разумеется, много непонятной дичи вроде операторов цикла и условия, а также «цикла до тех пор, пока результат не стабилизируется». Добавили новые операторы для (if:...): is_closed() и length() для линий, count_by_role(...) для отношений.

Есть и штука, которая будет немедленно полезна каждому, кто когда-либо делал запросы: фильтр nwr, который объединяет в себе node, way и rel. Больше не нужно перечислять все три типа в запросах по тегу: достаточно nwr[shop=pet] — и получите все зоомагазины, каков бы ни был их тип. И самое главное — фильтр уже работает на основном сервере!

В списке запросов для тестирования новой версии можно найти пример, который ещё лучше сократит ваши запросы:

nwr[amenity=recycling](if: t["recycling:glass"] || t["recycling:paper"] || t["recycling:clothes"]);
15 мая   overpass
8 мая 2018   · · ·
Ctrl