Преодолеть только фильтрующие полигоны (Автономный переход)

У меня есть код для вызова в Maproulette для взлетно-посадочных полос, которые имеют форму многоугольника (а не линии).

Это код обхода для создания файла geoJSON:

    [timeout:25];
area(3600304938)->.searchArea;
(
  way["aeroway"="runway"](area.searchArea);
);
out body geom qt;

Теперь проблема состоит в том, что Overpass фильтрует все взлетно-посадочные полосы для меня (в форме многоугольника и в форме линии), но я хочу, чтобы для меня загружались только взлетно-посадочные полосы в форме многоугольника.

что я должен делать?

Спасибо

1 ответ

Решение

К сожалению, проверка закрытых путей в настоящее время еще не реализована, т.е. вы ничего не можете с этим поделать без дальнейшей постобработки, за исключением создания запроса на улучшение на Github, может быть: https://github.com/drolbr/Overpass-API/issues

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

Обратите внимание, что могут быть случаи, когда эта эвристика не работает. Вот почему я все еще рекомендую создать запрос на расширение для надлежащей проверки закрытого пути. В вашей области запросов я не нашел таких случаев:

[timeout:25];
area(3600304938)->.searchArea;

way["aeroway"="runway"](area.searchArea)(if:count_distinct_members() + 1 == count_members());

out body geom qt;

переходная турбо ссылка: http://overpass-turbo.eu/s/qLQ

Другие вопросы по тегам