Seite 1 von 1
					
				CG-GISDB gis.area in ha
				Verfasst: 23. März 2018, 09:23
				von Karen Langwald
				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
			 
			
					
				Re: CG-GISDB gis.area in ha
				Verfasst: 23. März 2018, 12:14
				von Steffen Junghans
				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.
			 
			
					
				Re: CG-GISDB gis.area in ha
				Verfasst: 23. März 2018, 13:20
				von Karen Langwald
				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
				Verfasst: 23. April 2018, 09:01
				von Jana Fritz (ARCHIKART)
				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
				Verfasst: 23. April 2018, 10:39
				von Steffen Junghans
				Hallo Frau Fritz,
nach meiner Kenntnis wird die Objekt-Registrierung am Datenzugriff nur
- 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 
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