Der Satz ist bewusst in zwei Ebenen geteilt. basis/ sagt nichts über Rumänien und nichts über Bären — dort liegen Signaturen, Farben und Stilgerüste, die jedes Blatt erbt. themen/ enthält je einen Ordner pro Kartenblatt: Daten und die auf die echten Feldnamen gezogenen Stile.
Die Trennung hat einen praktischen Grund: Wer in basis/ die Umrissstärke ändert, ändert sie für alle Blätter. Wer in einem Thema herumschraubt, kann nichts kaputt machen, was andere Blätter brauchen.
QGIS ab 3.28. Vier Handgriffe, danach nie wieder:
Am Beispiel Rumänien · Braunbär. Wer ein anderes Thema hat, tauscht nur die Pfade.
Vier Systeme kommen in Frage, je nachdem was die Karte tun soll:
| EPSG | System | wofür |
|---|---|---|
| 3844 | Pulkovo 1942(58) / Stereo 70 | Das amtliche System Rumäniens. Meter, also rechnen Flächen und Längen direkt. Die Vorgabe für alles Rumänien-Bezogene. |
| 4326 | WGS 84, geographisch | Das Format der gelieferten Daten. Zum Rechnen ungeeignet (Grad sind keine Meter), zum Austauschen ideal. |
| 3035 | ETRS89 / LAEA Europe | Flächentreu, europaweit. Wenn das Blatt neben Nachbarländer gestellt wird oder Flächen verglichen werden. |
| 3380 | Timbalai 1948 / RSO Borneo | Borneo. Nicht verwenden. |
Die HTML-Blätter des Atlas benutzen etwas Drittes: Lambert konform konisch mit den Standardparallelen 44° und 48° N. Das ist kein EPSG-Code, sondern eine im Blatt definierte Projektion — konform, damit die Kartenbilder nicht verzerrt aussehen, und auf Rumänien zugeschnitten. Wer die QGIS-Karte deckungsgleich zum HTML-Blatt haben will, legt in QGIS ein benutzerdefiniertes CRS an:
+proj=lcc +lat_1=44 +lat_2=48 +lat_0=46 +lon_0=25.5 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs
Jeder Stil erwartet bestimmte Felder. Steht ein Feld nicht da oder heißt es anders, rendert QGIS klaglos nichts — das ist die häufigste Ursache für eine leere Karte. Der Kopf jeder .qml nennt ihren Vertrag; hier die Übersicht der Basisstile.
| Basisstil | Geometrie | erwartete Felder |
|---|---|---|
| flaeche_kolorit | Fläche | wert (Zahl, NULL erlaubt) · status · name |
| flaeche_grund | Fläche | keine |
| punkt_signatur_groesse | Punkt | wert — Höhe ∝ √wert |
| punkt_kategorien | Punkt | art · name |
| punkt_ort | Punkt | rang (1–5, regelbasiert) · name · name_dt |
| linie_verkehr | Linie | rang (1–3) · name |
Das Blatt streut Bärensignaturen in die Kreise. In QGIS macht das die Verarbeitung, nicht der Stil:
Die Höhengewichtung des HTML-Blattes — Bären sitzen im Bergwald, nicht in der Ebene — hat QGIS nicht eingebaut. Wer sie will, nimmt statt der Verarbeitung die Funktion streuung() aus basis/skripte/atlas.py; sie kennt beides.
In basis/skripte/atlas.py liegen drei Funktionen für die QGIS-Python-Konsole. Kein Plugin, keine Abhängigkeiten. Laden mit:
exec(open('…/atlas/qgis/basis/skripte/atlas.py').read())
| pruefen() | Geht das Projekt durch: CRS (und meckert bei 3380), Feldvertrag je Layer, durchgehend leere Spalten. Der erste Griff, wenn eine Karte leer bleibt. |
| streuung(layer, feld) | Streut eine Signatur je 100 Einheiten ins Polygon, mit Mindestabstand. Mit hoehe='dgm' auch mit der Höhengewichtung des HTML-Blattes. |
| erfassungslayer(pfad) | Legt ein leeres GeoPackage für die Feldbegehung an — Schema passend zum QField-Formular. |
Ein Blatt geht ohne Umbau aufs Telefon. Erfassungslayer anlegen, basis/qfield/beobachtung.qml darauf laden — das gibt Auswahllisten statt Freitext, ein Datum, das sich selbst setzt, und ein Fotofeld — dann mit QFieldSync packen. Zwei Fallen: die Signaturen müssen im Projektordner liegen, nicht nur im SVG-Suchpfad, sonst kommen sie nicht mit; und Gentium gibt es auf Android nicht.
QFieldCloud lohnt erst, wenn mehrere gleichzeitig erfassen. Dann gilt: nur der Erfassungslayer ist gemeinsam bearbeitbar, alles andere bleibt Lesestoff — sonst sind Grenzen und Trassen nach der dritten Begehung verschoben. Ausführlich in basis/qfield/README.md.
Ein Stil, der bei jedem Maßstab dasselbe zeichnet, ist kein Kartenstil, sondern eine Anzeige. Drei Einstellungen tragen die Generalisierung. Sie stehen in jeder .qml und sind kein Beiwerk.
Bezugsmaßstab. Alle Stile führen referencescale="2500000" — den Blattmaßstab des Rumänien-Bogens auf A4. Damit hängen die Millimetermaße von Signatur, Strichstärke und Schrift am Ausgabemaßstab: wer dasselbe Blatt auf 1:1 000 000 druckt, bekommt proportional mitwachsende Zeichen statt eines zerfallenen Kartenbilds. Vorher stand überall -1, und jede Ausgabe sah anders aus als die Vorschau.
Auswahl nach Maßstab. basis/stile/punkt_ort.qml ist deshalb regelbasiert statt kategorisiert: nur Regeln tragen Maßstabsgrenzen je Klasse. Ohne sie zeichnen bei kleinem Maßstab alle fünf Ortsgrößen gleichzeitig, und das Kartenfeld läuft mit Punkten voll. Die Auswahl ist Generalisierung, kein Filter — das Weglassen gehört zur Aussage.
| Rang | Ortsgröße | sichtbar bis | Schriftgrad |
|---|---|---|---|
| 1 | über 1 Mio. | immer | 9 pt |
| 2 | 500 000 – 1 Mio. | 1:6 000 000 | 8 pt |
| 3 | 100 000 – 500 000 | 1:3 000 000 | 7,1 pt |
| 4 | 25 000 – 100 000 | 1:1 500 000 | 6,5 pt |
| 5 | unter 25 000 | 1:600 000 | 5,5 pt |
Die Grade kommen aus atlas/typenscale.js; 5,5 pt ist die Untergrenze des Atlas — darunter läuft Toner in die Punzen. Eine Auffangregel „ohne Rang" zeichnet NULL und Fremdwerte als gestrichelten Kreis in der Konfliktfarbe, sonst verschwinden fehlerhafte Datensätze stumm.
Beschriftungsrang. Wer verdrängt wen, wenn es eng wird. Die Werte waren vorher willkürlich verteilt — 3, 4, 6, 7, 8 ohne System; jetzt bilden sie eine Leiter. Die beiden obersten Ortsränge sind zusätzlich obstacle-verstärkt: sie verdrängen nicht nur, sie halten auch Platz frei.
| Rang | Stil | Inhalt |
|---|---|---|
| 10 – 2 | punkt_ort | Ortsnamen, je Ortsgröße gestaffelt |
| 9 | staedte | Ortsnamen des Bärenblatts |
| 7 | linie_verkehr | Straßen- und Bahnnummern |
| 6 | nationalparks | Schutzgebietsnamen |
| 4 | begegnungen · kreise_schwerpunkte_baer | Vermerke |
| 3 | kreise_dichte | Kreiswerte |
Schriftfallback. Jeder beschriftende Stil führt jetzt Gentium Book Plus → Gentium Plus → Noto Serif. Ohne diese Kette substituiert QGIS still, wenn Gentium lokal fehlt, und der Ausdruck kommt in einer fremden Schrift zurück — ohne Warnung, und meist erst auf dem Papier bemerkt.
Der Kartensatz mischt zwei Sorten Geometrie, und das steht in jedem Themenordner. Aus benannten Quellen kommen: die Kreisgrenzen (Eurostat GISCO, NUTS 2021, Maßstabsstufe 1:3 Mio.), die Verkehrstrassen (OpenStreetMap über die Pipeline in atlas/geodaten/), Küsten und Staaten (Natural Earth), das Gelände (SRTM).
Von Hand gesetzt sind: Ortslagen und Rangstufen, Hafen- und Flughafensymbole, der Umriss des Donaudeltas, die Trasse des Donau–Schwarzmeer-Kanals. Sie sind auf ±1 Kilometer genau und für den Maßstab 1:3,8 Mio. brauchbar — als Nachweis taugen sie nicht.
Welche Aussage auf einem Blatt belegt ist und welche nicht, steht nicht hier, sondern im Quellenregister unter atlas/quellen/ — eine Datei je Blatt, drei Status: belegt, abgeleitet, unbelegt. Die Begriffe der Blätter erklärt atlas/GLOSSAR.md.
| Fragezeichen statt Signatur | SVG-Pfad fehlt. Schritt 02 der Einrichtung. |
| Layer geladen, Karte leer | Feldname stimmt nicht mit dem Vertrag. Attributtabelle gegen FELDER.md halten. |
| Beschriftung in falscher Schrift | Gentium Plus nicht installiert; QGIS ersetzt still. |
| Summe der Bestände zu hoch | Gruppenwerte wiederholen sich auf allen Mitgliedskreisen. Vor dem Summieren auf signatur = 1 filtern. |
| Karte liegt in Südostasien | EPSG:3380 statt 3844. |