GISX 3 - Administratordokumentation : Themendefinition

Allgemeines

Mittels der Definition von Themen können Datenmengen eingeschränkt, sowie weitere Angaben zu Daten gemacht werden.

Mittels einer Themendefinition:

  • können Daten durch einen Filter eingeschränkt werden
  • kann festgelegt werden welche Attribute durchsucht werden
  • kann definiert werden, in welcher Form mit welchen Inhalten der Tooltip in der Oberfläche präsentiert wird
  • können Attribute mit Formattierungen versehen werden (z.B. Ausgabe eines Feldinhaltes in Großbuchstaben).

Aufbau einer Themendefinition

Themendefinition erfolgen in XML. Es empfiehlt sich folgende Deklaration:

<?xml version="1.0" encoding="UTF-8"?>
<Theme xmlns="http://www.geograt.de/namespaces/gisx3/themedefinition/1.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
</Theme>

Themendefinition werden im Unterverzeichnis "themes" des jeweiligen Datastores abgelegt und müssen die Dateiendung ".xml" besitzen. Es gelten die allgemeinen Hinweise zur Benamung.

Überblick

AttributBeschreibungDatentypOptional
visibleNameSichtbarer Name des ThemasTextJa
descriptionKurze Beschreibung des ThemasTextJa
ignore

Gibt an, ob das Thema ignoriert werden soll. Ignorierte Themen können nicht in Layerdefinitionen verwendet werden.

Typischerweise werden abstrakte Themen (Blaupausen) ignoriert

true | falseJa (Standard false)
dataSource

Name der Datenquelle, auf die ein Thema aufbaut. Details unten.

Themendefinitionen können sich entweder auf direkte Themen (Tabelle in Datenbank, SHAPE Datei) beziehen oder andere Themendefinitionen im selben Datastore erweitern.

TextNein
defaultCRSKoordinatenreferenzsystem des ThemasTextJa. Falls leer wird Definition des Datastores verwendet.
filter

Filter für angezeigte Daten. Die Syntax für einen Filter hängt vom jeweiligen Datastore ab.

Bei Themendefinitionen die andere Themendefinitionen erweitern, erfolgt automatisch eine Erweiterung der Filterdefinition.

Für die einzelnen Attribute sind die internen Namen zu verwenden.

TextJa
attributeDefinitionDetaildefinition zu einzelnen Attributen und Formattern für bestimmte AttributeUnterelementJa
ignoreAttributesZu ignorierende Attribute (Wird zurzeit noch nicht verwendet)Liste mit Attributnamen.Ja
searchAttributesNamen der Attribute, die zu durchsuchen sind. Hierbei handelt es sich um die JSON Attributnamen (im Falle von SHAPE Dateien, Attributnamen in der .dbf Datei, im Falle von GISX 2.x die JSON-Attribute). Falls interne Attributnamen verwendet werden, werden diese automatisch umgewandelt.SuchattributeJa
tooltipDefinition des Tooltips für ein Thema.TooltipdefinitionJa
optionsWeitere Optionen / Parameter.Optionen / Parameter.Ja
cacheGibt an ob das Thema gecacht werden soll.true | falseJa (Standardwert ist false)
searchOutputDie Ausgabe der Suchergebnisse.TemplateTextJa
searchableGibt an, ob ein Thema durchsucht werden kann.true | falseJa (Standardwert ist false)
favoriteOutput

Steuert, was in der Favoritenliste für ein Feature angezeigt werden soll.

Ist diese Angabe nicht vorhanden, wird der Inhalt von "searchOutput" verwendet. Ist diese Angabe ebenfalls leer, wird die Überschrift im Tooltip verwendet.

TemplateTextJa

authorization

Steuert, welchen Benutzergruppen (und damit Benutzern) Daten des Themas zur Verfügung gestellt werden (nur Ansicht)

 

BerechtigungenJa. Standardmässig ist ein Thema für alle Benutzer freigegeben.
editableSteuert, welche Benutzergruppen (und damit Benutzer) Daten des Themas bearbeiten können.BerechtigungenJa. Standardmässig ist die Bearbeitung nur für die Administratorengruppe freigegeben.
defaultDialogId des Standarddialogs, der für dieses Thema verwendet werden soll.DialogdefinitionJa
overviewDialogId des Übersichtsdialogs, der für dieses Thema verwendet werden soll.DialogdefinitionJa
Icon

Die Reihenfolge der Angabe ist beliebig. Jedes Attribut kann maximal einmal pro Thema definiert werden.


Datenquelle

Die Angabe <dataSource> referenziert eine Datenquelle (ein Thema eines Datastores). Die möglichen Angaben hängen vom verwendeten "Datastore" ab:

Shape

Es wird der Pfad und Name zu einer unter <GISX3HOME>\datastores\Shape abgelegten Shapedatei angegeben:

Beispiel: "verkehr.BUSL" bezieht sich auf die Shapedatei <GISX3HOME>\datastores\Shape\data\verkehr\BUSL.shp.

GISX2

Es muss eines der (durch GEOGRAT definierten) Themen der GISX2-Datenbank angegeben werde, ggf. mit einem Prefix, falls Texte oder Attributblöcke gezeichnet werden sollen. Verfügbare Prefixes sind:

  • <keiner> - Hauptthema (Symbole, Linien, Flächen)
  • :texts - Einzeltexte (Beschriftung)
  • :textures - Attributblöcke (Beschriftung)      (Tip: Siehe hierzu die Dokumentation zu Attributblöcken in GISX3.)

Beispiel 1: "SurveyLine" bezieht sich auf das Thema Vermessungslinien und zeichnet diese.
Beispiel 2: "SewerEdge:textures" bezieht sich auf das Thema Kanal-Hauptnetz und zeichnet davon die Attributblöcke.

 

Folgende Themen  werden derzeit unterstützt:

NetzthemaPunktobjekteLinienobjekteFlächenobjekteHA-KnotenHA-LeitungenSonstige Unterthemen
Kanal (E01.)SewerNodeSewerEdge    
Kanal-Ausgestaltung (E01A.)SewerRepresentationPointSewerRepresentationLineSewerRepresentationArea-- 
Wasser (E02..)WaterNodeWaterEdge    
Gas (E03..)GasNodeGasEdge    
Elektro (E04..)ElectricityNodeElectricityEdge  - -Knoten im Schemaplan E2401: ElectricityCableNode
Leitung im Schemaplan E2402: ElectricityCableEdge
Fernwärme (E05..)HeatingNodeHeatingEdge    
Flächen allg. (E1000)--CommonPolygon   
Vermessung (E50..)SurveyPointSurveyLine-  POI: abstract-survey-point
Fachthema      
Baumkataster (E0B..)TreeObject     
ALK-Thema      
Flurstück (EGF..)BoundaryPoints
(Grenzpunkte)
BoundaryLines
(Grenzlinien)
Parcel-- 
Gebäude (EGG..)BuildingNodeBuildingEdgeBuilding-- 
Nutzung (EGN..)ActualUsageNodeActualUsageEdgeActualUsage-- 
Gebietseinheiten (EGP..)AreaUnitNodeAreaUnitEdgeAreaUnit - - 
Topographie (EGT..)TopographyNodeTopographyEdgeTopography-- 
Öffentl. Festlegung (EGZ..)OeffentlicheFestlegungNodeOeffentlicheFestlegungEdgeOeffentlicheFestlegung-- 

Tooltip

Jede Tooltipdefinition definiert eine Überschrift "title" und beliebig viele Attribute. Attribute gliedern sich hierbei in "title" (Linke Spalte in der Anzeige) und "content" (Rechte Spalte in der Anzeige).

Zusätzlich kann zu jedem Tooltipattribut noch extra Inhalt definiert werden.

Sämtliche Angabe können mittels TemplateText gemacht werden. 

Beispiel für einen Tooltip:

...	
	<tooltip>
		<title>Ein Titel</title>
		<attribute>
			<title>Bezeichnung</title>
			<content>Inhalt von ${attribut}</content>
		</attribute>
		<attribute>
			<title>Verbindung</title>
			<content>${verbindung}</content>
		</attribute>
		<attribute>
			<title>Weitere Informationen</title>
			<content>Weitere Informationen abrufen</content>
			<extraContent>
				<link>
					<href>${LINK}</href>
				</link>
			</extraContent>
		</attribute>
		<attribute>
			<title>Geheim</title>
			<content>${secretData}</content>
			<authorization>
				<restrictToRoles>
					<roleName>ROLE_Geheim</roleName>
				</restrictToRoles>
			</authorization>
		</attribute>
	</tooltip>
...

Die einzelnen Attribute des Tooltips:

EigenschaftBeschreibungOptionalDatentyp
titleDer Titel des TooltipsJaText (Template)
menuDas Menü des TooltipsJaMenü
attributeDie einzelnen Attribute des TooltipsJa (Es können mehrere angegeben werden)TooltipAttribut

Menue

Ein Tooltip kann ein Menü mit Einträgen definieren:

	<tooltip>
		...
		<menu>
			<dashboard>
				<label>Zeige in Dialog 1</label>
				<dialogId>dialog1</dialogId>
			</dashboard>
			<dashboard>
				<label>Zeige in Dialog 2</label>
				<themeId>shape:exampleTooltip</themeId>
				<idAttributeName>C37</idAttributeName>
			</dashboard>
			<dashboard>
				<label>Zeige Geheimes</label>
				<authorization>
					<restrictToRoles>
						<roleName>ROLE_TestRole</roleName>
					</restrictToRoles>
				</authorization>
				<useTheme>false</useTheme>
				<useId>false</useId>
			</dashboard>
		</menu>
		...
	</tooltip>

Unter menu können hierbei beliebig viele Einträge vom Typ dashboard oder workflow (andere Typen sind geplant) hinzugefügt werden.

Der Typ dashboard wird genutzt, um einen Link zu einer Übersichtsseite (dashboard) oder der Detailseite des Objekts zu definieren. Er besitzt folgende Eigenschaften:

EigenschaftBeschreibungOptionalDatentyp
labelDer Text des MenüeintragsNeinText
icon

Icon des Menüeintrags.

Eine Liste verfügbarer Icons befindet sich an dieser Stelle.

JaText
authorizationEinschränkung der Sichtbarkeit auf bestimmte Benutzergruppen.JaBerechtigungen
useThemeFestlegung, ob bei Aufruf des Dashboards das Thema mit übergeben werden soll. Standardwert ist true.Jatrue | false
themeId

Wird nur verwendet wenn useTheme true oder nicht vorhanden ist.

Die ID des Themas (dataStore + ":" + Themen-ID), von dem Daten angezeigt werden sollen.

Ist dieser Parameter nicht vorhanden und useTheme true oder nicht vorhanden, wird das Thema des Features verwendet, für das Tooltip angezeigt wird.

JaText
useIdFestlegung, ob bei Aufruf des Dashboards die ID mit übergeben werden soll. Standardwert ist true.Jatrue | false
idAttributeName

Wird nur verwendet wenn useTheme und useId true oder nicht vorhanden ist.

Ist dieser Parameter nicht vorhanden und sind useId und useTheme true oder nicht vorhanden, wird die ID des Features verwendet, für das Tooltip angezeigt wird.

JaText
dialogIdOptionale ID des Dialogs, der angezeigt werden soll.JaText

Die Reihenfolge der Eigenschaften ist zwingend einzuhalten.

Der Type workflow wird genutzt, um einen Workflow aus einem Tooltip zu starten. Er besitzt folgende Eigenschaften:

EigenschaftBeschreibungOptionalDatentyp
labelDer Text des MenüeintragsNeinText
icon

Icon des Menüeintrags.

Eine Liste verfügbarer Icons befindet sich an dieser Stelle.

JaText
authorizationEinschränkung der Sichtbarkeit auf bestimmte Benutzergruppen.JaBerechtigungen
workflowIdBeschreibung der ID des Workflows der gestartet werden sollNeinText

Die Reihenfolge der Eigenschaften ist zwingend einzuhalten.

TooltipAttribut

Ein Attribut im Tooltip hat folgende Eigenschaften

EigenschaftBeschreibungOptionalDatentyp
titleDer Titel des AttributesJaText (Template)
contentDer Inhalt des AttributesJaText (Template)
extraContent

Besonderer Inhalt.

Unter <extraContent> steht zurzeit nur der Typ <link> zur Verfügung.Link definiert ein Unterelement vom Typ <href> welches die Zieladresse eines Links enthält (im Beispiel der Inhalt des Attributs "LINK", definiert durch "${LINK}".

Ja-
authorizationEinschränkung der Sichtbarkeit auf bestimmte Benutzergruppen.JaBerechtigungen

Suchattribute

Unter Suchattribute können die Attribute definiert werden, die durchsucht werden sollen. Die einzelnen Attribute sind mittels <name> anzugeben. Als Attributname muss der JSON Attributname der jeweiligen Datasource verwendet werden.

...
	<searchAttributes>
		<name>town</name>
		<name>road</name>
	</searchAttributes>
...

Im Beispiel werden die Attribute "town" und "road" durchsucht.

An dieser Stelle können Sie auch interne Attributnamen angeben.

Template Text

In vielen Bereichen der Definition kann Template Text verwendet werden. GISX 3.x verwendet hierzu FreeMarker. Die einzelnen Attribute eines Features stehen hierbei mit ihren JSON Attributnamen zur Verfügung.

Icon

Um Template Texte zu manipulieren, bietet Freemarker sogenannte built-ins an, eine Übersicht ist hier zu finden.
Beispiel: Ein numerischer Wert, wie eine Jahreszahl, soll als String in einer bestimmten Form dargestellt werden, da ansonsten ein "Tausendertrenner" gesetzt werden würde (2016 -> 2.016).
Um dies zu verhindern muss der Eintrag folgendermaßen geändert werden: ${Jahr} geändert in  ${Jahr?string["####"]}

Berechtigungen

Sichtbarkeit

Sowohl vollständige Themen als auch einzelne Attribute im Tooltip können nur bestimmten Benutzergruppen zur Verfügung gestellt werden. In den Dialogdefinitionen können neben den Attributen auch die Gruppen verrechtet werden.

Beispiel in einer Themendefinition:

<?xml version="1.0" encoding="UTF-8"?>
<Theme xmlns="http://www.geograt.de/namespaces/gisx3/themedefinition/1.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
	<authorization>
		<restrictToRoles>
			<roleName>ROLE_TestRole</roleName>
		</restrictToRoles>
	</authorization>
...
</Theme>

Das betreffende Thema ist nur für Benutzer verfügbar, welche die Rolle "TestRole" besitzen. Dies schließt ein:

  • Darstellung in der Karte
  • Anzeige von Tooltips
  • Suche nach Inhalten
  • Anzeige in Dialogen

Editierbarkeit

Sie können die Bearbeitung von Themen auf bestimmte Benutzergruppen einschränken:

<?xml version="1.0" encoding="UTF-8"?>
<Theme xmlns="http://www.geograt.de/namespaces/gisx3/themedefinition/1.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
	<editable>
		<restrictToRoles>
			<roleName>TestRole</roleName>
		</restrictToRoles>
	</editable>
...
</Theme>

Das betreffende Thema ist nur für Benutzer bearbeitbar, welche die Rolle "TestRole" besitzen.

Icon

Standardmässig ist die Bearbeitung von Themen nur auf die Rolle "ROLE_GISX3_ADMIN" eingeschränkt.

Sobald Sie andere Rollennamen angeben, ist ein Thema auch für Benutzer freigegeben die auch diese Rollen besitzen.

Durch die Angabe von "GISX3_ANONYMOUS" als Rollenname (Diesmal ohne "ROLE_"), geben Sie ein Thema auch zur Bearbeitung ohne Anmeldung frei! DIES IST NICHT EMPFOHLEN!!!!!

Icon

Insbesondere für im Internet verfügbare Installationen sollten Sie NIEMALS eine Thema zur Bearbeitung ohne Anmeldung freigeben.

Änderungen die durchgeführt werden gehen meistens direkt auf Ihren Datenbestand!!

Icon

Damit ein Thema bearbeitbar ist, muss der Benutzer natürlich auch über die Rollen zur Sichtbarkeit verfügen.

Allgemeines

Icon

Verwenden Sie immer ein "ROLE_" vor dem Rollennamen.

Natürlich können Sie auch Berechtigungen auf Layerebene vergeben, diese würden um die hier verfügbaren Berechtigungen ergänzt werden.

Weitere Informationen zur Benutzer- und Rechteverwaltung finden Sie an dieser Stelle.

Optionen/Parameter

Mit Hilfe von Optionen können spezielle Konfigurationseinstellungen für Themen festgelegt werden.

Die einzelnen Optionen sind hierbei immer vom jeweiligen Datastore abhängig.

Es können pro Thema mehrere Optionen gesetzt werden, die Angabe erfolgt im Unterelement "<options>". Pro Option/Parameter ist ein eigenes Unterelement "<parameter>" zu verwenden:

<?xml version="1.0" encoding="UTF-8"?>
<Theme xmlns="http://www.geograt.de/namespaces/gisx3/themedefinition/1.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
	<options>
		<parameter>
			<key>USE_CADDATA</key>
		</parameter>
	</options>
...
</Theme>

Jeder Parameter muss ein Element "<key>" enthalten in dem der Optionsname aufgeführt ist.

Mögliche Optionen sind im jeweiligen Datastore beschrieben.

ID einer Themendefinition

Zur Verwendung in Layerdefinitionen erhält jede Themendefinition innerhalb eines Datastores eine eindeutige ID.

Diese ID wird aus dem Dateinamen und den Namen der Unterverzeichnisse gebildet in der die Themendefinition abgelegt ist. Als Trennzeichen zwischen Verzeichnissen wird hierbei "." verwendet. Als Startverzeichnis gilt das themes Verzeichnis des jeweiligen Datastores.

Eine Themendefinition in <GISX3HOME>/datastores/gisx2/themes/polygon/gewaesser.xml erhält die ID "polygon.gewaesser". In einer Layerdefinition kann sie durch Angabe des Datastores ("gisx2") und der LayerID eingebunden werden.

Icon

Es gelten die allgemeinen Hinweise zur Benamung. Groß- Kleinschreibung des Dateinamens spielt hierbei keine Rolle.

In Themendefinition kann ferner auf Themendefinitionen des gleichen Datastores verwiesen werden. Dies dient dazu vorhandene Themendefinitionen zu erweitern.

Beispiel:

<GISX3HOME>/datastores/shape/themes/testA.xml
<?xml version="1.0" encoding="UTF-8"?>
<Theme xmlns="http://www.geograt.de/namespaces/gisx3/themedefinition/1.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<visibleName>Some value</visibleName>
	<dataSource>test_shape</dataSource>
	<filter>ATTRIBUTE1 = 'VALUE_1'</filter>
</Theme>

Dieses Beispiel definiert ein Thema mit der ID "testA" im SHAPE Datastore. Datenquelle hierfür ist eine SHAPE Datei mit dem Namen "test_shape.shp". Es werden nur Datensätze verwendet, die die Eigenschaft ATTRIBUTE1 = 'VALUE_1' haben.

<GISX3HOME>/datastores/shape/themes/testAextended.xml
<?xml version="1.0" encoding="UTF-8"?>
<Theme xmlns="http://www.geograt.de/namespaces/gisx3/themedefinition/1.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<visibleName>Some value</visibleName>
	<dataSource>testA</dataSource>
	<filter>ATTRIBUTE2 = 'TEST'</filter>
</Theme>

Durch obige Definition entsteht ein neues Thema mit der ID "testAextended", dass sich auf "testA" bezieht. Die Filterdefinition für das neue Thema ist in diesem Fall "ATTRIBUTE1 = 'VALUE_1' and ATTRIBUTE2 = 'TEST'".

Interne Attributnamen vs. JSON Attributnamen

GISX 3.x unterscheidet an vielen Stellen in der Definition zwischen Internen Attributnamen und JSON Attributnamen.

Unter internen Attributnamen sind immer die direkt verwendeten Namen einer Datenquelle zu verstehen. Im Falle von Datenbankdaten sind dies die Attributnamen in der jeweiligen JAVA Klasse, auf die eine Tabelle gemappt wurde. So wird aus dem Feld "C10" in einer GISX 2.x Datenbank, das Feld "location.town", aus "C07" wird "usage".

Leider können nicht alle Attributnamen direkt nach JSON konvertiert werden (Probleme mit Caching wegen Syntax, Flachgezogene Struktur in JSON etc.). Aus diesem Grund werden in JSON an vielen Stellen andere Namen verwendet.

Auch in der Definition müssen an verschiedenen Stellen andere Namen verwendet werden. 

Grundsätzlich gilt: Die internen Attributnamen finden Verwendung in Filterdefinitionen in Themen. In allen anderen Bereichen werden die JSON Attributnamen verwendet.

Bei der Verwendung von SHAPE Dateien sind beide Attributenamen identisch.