Как я могу получить полигон данной улицы, используя Overpass API?
Я хочу получить полигон данной улицы, используя OverPass API. Когда я использую, например,
(
way
["name"="Hörnesgasse"];
>;
);node(w);
out body;
Вот ссылка на Overpass Turbo: Overpass Turbo
Я получаю узлы для многоугольника, но они не в правильном порядке. Поэтому я не могу сохранить их как строку. Есть ли возможность лучше? Еще одна проблема, с которой я столкнулся, это то, что я хочу ограничить поиск по данному городу, например "addr:city"="Vienna"
, Поскольку узлы не имеют атрибута города напрямую, как я могу написать запрос для получения этой информации?
1 ответ
Вам понадобится способ, чтобы получить порядок узлов. Это не может работать иначе, представьте себе способ, включающий один или несколько узлов дважды.
Удалить node(w);
часть вашего запроса и взглянуть на <way>
элементы. Если есть несколько <way>
элементы, то вам придется определить их правильный порядок тоже. Последовательные пути будут использовать один и тот же идентификатор узла в начале или конце.