Так, у них, собственно, всё написано: http://wiki.openstreetmap.org/wiki/DE:Grenze , http://wiki.openstreetmap.org/wiki/DE:Grenzen , http://wiki.openstreetmap.org/wiki/DE:Grenze_zeichnen , http://wiki.openstreetmap.org/wiki/DE:Gemeindegrenze . Вот картинка: http://wiki.openstreetmap.org/wiki/File:Administrative_Gliederung_Deutschlands_admin_level.png (она же с переводом терминов, но без указания admin_level).
Краткий обзор:
Германия (admin_level=2) делится на земли (admin_level=4). Земли делятся на районы (admin_level=6). Районы делятся на коммуны/общины (admin_level=8). Общины могут делится на административные единицы, имеющие своё самоуправление (admin_level=9) или не имеющие своего самоуправления (admin_level=10). В некоторых землях существуют административные округа (admin_level=5) - промежуточная административная единица между землёй и районом. В некоторых землях существуют амты (admin_level=7) - промежуточная административная единица между районами и коммунами.
Существует 3 города-государства (имеют статус земли) - Берлин, Вольный и ганзейский город Гамбург (он же просто Гамбург) и Вольный ганзейский город Бремен:
Берлин и Гамбург: admin_level=4, но определяются через place=city, Вольный ганзейский город Бремен (admin_level=4) состоит из городов Бремен и Бремерхафен, имеющие admin_level=6, но определяемые через place/de:place=city.
Некоторые другие города тоже имеют статус района: admin_level=6 + de:place=city.
Города районного подчинения: admin_level=8 (где-то, возможно, admin_level=7) + de:place=town
Коммуны: admin_level=8 + de:place=village.
В достаточно населённых пунктах (которые, скорее всего, имеют тег de:place=town или de:place=city), могут попадаться admin_level=8/9/10/11, соответствующие частям города.
Именно поэтому я предлагаю следующий алгоритм:
а) смотрим, попадает ли адрес в полигон place (в Германии этот тег не очень распространён, но встречается), если попадает - конец программы, если нет - идём дальше;
б) смотрим, попадает ли адрес в полигон de:place=village/town/city (широко распространённый в Германии тег), если попадает - конец программы, если нет - идём дальше;
в) смотрим, попадает ли адрес в полигон admin_level=8 (широко распространённый тег), если попадает - конец программы, если нет - удивляемся и разбираемся, как такое могло получиться:)
ЧаВо:
Вопрос 1: почему не предлагается опираться только на de:place=village/town/city?
Ответ 1: потому что я не уверен, что эти теги везде проставлены: возможно, где-то проставлены только admin_level=8.
Вопрос 2: почему не предлагается опираться только на admin_level=8?
Ответ 2: а) потому что я не уверен, что эти теги везде проставлены (хотя, скорее всего, это так): возможно, где-то проставлены только de:place=village/town/city; б) потому что существуют крупные населённые пункты, имеющие admin_level=4/6.
Если я где-то ошибся в рассуждениях и меня поправят, буду весьма признателен.