XPlan

Für GML Daten steht mittels IWAN7 ein Ebenentyp zur Verfügung!

-> weitere Infos https://www.cardogis.com/Default.aspx?pgId=1335

 

Der XPlan-Import ist ein Modul zum Import von XML-Dateien.

XPlanGML-Version 3.0

Folgende Angaben müssen/können gemacht werden:

  • GML-Datei: Wählen Sie hier die Eingabedatei aus. Es muss sich dabei um eine XML-Datei entprechend der Spezifikation GML 3.0 handeln. Handelt es sich um eine andere Version (bspw. 4.0) erhalten Sie folgende Fehlermeldung: Ein Problem trat auf:Dokumentknoten XPlan wurde nicht gefunden. Speichern Sie die Datei im Format 3.0 ab oder erkundigen Sie sich bei unserem Support nach einer konverterseitigen Umstellung auf XPlanGML mit der Version 4.0.
  • Admin-Tree-Knoten-ID: Wenn die Ebene zu einem hier zu importierenden Type noch nicht vorhanden ist, dann legt der Importer diese Ebene an und legt sie im Root-Knoten ab. Geben Sie hier optional die ID eines administrativen Knotens an.  

adminid.gif

  • XPlan-ID (optional): Jeder Datensatz eines Importvorgangs bekommt einen eindeutigen Schlüssel zugewiesen. Damit kann der Import mehrfach wiederholt werden, ohne doppelte Daten zu generieren.
    Der Schlüssel wird aus dem Dateinamen (ohne Pfad generiert). Sie können an dieser Stelle den Schlüssel selber vorgeben. In diesem Fall sollten Sie diesen Schlüssel für spätere Aktualisierungen notieren.
  • Abfragedefinition der Ebenen behalten: Beim Import werden die Ebenendefinitionen angelegt bzw. aktualisiert. Dabei wird auch die Datenquelle (Abfrage) angepasst. Wenn Sie diese Option aktivieren und die Ebene bereits vorhanden ist, wird die Quelle wie definiert beibehalten. 
  • Postgres Connection String: Postgres Connection String (leer lassen, um cardo-Datenbank zu verwenden (wenn diese im Postgres ist)
    Host=...; Port=...; Database=...; User Id=...; Password=...; Pooling=false;

Im anschließenden Importverlauf wird angezeigt, welche Ebenen angelegt, gelöscht oder aktualisiert wurden.

XPlanGML-Version 4.0

Mit der Migration von XPlanGML Version 3.0 auf XPlanGML 4.0 wurden zahlreiche Änderung in der Datenstruktur vorgenommen. Eine der wichtigsten ist die verpflichtende Verwendung von gml:id für Features und Geometrien. Unter www.xplanung.de können die Spezifikationen, Objektartenkataloge als auch Änderungsprotokolle eingesehen werden. Dieses Importwerkzeug ist vorläufig als CLI- (Command-Line Interface-) Anwendung umgesetzt.
Folgende Arbeitsschritte sind nötig:

Vorbereitung
  • Installation der Schriften: Für die ansprechende Optik der XPlan-Daten müssen auf dem entsprechenden Server verschiedene Schriften installiert werden, welche Sie mit dem Konverter erhalten.
  • Datenbank anlegen:

Beispiel für das Anlegen einer MSSQL-Datenbank
USE [master]
go
/*Instanz löschen, wenn vorhanden */

IF EXISTS(SELECT * FROM sysdatabases WHERE name='idu_kundenname_xplan') DROP DATABASE idu_kundenname_xplan
Go
/* Instanz neu erstellen */
CREATE DATABASE
idu_kundenname_xplan
GO
/* den Context auf die aktuelle Instanz*/
USE
idu_kundenname_xplan
GO
CREATE USER [cardo] FOR LOGIN [idu_kunde]
GO
ALTER AUTHORIZATION ON SCHEMA::[db_owner] TO [cardo]
GO
EXEC sp_addrolemember N'db_owner', N'cardo'
GO
use
idu_kundenname_xplan
go
create schema xplanung
go

Erstimport
  • 1. Konverter entpacken und öffnen:

    Das Werkzeug an einem Ort entpacken, wo der Konverter Zugriff auf die Datenbank herstellen kann. Durch einen Doppelklick auf die IDU.NAS.Cli.exe öffnen Sie den Konverter.

  • 2.a Datenbankverbindung herstellen (MS SQLServer):
    connect to:"DATA SOURCE=servername>; INITIAL CATALOG=idu_kundenname_xplan;user id=idu_kunde;password=1234" mode:XPlan41

  • 2.b oder auch Datenbankverbindung herstellen (PostGreSQL-DB):
    connect to:"host=host dbname=idu_kundenprojekt_xplan user=nutzername" schema:xplanung mode:XPlan41
  • 3. Import der XPlan-Daten
    • Import aller GML-Dateien dieses Ordners
      LoadXPlanGml source:d:\xplan\*.gml

    • Import der GML-Dateien mit Berücksichtigung der Unterordner
      LoadXPlanGml source:+d:\xplan\*.gml

    • Import der GML-Dateien aus verschiedenen Ordnern
      LoadXPlanGml source:d:\xplan1\*.gml,
      d:\xplan2\*.gml,d:\xplan3\*.gml

  • 4. Erstellen von cardo-Ebenen aus den importierten XPlan-Daten
    ImportXPlanLayers cardoSrv:http://server:port user:nutzer pwd:***** epsgcode:25833 useSchemaPrefix:false
    Beachten Sie, dass hier ihr cardo-Server und ein gültiger cardo-Login eingetragen werden muss.

    • Besteht kein Ordner „XPLAN“ wird dieser angelegt. Dieser Schritt ist nur einmalig nötig - sind die Ebenen für das Datenbank-Schema einmal erzeugt, reicht es aus, diese Ebenen nach einem Neuimport von Daten einfach nur einmal neu zu laden (Ebenen aktualisieren)

    • Beim ersten Import wird das Verzeichnis im Root-Verzeichnis angelegt. Dieses kann im Management Center unter Dienste verwalten aus dem Administrativen Baum in den cardo.Map-Themenbaum (in der Liste Dienste in Bearbeitung) verschoben werden. Hierfür muss zuvor ein neuer Ordner als Platzhalter angelegt werden.

Import neuer XPlan Daten
Durch den Neuimport ändern sich die Import-Tags der Daten! Beachten Sie evtl. Auswirkungen auf von ihnen erstellte Abfragen in den Ebenen.
  • dbo.nas_import_tags-Tabelle

    • Wird der Inhalt der Tabelle dbo.nas_import_tags nicht gelöscht, vergleicht der Konverter die Pfade der vorangegangenen Importe mit den Dateipfaden der neu zu importierenden Daten. Stimmen diese überein, werden die Daten überschrieben. Würden Sie aber einmal Plan123 mit dem Pfad D:\temp\plan123.gml und einmal von D:\temp\gml\plan123.gml importieren, wenn der Inhalt der Daten der gleiche wäre, dann erhalten Sie Fehlermeldungen aufgrund dessen, dass der Primary_Key nicht doppelt in eine Tabelle integriert werden kann.

    • Leeren Sie die komplette dbo.nas_import_tags-Tabelle (nicht löschen, nur den Inhalt entfernen), wenn Sie all ihre XPlan-Daten neu importieren wollen.

    • Wollen Sie nur einzelne Pläne aktualisieren, dann genügt das Löschen der entsprechenden Zeile.

  • Wiederholung folgender Schritte des Erstimports

    • Schritt 2 Verbindung zur Datenbank

    • Schritt 3 Import der XPlan-Daten

    • Schritt 4 Erstellen der cardo-Ebenen - normalerweise reicht das Neuladen der dann schon vorhandenen Ebenen aus
Datenpräsentation anpassen

Ebenenstruktur

Nach dem Erstellen der cardo-Ebenen steht ihnen je XPlan-Typ eine Ebene bereit. Existieren zu bestimmten Typen keine Daten, dann wird auch keine leere Ebene angelegt.

Sie können die Daten aber auch im Anschluss nach ihren Bedürfnissen strukturieren. Hierfür ist es wichtig zu wissen, dass jeder Plan über den IMPORT_TAG zu identifizieren ist.

Beispielsweise können Sie über eine solche Abfrage wie diese (Select * from dbo.vw_BP_Gruenflaeche where IMPORT_TAG = '123') a die Daten auf einen bestimmten Plan reduzieren und so die Struktur der XPlan-Daten grundlegend verändern.

Sachdatenausgabe

Meist werden die XPlan-Daten von externen Partnerfirmen erstellt. Dadurch kann es passieren, dass sie die Sachdaten für ihre Zwecke noch einmal anpassen müssen.

Beispiel 1 Anhängen einer Spalte mit einem umformatierten Datum

(SELECT *, convert(varchar, <DATUMSSPALTE>,104) as <neuer Spaltenname> from <Tabelle>)a

  • varchar ist der geforderte Rückgabetyp für die neue Spalte
  • 104 entspricht dem deutschen Datumsformat tt.mm.jahr

Beispiel 2 Ergänzung der Variante 1 durch die URL zu Referenzdokumenten

( select a.*,
REPLACE (SUBSTRING(s.REFT_XP_E_REFERENZURL, 3,
LEN(s.REFT_XP_E_REFERENZURL)),'\','/') as Text_Bes_URL,
convert(varchar, INKRAFTTRETENSDATUM, 104) as datum_formatiert
from vw_BP_PlanType as a
inner join XP_TextAbschnittType as s
on s.IMPORT_TAG = a.IMPORT_TAG
where (s.REFT_XP_E_REFERENZURL is not null) AND (a.IMPORT_TAG = ‘126’)

)a

  • (Select a.*: Selektiert alles von jener Tabelle, welche den Stellvertreternamen „a“ hat
  • REPLACE ([…],'\','/'): ersetzt in der Zeichenkette alle “\” durch “/”
  • (SUBSTRING(s.REFT_XP_E_REFERENZURL, 3,
    LEN(s.REFT_XP_E_REFERENZURL))
    :
    • SUBSTRING gibt einen Teil des Feldinhaltes zurück,
    • s.REFT_XP_E_REFERENZURL: mit welchem Feld soll SUBSTRING durchgeführt werden
    • 3: Beginne bei der dritten Stelle (losgezählt wird mit 1)
    • LEN(s.REFT_XP_E_REFERENZURL): Ermittle mit der Funktion LEN die Länge der Zeichenkette von s.REFT_XP_E_REFERENZURL
    • Das Ergebnis ist URL ohne die Anfangszeichen „.\“
  • as Text_Bes_URL: legt fest, wie Spalte heißen soll, in welcher die neugenerierte Zeichenkette abgelegt wird
  • convert(varchar, INKRAFTTRETENSDATUM, 104) as datum_formatiert: siehe Beispiel 1
  • from vw_BP_PlanType as a: legt fest, dass “a” für die Tabelle vw_BP_PlanType stehen soll
  • inner join XP_TextAbschnittType as s: hiermit wird festgelegt, dass ein Join (/eine Verknüpfung) durchgeführt werden soll, bei der die Tabelle XP_TextAbschnittType als s bezeichnet wird
  • on s.IMPORT_TAG = a.IMPORT_TAG: Verknüpft werden die Spalten IMPORT_TAG aus a und aus s
  • where (s.REFT_XP_E_REFERENZURL is not null): Verknüpft nur jene Einträge, bei denen die Spalte REFT_XP_E_REFERENZURL der Tabelle s (XP_TextAbschnittType) nicht null ist (andernfalls gibt es für einige Geltungsbereiche mehrere MapTips, wobei einige kein Dokument zur textlichen Festsetzung haben)
  • AND (a.IMPORT_TAG = ‘126’): Und beschränkt die Daten auf jene, wo als Import_Tag die 126 angegeben wurde.
  • )a: Die Abfrage wird mit der Klammer geschlossen und das für Tabelle vw_BP_PlanType stehende „a“ wird noch dahinter geschrieben
Beachten Sie, dass diese Individualisierungen ggf. an ihre Daten angepasst werden müssen.
Hinweise/Fehlermeldungen

09.08.2017 16:04:53 Error Für "cardo" | fehlgeschlagen: Query: DECLARE c CURSOR FOR SELECT * FROM vw_bp_schutzpflegeentwicklungsmassnahmetype  WHERE 1 = 0 LIMIT 1 failed with Error:ERROR:  relation "vw_bp_schutzpflegeentwicklungsmassnahmetyp

LINE 1: DECLARE c CURSOR FOR SELECT * FROM vw_bp_schutzpflegeentwick...

-> Ursache: Daten zum View fehlen, so dass dieser nicht angelegt wird