GeoEdit - Einstellungen für Administratoren

Um die Daten einer Ebene editieren zu können, müssen bestimmte Voraussetzungen erfüllt sein. Grundsätzlich gilt, dass ausschließlich diese Datenbankebenen

  • PostgreSQL - Geometrien
  • MS SQL Server 2008 - Geometrien
  • Oracle SDO - Geometrien
  • ODBC Datenbank - Blob
  • ODBC Datenbank - Punkte

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!

Wichtiger Hinweis:
Diese Funktion steht nur zur Verfügung, wenn eine Lizenz für das Modul GEdit - Editor für Geodaten erworben wurde. GEdit umfasst zum einen den Editor für Geodaten und zum anderen die Bearbeitungsfunktionen aus dem Selektionsfenster heraus.
Hinweis, wenn die Datenquelle ein View oder eine Abfrage ist: Definieren Sie auf Seite 3 unbedingt einen alternativen Tabellennamen!
 
Hinweise zur Bearbeitung von Daten eines Views

Prinzipiell ist die Bearbeitung eines Views nur eingeschränkt möglich. Folgende Hinweise müssen beachtet werden.

Hinweise zur Einrichtung:

  • Definieren Sie auf Seite 3 der GeEditeinstellungen unbedingt einen alternativen Tabellennamen! Da die Bearbeitung eines Views in der Datenbank nicht möglich ist, muss ein alternativer Tabellenname angegeben werden. In diesem findet dann die Bearbeitung und Speicherung der Datensätze statt!
  • Beachten Sie unbedingt, dass die Spaltenbezeichnung im View und in der alternativen Datenquelle identisch sind. Benennen Sie die Spalten im SQL nicht um!
  • Beachten Sie weiterhin, dass im View nicht mehr Spalten vorhanden sind, als in der alternativen Datenquelle. Sind mehr Spalten vorhanden, so können diese nicht bearbeitet werden!
 
 
Vorgehensweise GeoEdit - Seite 1
  1. Zuerst ist mindestens ein zu bearbeitender Geometrietyp (Punkte, Linien, Flächen) durch Anklicken auszuwählen.
  2. Um mehrere Typen auszuwählen, ist die Strg- oder Shift-Taste gedrückt zu halten.
  3. Hinweis: Durch das Aktivieren der Option - Ebenenbearbeitung deaktivieren wird die Ebene zur Bearbeitung gesperrt.

Um den Einstellungsdialog fortzusetzen, genügt ein Klick auf die Schaltfläche b_weiter.png

.Einstellung1.jpg

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

Vorgehensweise GeoEdit - Seite 2
  1. Geben Sie auf Seite 2 alle besonderen Spalten an.
  2. Alle Spalten, die nicht aufgeführt werden, kommen im GeoEditor normal zur Anzeige und können auch bearbeitet werden.

Einstellung2.png

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

  1. Klicken Sie auf die Schaltfläche b_neuespalteninformation.png. Anschließend erscheint ein Dialogfenster, in welchem der gewünschte Spaltenname eingetragen bzw. ausgewählt werden kann.
    NeueSpalteninformation.jpg
  2. Ein Klick auf die Schaltfläche b_abbrechen.png schließt den Dialog, ohne Änderungen durchzuführen.
  3. Durch einen Klick auf die Schaltfläche b_hinzufuegen2.png wird ein neuer Datensatz in der Liste der besonderen Spalten erstellt.
  4. Im Datenfeld Spaltenname erscheint die Bezeichnung der ausgewählten Spalte. 
  5. Definieren Sie Eigenschaften in den verschiedenen Spalten.
Hinweis: Gibt es eine Spalte mit einem Autowert, so muss die Spalte mit der Spalteninformation D hinzugefügt werden. (Betrifft meist Objectid)

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.)

  1. Um den Einstellungsdialog fortzusetzen, genügt ein Klick auf die Schaltfläche b_weiter.png. Ein Klick auf die Schaltfläche b_zurueck.png ruft die vorhergehende Seite auf.
  2. Zum Löschen der GeoEdit-Einstellungen für die ausgewählte Ebene, genügt ein Linksklick auf die Schaltfläche b_loeschen.png.

Hinweis: Bitte beachten Sie, das die Spalte ID auch in der DB als Primärschlüsselspalte definiert ist.

 
 
 
Vorgehensweise GeoEdit - Seite 3

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.

Einstellung3.jpg

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) 

Vorgehensweise GeoEdit - Seite 4

Hinweis: Diese Einstellungen werden erst ab cardo4 ausgewertet.

  • Multi-Geometrien verhindern: verhindert die Bildung von Multi-Geometrien beim Zusammenfügen von Datensätzen

Die topologische Bearbeitung im cardo4 dient dem Bearbeiten von identischen Grenzen zweier Objekte einer Ebene (Liniengeometrien -> gemeinsame Eckpunkte, Flächengeometrien -> gemeinsame Grenzen).

  • topologische Bearbeitung für diese Datenquelle aktivieren: ist dieses Feld aktiviert, wird für die bearbeitbaren Daten eine Topologie hergestellt
    Hinweis: dies ist im Moment nur für Postgres-Ebenen implementiert!
    Beachten Sie, wenn Sie diese Funktion aktivieren ist die Bearbeitung mit dem AnySourceEditor NICHT möglich!
  • cardo4: als "AnyDatasource" bearbeiten: aktiviert die Bearbeitung einer Ebene als AnySource, damit steht der neue Editor im Kontextmenü der Ebene zur Verfügung (Beachten Sie, dass alle weiteren Einstellungen im cardo4 an der Ebene in den Editoreinstellungen durchgeführt werden müssen! Beachten Sie weiterhin die Bedingungen (serial ID und gleiche EPSG für alle vorhandenen Datensätze) zum Starten des Editors.
  • Topologie - Toleranz: geben Sie hier einen Wert in Metern an, bis zu dem zwei Punkte dieser Ebene als topologisch identisch angesehen werden sollen
Vorgehensweise GeoEdit - Seite 5

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.

Einstellung4.jpg

Bei erfolgreichem Test erscheint die Meldung:

geoedit_test_erfolgreich.png

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 b_zurueck.png- Button verändert und nochmals getestet werden.

geoedit_test_nichterfolgreich.png

Fehlermeldungen im cardo4

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.

Fehlermeldungen
  • Der Datenquellenname wurde nicht gefunden und es wurde kein Standardtreiber angegeben
  • Falsche Syntax in der Nähe von (
  • Die UPDATE-Berechtigung wurde verweigert

Der Datenquellenname wurde nicht gefunden und es wurde kein Standardtreiber angegeben

fehlermeldung.png


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"/>

Hinweis zu Postgres: Hier muss der Name des ODBC-Treibers auch in den cardo-Grundeinstellungen unter 'cardo Eigenschaften'/'Postgres Datawarehouse'/'Name des ODBC-Treibers für Postgres' eingetragen sein!

 Hinweise zur Variablen CARDO$POSTGRES_ODBCDRIVERNAME finden Sie hier.

 

Falsche Syntax in der Nähe von (

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.

gedit_fehler2.png

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.

Die UPDATE-Berechtigung wurde verweigert

Diese Fehlermeldung erscheint beim Speichern eines bearbeiteten Datensatzes, obwohl der Test der Einstellungen keine Fehler brachte.

gedit_fehler3.png

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.

neue/geänderte Geometrien werden nicht mit ihrem Symbol dargestellt

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!

Es wurde bei der Initialisierung kein Tabellenname übergeben!

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!

Hinweise zum Einstellen des Extents

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.