Closed mizehnder closed 2 years ago
Es liegt einerseits an der Beziehung ASSOCIATION Geometrie_Dokument
, die neu ist und andererseits, dass FGDB (und auch GPKG) nur eine Geometriespalte pro Tabelle erlaubt. So greift wohl die "smarte" Abbildungsregel nicht gleich gut und es führt zu einer für den Benutzer undankbaren Normalisierung.
Gegentest: Wenn ich die Assoziation entferne im 1.2er-Modell funktionierts wie anhin. Wenn ich die Daten nach Postgresql mit der Assoziation importiere, funktionierts wie anhin. Wenn ich beim Postgresql-Import --oneGeomPerTable
verwende, erhalte ich die gleichen Tabellen wie bei FGDB.
Vielen Dank für die Tests Stefan! Nun kann ich nachvollziehen woran es liegt.
@claeis : Könnte man dann die Abbildungsregel entsprechend anpassen, damit auch in diesem Fall die Klassennamen sinnvoll benannt werden oder muss man aufgrund der Modellstruktur damit leben?
Im Prinzip ist es möglich, die automatisch generierten Namen zu übersteuern. Indem man die manuell definierten Namen in die Namensabbildungstabellen (t_ili2db_classname und t_ili2db_attrname) einfügt (vor dem --schemaimport!).
Als Workaround gut zu Wissen, klingt aber aufwändig. Kann denn die Abbildungsregel nicht entsprechend angepasst werden, damit auch in diesem Fall die Klassennamen übernommen werden?
Wie wären denn bessere Namen?
@mizehnder Geht es dir nur um die Namen oder dass die Tabellen in FGDB wie in der alten ili-Version abgebildet werden?
@edigonzales stimmt, es geht mir nicht nur um die Namen. Auch die Struktur verstehe ich nicht.
Bei V1.1 sind in jeder Geometrie-Tabelle die Attribute aus der Abstrakten Klasse Geometrie enthalten wie auch der Schlüssel zur Tabelle typ:
Bei V1.2 sind diese Attribute nur in der Geometrie-Tabelle "geometrie" vorhanden:
Bei den drei anderen Geometrie-Tabellen fehlen diese Attribute:
Wo finde ich diese Angaben? Wie kann ich die Beziehung zur Tabelle typ herstellen?
Hilfreich sind ER-Diagramme z.B. in dbeaver (wohl nicht für FGDB aber für GPKG). Dazu muss --createFk
verwendet werden. Gibt es sowas nicht in ArcWhatever? Und die Tabelle "t_ili2db_classname". Dort siehst du welche INTERLIS-Klasse zu welcher Tabelle gemappt wurde.
Zwei Screenshots (Achtung: habe noch --nameByTopic verwendet).
Lösung: Mit --smart2Inheritance erfolgt die Tabellenabbildung gleich wie bei der Modellversion V1.1 und die Geometrie-Tabellen werden gemäss den Klassennamen benannt:
Aktuell lässts sich zwar der Katalog nicht direkt importieren, das ist aber ein anderes Problem.
Schemaimport von http://models.geo.admin.ch/ARE/Nutzungsplanung_V1_2.ili führt zu nicht nachvollziehbarer Benennung der Geometrie-Klassen: Folgende Parameter wurden genutzt: --schemaimport --defaultSrsCode 2056 --fgdbXyResolution 0.00005 --fgdbXyTolerance 0.0004 --createEnumTabs --createBasketCol ili2fgdb-Version: 4.5.0
In der Version 1.1 http://models.geo.admin.ch/ARE/replaced/Nutzungsplanung_V1_1.ili wurden die Geometrie-Klassen sinnvoll, gemäss Klassennamen, benannt:
Soweit ich sehe, wurden die Geometrie-Strukturen von 1.1 auf 1.2 nicht angepasst. Wieso werden die Klassennamen nun anders abgebildet?