Um die Daten einer Ebene editieren zu können, müssen bestimmte Voraussetzungen erfüllt sein. Grundsätzlich gilt, dass ausschließlich diese Datenbankebenen
zur Bearbeitung freigegeben werden können. Des Weiteren müssen verschiedene Geoedit-Einstellungen getroffen werden. Als optional gekennzeichnete Felder können leer gelassen werden.
Notieren Sie an der Ebene in den Ebeneneinstellungen im Parameter theSRID die SRID der Geometrien! Weiterhin ist es wichtig, im Parameter theProjection die Projektion zu hinterlegen!
Prinzipiell ist die Bearbeitung eines Views nur eingeschränkt möglich. Folgende Hinweise müssen beachtet werden.
Hinweise zur Einrichtung:
Um den Einstellungsdialog fortzusetzen, genügt ein Klick auf die Schaltfläche
.
Hinweis für cardo4/AnysourceEditor: Wählen Sie hier einen Geometrietypen, um die Einstellungen einzurichten. Im AnysourceEditor ist es NOCHMAL notwendig diesen explizit zu beschränken, wenn nicht alle Geometrietypen erfasst werden sollen. Der hier gewählte Geometrietyp wird ignoriert.
Editoreinstellungen / Bearbeitungseinstellungen / zulässige Geometrien
Hinweis zu cardo4/AnysourceEditor: Fügen Sie hier nur die Primärschlüsselspalte hinzu. Alle weiteren Einstellungen für die Spalten (Nachschlagewerte, etc.) werden in den Einstellungen am AnySourceEditor durchgeführt.
Neue Spalte anlegen
Folgende Eigenschaften sind möglich:
P - Spalte ist Bestandteil des Primärschlüssels. (erforderlich, mehrere möglich)
I - Spalte wird im GeoEditor nicht angezeigt.(optional, mehrere möglich)
R - Spalte ist zwar im GeoEditor sichtbar, Werte können aber nicht bearbeitet werden. (optional, mehrere möglich)
D - Spalte wird beim Anlegen eines Datensatzes, sofern diese nicht gefüllt wird, mit dem Standardwert der Datenbank belegt. (optional, mehrere möglich)
Hinweis: Enthält eine Spalte einen Autowert, so ist hier das Häkchen zu setzen. Wird das Feld nicht markiert, können Nutzer selbstständig Werte notieren, was in der Datenbank Fehler verursachen kann. Betrifft es das Feld ID im Postgres, so muss dieses vom Typ serial sein.
C - Spalte enthält den Benutzernamen des Erstellers des Datensatzes. Sie wird vom GeoEditor selbstständig gefüllt. Falls Bearbeitungsrechte auf Benutzereigene Datensätze beschränkt werden sollen, ist eine Spalte mit dieser Eigenschaft zu hinterlegen. (optional, höchstens einmal)
M - Spalte enthält den Benutzernamen des cardo-Benutzers, der den Datensatz zuletzt bearbeitet hat. Sie wird vom GeoEditor selbstständig gefüllt. (optional, höchstens einmal)
Um eine Eigenschaft zu setzen, genügt ein Klick in das Optionskästchen.
Nachschlageabfrage - Eingabe einer SQL-Abfrage, die zwei Spalten ergibt. Die erste Spalte enthält die zu speichernde ID und die zweite Spalte den zugehörigen anzuzeigenden Text. Die Abfrage wird mit dem gleichen Benutzer in der gleichen Datenbank ausgeführt (Beispiel für Postgres: Select ID, Bezeichnung from Schema.Tabellenname).
(optional)
Vorgehensweise:
1. Einrichtung DB Tabelle mit Nachschlagewerten:
2. Einrichtung der GeoEditeinstellungen
select stadtteil, stadtteil from geodaten.stadtteilname (Da das zu verknüpfende Feld vom Typ Text ist, muss hier als ID ebenfalls eine Textspalte angeben werden. Da die Nachschlagewerte eindeutig sind, kann dies auch die Bezeichnung der Nachschlagewerte sein.)
3. Anzeige bei der Geodatenbearbeitung
(Beachten Sie bei der Verknüpfung, dass die Datentypen der ID-Spalte der Tabelle und der Spalte übereinstimmen.)
Hinweis: Bitte beachten Sie, das die Spalte ID auch in der DB als Primärschlüsselspalte definiert ist.
Folgende Felder können optional erfasst werden:
URL zu speziellem Attribut-Erfassungsformular:
Es besteht die Möglichkeit, benutzerdefinierte Erfassungsformulare, welche vom Standardformular im Geodateneditor abweichen, zu verwenden. In diesem Fall ist die URL (relativ zum Projektordner) im entsprechenden Eingabefeld "Url zu speziellen Attributerfassungsformular..." einzutragen. Hierbei handelt es sich um eine optionale Angabe.
alternativer Tabellenname:
Ist die Datenquelle der Ebene z. B. ein View, muss der Namen der zu bearbeitenden Tabelle in das Eingabefeld "alternativer Tabellenname ..." eingetragen werden. (sonst optional)
Hinweis: Beachten Sie, dass die Angabe mit Schema.Tabellenname erfolgen muss.
Zeichensatz der Tabelle:
Weicht der Zeichencode der Tabelle vom Standardzeichencode (Zeichencode für Deutsch) ab, ist der zu verwendende Zeichencode in das Eingabefeld "Zeichensatz der Tabelle" einzutragen. (optional)
Hinweis: Diese Einstellungen werden erst ab cardo4 ausgewertet.
Die topologische Bearbeitung im cardo4 dient dem Bearbeiten von identischen Grenzen zweier Objekte einer Ebene (Liniengeometrien -> gemeinsame Eckpunkte, Flächengeometrien -> gemeinsame Grenzen).
Hinweis zu Iwan7 Ebenen: die Testeinstellungen bitte deaktivieren!
Auf der letzten Seite erhält der cardo-Systemadministrator Informationen zum Abschließen und Testen der GeoEdit-Einstellungen.
Bei erfolgreichem Test erscheint die Meldung:
Verlief der Test nicht erfolgreich, erscheint eine Meldung, welche auch eine Fehlerbeschreibung enthält. Die vorgenommenen Einstellungen wurden aber trotzdem gespeichert, können aber mit dem - Button verändert und nochmals getestet werden.
Bei Oracle Ebenen kann es beim Speichern eines Datensatzes zu einer Meldung betreffs der wkt Geometrie kommen. Hier muss eine Funktion Funktion zum Wandeln von WKT zu SDO_GEOM im Oracle ausgeführt werden:
CREATE OR REPLACE FUNCTION IKX_GEOM_FROM_WKBGEOMETRY(WKB BLOB) RETURN MDSYS.SDO_GEOMETRY AS BEGIN /*Funktion zum Wandeln von WKT zu SDO_GEOM Kapselt nochmal NULL-Werte*/ IF (WKB IS NULL) THEN RETURN NULL; ELSE RETURN SDO_UTIL.FROM_WKBGEOMETRY(WKB); END IF; END;
Meldung beim Start der Sachdatenanzeige:
Ein QDBObjectName kann nicht aus mehr als 3 Teilen bestehen
((...select Abfrage...)a).Parametername:name
Diese Meldung erhalten Sie, wenn Sie eine Ebene über eine Abfrage definiert haben (Eigenschaft theLayer). Hier ist es notwendig, einen alternativen Tabellennamen in den GEdit Einstellungen zu hinterlegen. Weitere Informationen finden Sie hier.
Problem beim Erstellen der Connection: [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden und es wurde kein Standardtreiber angegeben.
Bei dieser Fehlermeldung tragen Sie bitte in der Web.config im Ordner CardoSystem\CoreWeb3\IIS\net3
die richtige ODBC - Treiberbezeichnung (ODBC Treiberbezeichnung 32 Bit-System ermitteln) ein. In der Webconfig gibt es einen entprechenden Eintrag:
<-- Diese Werte mit dem auf dem Server installierten Treibernamen anpassen -->
add key="IDU.db.ODBCDrivername.PGDataBaseHandler" value="IhrODBC-Treibername für Postgres"/>
add key="IDU.db.ODBCDrivername.MySQLDataBaseHandler" value="IhrODBC-Treibername für MySQL"/>
Bitte tragen Sie die Bezeichnung der verwendeten ODBC-Treiber anstatt der in der Hilfe rot - dargestellten Einträge ein.
Beispiel:
<-- Diese Werte mit dem auf dem Server installierten Treibernamen anpassen -->
add key="IDU.db.ODBCDrivername.PGDataBaseHandler" value="PostgreSQL ODBC DRIVER(UNICODE)"/>
add key="IDU.db.ODBCDrivername.MySQLDataBaseHandler" value="MySQ L ODBC 3.51 DRIVER"/>
Hinweise zur Variablen CARDO$POSTGRES_ODBCDRIVERNAME finden Sie hier.
Die Aktion schlug fehl: Fehler beim Schreiben des Datensatzes:[Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near ( Diese Fehlermeldung erscheint beim Speichern eines bearbeiteten Datensatzes, obwohl der Test der Einstellungen keine Fehler brachte.
Ursache ist eine Abfrage im Feld theLayer in den Ebeneneigenschaften, bspw. eine Tabellenverknüpfung.
Zum besseren Verständnis eine Abfrage:
(
select a.*, s.oname as stadtteilname,
from poi.verwaltungsgebaeude_Stadt as a
inner join area.stadtteile as s
on s.stadtteil = a.stadtteil
)a
Auf Seite 2 der GeoEdit-Einstellungen muss neben der Spalte des Primärschlüssels der Spaltenname "Stadtteil" und die Nachschlageabfrage "select Stadtteil, oname from area.stadtteile" hinterlegt werden. Sie machen der Anwendung also bekannt, welche Spalte Daten aus einer anderen Tabelle enthält und wie auf diese zugriffen werden kann.
Auf Seite 3 der GeoEdit-Einstellungen muss zudem unter alternativer Tabellenname "poi.verwaltungsgebaeude_Stadt" eingetragen werden. Dies entspricht jener Tabelle in der die Änderungen gespeichert werden sollen.
Schließen Sie die Einstellungen in gewohnter Weise ab. Die Fehlermeldung sollte beim erneuten Versuch Änderungen zu speichern nicht mehr erscheinen.
Diese Fehlermeldung erscheint beim Speichern eines bearbeiteten Datensatzes, obwohl der Test der Einstellungen keine Fehler brachte.
In Fällen, in denen die eine Berechtigung in der Datenbank verweigert wurde, ist zu prüfen, mit welchem Nutzer der Zugriff auf die Tabelle unter theLayer ermöglicht wurde. Anschließend muss geprüft werden, ob dieser Nutzer an der Datenbank ausreichend Berechtigungen hat, z. B. Insert und Update.
Sie haben im Selektionsfenster im Reiter Bearbeiten ein neues Objekt angelegt oder die Geometrie eines Objektes geändert. Nach dem Speichern erscheint allerdings in der Karte nicht an der gewünschten Position die Symbolik. Aber wenn Sie das Objekt selektieren bzw. zur Position zoomen, dann sehen Sie das Selektionssymbol an der richtigen Stelle bzw. den richtigen Kartenausschnitt.
Hier gibt es Diskrepanzen zwischen dem EPSG-Code, welcher für die Darstellung im GIS-Viewer genutzt wird und dem EPSG-Code, welcher in der Datenbank für die Daten angegeben wurde.
Die Lösung ist, dass Sie zum einen herausbekommen, welcher EPSG-Code korrekt ist und diesen dann in der Datenbank sowie in den Ebeneneigenschaften unter theSRID aber auch theProjection eintragen.
Wenn Sie mit MSSQLServer arbeiten, dann lautet der Befehl zum ändern:
update [datenbank].[schema].[tabelle] set geom.STSrid = 25833;
ORA-00904: "COLS"."OWNER": ungültiger Bezeichner ORA-00904: "COLS"."OWNER": ungültiger Bezeichner
Die Ebene besteht aus einer Abfrage, hier muss im Schritt 3 ein alternativer Tabellenname notiert werden, der aus Schema.Tabellenname besteht!
Diese Meldung erhalten Sie für Iwan7 Ebenen. Bitte die Funktion "Testen" deaktivieren und auf Fertig klicken. Die Ebene ist trotzdem für die Geodatenbearbeitung im cardo4 eingerichtet!
Problem: neu hinzugefügte Datensätze sind u.U. nach Zoom oder Verschieben der Karte nicht zu sehen.
Für die Ebene wird durch cardo ein Extent (Ausdehnung) ermittelt. Liegen die neu hinzugefügten Datensätze außerhalb des bestehendes Extents, welcher automatisch beim Laden der Ebene ermittelt wurde, so kann der neu hinzugefügte Datensatz nicht zu sehen sein.
Stellen Sie für Ebenen, welche bearbeitet werden sollen, explizit einen Extent ein (welcher umbedingt auch das Gebiet erfassen wollte, wo neue Datensätze liegen) oder tragen Sie unkown ein. Der Extent wird im Parameter theInitExtent hinterlegt.