Экспорт границ стран и регионов

Понадобилось сделать экспорт границ стран. Разобрался с getbound.pl, всё работает.

Подскажите, как определить id отношений для границ всех стран? Руками не хочется перебирать.
Меняются ли эти id со временем?

Как определить id отношений для нужного уровня административного деления внутри страны?
Например, для России мне понадобится admin_level = 4.

Допустим, изначально у меня есть список ISO_3166-1 кодов всех стран, а для некоторых стран есть требование загрузки admin_level определенного уровня.

Запрос вида

http://www.overpass-api.de/api/xapi?relation[@meta][admin_level=2]

Возвращает все relation границ стран без входящих в них объектов - т.е. только тэги relation и список объектов.
228 из них содержат тэг ISO3166-1 (у меня как раз лежат выкачанные 30 сентября).
Возможно, есть дубликаты для некоторых стран (полная граница и только по суше и т.п.)

Могут, но редко.
Разве что кому-то захочется красивый номер затащить.
Ну и сильные международные изменения тоже могут привести к перерисовке границ.

Аналогично, c [admin_level=4], но по bbox/полигону страны + отфильтровать чужие.
Либо идти по объектам с ролью subarea с relation страны, если subarea указаны - в соседней теме идёт спор про это.

Спасибо, что-то получилось.

Да, дубликаты есть. У 9 стран по 2-3 отношения записаны так. Разбираю руками.

Для 22 стран (по кодам ISO3166-1) нет границ с admin_level=2,3. Для некоторых есть границы с admin_level=4 (граница страны Французская Гвиана, например).
Тут тоже придется разбирать руками, т.к. сразу возникает вопрос, что является страной. Например, Шпицберген имеет код ISO3166-1, но входит в состав (и в границу) Норвегии.

Граница Бразилии не содержит тега ISO3166-1, но есть тег iso3166-1:alpha2. Нужно и его ловить.

А есть ли способ фильтровать по полигону или по мультиполигону, не по bbox? Или это нужно делать на моей стороне, а не в API?

Я ловил границы по “iso3166-1:alpha2”, “ISO3166-1” и “int_ref”

У меня getbound.pl находит несколько «кривых» регионов.
Ошибки такие:
Invalid data: no outer rings
Invalid data: ring is not closed
Возможно, еще что-то.

Вот страны и отношения, которые предположительно некорректны:
Французская Полинезия 1363099 — граница вообще не рендерится в просмотре http://www.openstreetmap.org/browse/relation/1363099
Кувейт 305099 — дырка в левом углу, на границе с Ираном
Иран 304938 — граница с Ираком вся в дырках
Израиль 1473946 — внешне не вижу проблему

В связи с этим, есть вопрос: это ошибки или допустимые состояния? Если это ошибки, то как их исправить? Может ли кто-нибудь помочь с этим, а то я за себя не отвечаю :slight_smile:

Эти поправил.

Тут одни субареа.

Спасибо!