DBgdvModifyLayer

Top  Previous  Next

Daten einer Ebene der Planverwaltung ändern.

Jeder Plan der Planverwaltung ist einer Ebene zugeordnet, wobei durchaus Pläne existieren dürfen, deren Layer noch nicht beschrieben sind. Diese Ebenen zum einen stellen Daten zur Verfügung, die für alle Pläne globale Gültigkeit besitzen. Dies ist z.B. der Maßstab. Zum anderen werden Daten als Vorgabewerte für die Planerzeugung bereitgestellt. Dies ist z.B. der Plantyp. Letztere lassen sich für jeden Plan einzeln einstellen, werden aber mit dem Wert aus der Ebenenverwaltung initialisiert. Im Einzelnen lassen sich folgende Werte angeben:

Maßstab     ist der Text- und Symbolmaßstab. Er muss für alle Pläne einer Ebene gleich sein und gibt vor, wie groß Texte und Symbole ausgegeben werden. Die Größenangabe für Texte und Symbole ist in 1/100 mm gehalten und stimmt für diesen Maßstab. Bei einem anderen Ausgabemaßstab wird entsprechend umgerechnet.

Auflösung    Dieser Wert gibt die Genauigkeit innerhalb der Datenbank an. Alle Daten in der Datenbank werden auf Vielfache der Auflösung gerundet. Der Wert darf nicht zu klein angegeben werden, da die Daten intern in einer 32-Bit-Zahl gespeichert werden. Entsprechend darf der Wertebereich, der in der Datenbank gleichzeitig geladen ist, 232 nicht überschreiten. Die Auflösung wird in Meter angegeben. Eine Auflösung von 0.01, also 1 cm, bei einer Plangröße von 1000 m Breite und 4 nebeneinander geladenen Plänen ergibt 1/0.01 * 1000 * 4 = 400.000 als Wertebereich.

Plantyp         Der Plantyp gibt vor allem das Zielverzeichnis an, in dem die Pläne gespeichert werden. Wird hier ein von 0 verschiedener Wert eingetragen, so benutzen die Prozeduren zum Anlegen und Laden von Plänen diesen als Verzeichnis, bei einem Plantyp 0 wird beim Anwender nachgefragt. Der Plantyp 13 führt dazu, dass der Plan im Verzeichnis 150\013 gesucht wird.

Version          Diese Angabe wird nicht ausgewertet.

Art               kann den Wert ‘R’ enthalten, wenn der Plan mit Relativkoordinaten gespeichert wird, oder den Wert ‘A’ enthalten, wenn die Daten Absolutkoordinaten enthalten.

Stellen          Diese Angabe wird nicht ausgewertet. Sie darf den Wert ‘7’ oder ‘9’ enthalten und gibt im Original an, ob die Koordinaten intern als Fließkommawert oder als Festkommawert gespeichert werden.

Ersatzplan   gibt eine andere Ebene an, deren genaue Funktion mir nicht bekannt ist.

Privileg          Hier kann der Wert ‘R’ stehen, wenn die Pläne nicht gesichert werden dürfen, oder ‘W’, wenn eine Schreibberechtigung existiert.

Parameter

root (PROOT)                                             [IN]

Das Handle der Datenbank, in der die Daten einer Ebene geändert werden sollen. Es wird die mit DBgdvOpen geöffnete Planverwaltung bearbeitet. Wenn keine Planverwaltung geöffnet ist, dann wird eine Fehlermeldung generiert.

layer (int)                                                      [IN]

Es wird die hier angegebene Ebene der Planverwaltung angesprochen. Diese Ebene muss schon angelegt worden sein, sonst wird eine Fehlermeldung erzeugt. Es reicht nicht aus, wenn Pläne mit dieser Ebene existieren.

flags (int)                                                      [IN]

Hier wird festgelegt, welche Daten aus der nachfolgend beschriebenen Struktur settings gültig sind und in die Planverwaltung übernommen werden. In dieser Variablen werden die Konstanten GDV_LAYER_MODIFY_??? geodert angegeben, die geändert werden sollen.

settings (GDV_LAYER_SETTINGS *)     [IN]

Dieser Parameter zeigt auf einen Record, der die zu ändernden Daten enthält. Er hat das gleiche Format wie der von DBgdvReturnLayerSettings ausgefüllte Rekord. In diesem Rekord müssen die oben beschriebenen Felder ausgefüllt werden. Wobei es ausreichend ist, nur die Felder zu füllen, die auch übernommen werden sollen. Wenn also im flags die Werte GDV_LAYER_MODIFY_TYP | GDV_LAYER_MODIFY_ART angegeben werden, müssen die Felder typ und art ausgefüllt werden.

stufe (int)                                                      [IN]

reserviert, muss 1 sein. Wenn weitere Informationen eingeführt werden, werden diese über stufe unterschieden.

gdvName (const char *)                              [IN]

Der Name der Planverwaltung. Ist gdvName = NULL, wird die geöffnete Planverwaltung benutzt.

Ergebnis

(T_ERROR)                                            [OUT]

Hier wird ERROR_OK zurückgegeben, wenn die Prozedur erfolgreich ausgeführt werden konnte, ansonsten wird eine der Fehlermeldungen aus error.h generiert.

Deklaration

#include "database.h"

 

T_ERROR EXPENTRY DBgdvModifyLayer (

     PROOT                root,

     int                     layer,

     int                     flags,

     GDV_LAYER_SETTINGS *    settings,

     int                     stufe,

     const char *            gdvName

);

Konstanten

GDV_LAYER_MODIFY_MASSSTAB     1

GDV_LAYER_MODIFY_AUFLOESUNG  2

GDV_LAYER_MODIFY_TYP              4

GDV_LAYER_MODIFY_VERSION        8

GDV_LAYER_MODIFY_ART              16

GDV_LAYER_MODIFY_STELLEN        32

GDV_LAYER_MODIFY_ERSATZPLAN  64

GDV_LAYER_MODIFY_PRIVILEG       128

GDV_LAYER_MODIFY_ALL               255