CG-GISDB gis.area in ha

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: CG-GISDB gis.area in ha

Re: CG-GISDB gis.area in ha

von Steffen Junghans » 23. April 2018, 10:39

Hallo Frau Fritz,
nach meiner Kenntnis wird die Objekt-Registrierung am Datenzugriff nur
  • beim Digitalisieren
  • beim (manuellen) Ändern von GIS-Keys
  • beim manuellen Ändern eines GISDB-Feldes
ausgelöst.

Wird also die Fläche nachträglich (graphisch) geändert, wird zwar das m²-Feld aktualisiert, aber die Objekt-Registrierung wird nicht "gefeuert". Somit bleibt mMn. der alte ha-Wert erhalten.

Will man keinen Trigger würde ich wie beschrieben die

Code: Alles auswählen

..\Profile\<gisdbname>\RegSpt.mov
nutzen:

Code: Alles auswählen

module <gistabname>_RegSptMov
function main () : integer
if $_RegDbName = 'D4U<gistabname>'
 if $D4U<gistabname>_OBJID <> '{00000000-0000-0000-0000-000000000000}'
    calc $D4U<gistabname>_HA := $D4U<gistabname>_QM / 10000
    IFDChangeRec ('D4U<gistabname>')
    Result 1
 endif
endif
endfunc

Re: CG-GISDB gis.area in ha

von Jana Fritz (ARCHIKART) » 23. April 2018, 09:01

Es gibt schon eine Möglichkeit im CAIGOS, mittels Objekt-Registrierung. Das funktioniert ähnlich, wie Datenbank-Trigger. ;)
Hierfür bitte ein 2. Datenbankfeld (Float) in der GISDB anlegen, wo der ha-Wert eingetragen wird. Danach in der Objektregistrierung am Projekt, am entsprechenden Datenzugriff folgende Einstellung vornehmen. Hierbei sind die Variablen entsprechend der eigenen GISDB anzupassen. In meinem Beispiel heisst die Tabelle "SHP0102_ADRESSE":

Code: Alles auswählen

module Register
 
function main () : integer
  set $LayerName ''
  Result 0
 
  if $SHP0102_ADRESSE_OBJID <> '{00000000-0000-0000-0000-000000000000}'
    calc $SHP0102_ADRESSE_FLAECHE_HA := $SHP0102_ADRESSE_FLAECHE_QM / 10000
    IFDChangeRec ('SHP0102_ADRESSE')
    Result 1
  endif
endfunc
Gutes Gelingen :)

Re: CG-GISDB gis.area in ha

von Karen Langwald » 23. März 2018, 13:20

Ich hatte gehofft nur etwas übersehen zu haben. In diesem Fall werden wir dann mit der m²-Angabe auch leben können. Wär einfach "nett" gewesen.
Danke!

Karen Langwald

Re: CG-GISDB gis.area in ha

von Steffen Junghans » 23. März 2018, 12:14

Hallo,
mir ist kein einfacher Weg für dieses Vorhaben bekannt.

Was natürlich immer geht, ist eine zusätzliche Spalte anzulegen und diese direkt über den Datenbankserver füllen zu lassen.
In PostgreSQL wäre das ein einfacher Trigger auf die Tabelle/das Tabellenfeld.

Hat man keinen (direkten) Zugriff auf die Datenbank bzw. will man sich die Zusatzspalte sparen,, wäre noch ein entsprechendes ElaP-Script (RegSpt.mov) denkbar.

CG-GISDB gis.area in ha

von Karen Langwald » 23. März 2018, 09:23

Hallo,
ich habe in eine CAIGOS GIS-DB ein Feld eingefügt, das automatisch die Fläche (GIS.AREA) des Objektes abruft und anzeigt.
Nun hätte ich diese Fläche gern in ha und nicht in m² dort stehen. Im Gegensatz zu eine Beschriftung habe ich die Option in einer GIS-DB hierfür nicht finden können.
Kann mir jemand helfen??

VG
Karen Langwald

Nach oben