#openstreetmap #overpass-api
#openstreetmap #overpass-api
Вопрос:
Я пытаюсь выяснить, возможно ли с помощью OverpassAPI загрузить все граничные данные для страны.
Небольшой пример: Люксембург Я хотел бы получить все отношения, помеченные как (ключ-значение) boundary= administrative . Я хотел бы получить все пути к этим отношениям и все узлы этими способами.
Я предполагаю, что это может быть довольно много данных (?), Поэтому мне интересно, подойдет ли один запрос, особенно если я попытаюсь сделать это с Германией или Францией (около 20 элементов на admin_level = 4 и сотни на admin_level = 6 или 8)
Это еще более усложняется, потому что ограничивающая рамка по всей стране охватывает все другие страны, разделяющие границу с одним «встроенным».
Так что, похоже, это не так — какой метод я бы использовал, чтобы получить все узлы на всех путях, которые образуют административные границы страны?
В настоящее время я пытаюсь сделать следующее
<osm-script>
<query type="relation">
<bbox-query s="49" w="2" n="52" e="7"/>
<has-kv k="boundary" v="administrative"/>
<has-kv k="admin_level" v="2"/>
</query>
<print mode="meta"/>
</osm-script>
Это ограничивающая рамка для Бельгии (скажем, среднего размера), и она ограничена значением admin_level= 2. Кроме того, это еще не доставляет информацию об узле.
Я знаю, как это изменить, но это также приведет ко всем соседним странам. Какой лучший способ сделать это?
Спасибо! Ральф
Ответ №1:
Я бы рекомендовал вместо этого взглянуть на карту границ OSM, специальное приложение для определения границ по всему миру практически на любом уровне, о котором вы можете подумать: https://wambachers-osm.website/boundaries
В любом случае, на основной экземпляр api overpass довольно большая нагрузка, и вполне вероятно, что вы столкнетесь с ошибкой HTTP 429 при выполнении следующего запроса для извлечения всех путей и узлов для Германии:
(rel(51477);>;);out meta;
или:
(rel[boundary=administrative][admin_level=2][name="Deutschland"];>;);out meta;
Чтобы получить все граничные = административные отношения со всеми их путями и узлами в Люксембурге, должен выполняться следующий запрос (осторожно: возвращает 47 МБ данных, включая Германию, Рейнланд-Пфальц и Саар).
rel(2171347);
map_to_area;
(rel[boundary=administrative](area);>;);
out meta;
Возможно, попробуйте и эту альтернативу.