Letzte Änderung:  
29.03.2010 13:10:12
 
ein Counter...
Anmelden
  Dokumentation - [Symbole und Klassifikation] - [Klassifikationen]  
Bild Über IWAN
Bild Das Produkt
Bild ein wenig Technik
Bild Referenzen
Bild Open GIS
Bild History
Bild Aktuelle Änderungen

Bild Dokumentation
Bild Datenzugriff
Bild IwanScript
Bild Symbole und Klassifikation
PixelBild Maßstabsab. Darstellung
PixelBild Symbole
PixelBild Klassifikationen
PixelBild Kartenqualität
PixelBild Beispielsymbole
Bild How-To's
Bild Beispielskripten

Bild Kontakt/Impressum
Bild Kontakt
Bild Impressum
Bild Haftungsausschluss
Bild Copyright
Bild Weitere Links

 

Klassifikationen

Zur Klassifikation von Elementen einer Ebene kann eine Legendendatei angegeben werden. Die Legendendateien haben immer die Extension ".ILF". Dies steht für IwanLegendFile.

Bei diesen Dateien handelt es sich ebenfalls um einfache ASCII Dateien, welche z.B. mit einem einfachen Text-Editor erstellt werden können.

Die Legendendateien werden einmalig beim Laden einer Ebenen gelesen. Veränderungen wirken sich erst nach dem Neuladen der Ebene aus.
Es gibt zwei Typen von Klassifikationen:

  • Eindeutiger Wert,
  • Bereich ("von bis")

Bei beiden Typen muss in der ersten Zeile der Legendetyp in Großschreibung angegeben werden.
Der nächste Wert ist jeweils der Name des Bezugsfeld in der Ebene.
Die Legendendatei wird durch die theSymbolFile bei der Ebenendefinition angegeben. Auch eine Inline-Definition ist möglich, weiteres dazu am Ende dieser Seite.

Zusätzliche Steuerparameter

Ab Version 3.2.0 können in der ersten Zeile weitere Schlüsselwörter eingefügt werden:

{FORCEORDER|NOORDER}
Legt fest, ob bei der Ausgabe der Legende die Reihenfolge wie beim Einlesen erhalten bleibt (FORCEORDER), oder ob die Ausgabe alphanumerisch sortiert erfolgen soll. (nur für UNIQUE)

{FORCECOUNTING|NOCOUNTING}
ForceCounting legt fest, dass nur für die Einheiten, welche auch mind. eine Geometrie enthalten, die Ausgabe in der Legende erfolgen soll. Zudem wird in der Legende die Anzahl der Elemente je Eintrag mit ausgegeben. Diese Option wirkt nur auf ShapeLayer.
NoCounting ist die Standardeinstellung. Dabei werden immer alle Einträge der Legendendatei in der von IWAN automatisch generierten Legende angezeigt.

Ab Version 3.3.1 steht zusätzlich:
SYMBOLRULE{minScale,maxScale,alternateSmbIndex} zur Verfügung.
Diese Angabe legt fest, das für einen bestimmten Maßstabsbereich nur ein einfaches Symbol zum Einsatz kommt.

Ab der Iwan Version 3.4.x ist die Verwendung von ILF Dateien im Zusammenhang mit mehr als einem Symbol möglich. Dabei werden verschiedene neue Optionen in der Kopfzeile definiert.

Die Schreibweise scheint auf den ersten Blick berechtigter Weise nicht sehr komfortabel, aber die damit gewährleistete Abwärtskompatibilität ist uns in der Entwicklung sehr wichtig.

Die Verwendung der gebotenen Möglichkeit umgeht ein bekanntes Darstellungsproblem von geschichteten Symbolen, dazu finden Sie [hier] weitere Details.

Neu sind dabei die Schlüsselwörter:

SYMBOLLAYERCOUNT:n

Dieser Parameter ist im Fall des Einsatzes von mehreren Symbolebenen nicht optional und gibt die Anzahl der Layer vor. Jeder folgende Klassifikationseintrag in dieser ILF Datei muss genau über die durch n festgelegte Anzahl von Symbolen verfügen. Die Symbolnummern werden dabei durch ein | - Zeichen getrennt, siehe Beispiel.

... und ...

LAYERRULES{index,showInLegend,minScale,maxScale;...}

Dieser Parameter ist optional. Die Argumente stellen ein Viererpaar von kommagetrennten Werten pro Symbollayer dar, die zu beschreibenden Layer werden durch ein Semikolon getrennt.

  • index - der Null basierte Index des Symbollayers für welche die folgenden Werte zutreffen
  • showInLegend - ein Boolscher Wert (true/false) welcher angibt das dieser Symbollayer in der Legende mit aufgenommen werden soll. Die Legendensymbole für diesen Layer werden je Klassifikationseintrag in der angegebenen Reihenfolge übereinander dargestellt, wenn an dieser Stelle keine Ausnahme (durch Angabe von false) definiert wird
  • minScale - die unterer Maßstabsgrenze ...
  • maxScale - und die obere Maßstabsgrenze in der dieser Symbollayer dargestellt werden soll. Die Werte -1 definieren "unendlich" groß bzw. klein.

Die Angabe kann für jeden Layer optional erfolgen. Standardwerte sind: - immmer in Legende anzeigen,
- keine Maßstabsbegrenzung.

Als Beispiel folgende Anweisung (type ist entsprechend der untenstehenden Definition zu ersetzten):

type SYMBOLLAYERCOUNT:2 LAYERRULES{0,TRUE,-1,-1;1,TRUE,-1,100000}
OBJART
3201 120|121 Schienenbahn
3205 120|121 Bahnstrecke
...

Für den Platzhalter Type ist entsprechend den Ausführungen unten IWAN_LEGEND_UNIQUE oder IWAN_LEGEND_RANGE einzusetzten.

Dabei wird festgelegt, dass der später zugewiesene Layer zwei Zeichendurchgänge erfährt. Die Schienenbahn/Bahnstrecke wird im Maßstabsbereich von >100000 nur mit Symbol Nummer 120 dargestellt, darunter wird diese Ebene einmal vollständig mit Symbol Nr. 120 und danach mit Symbol Nr. 121 gezeichnet. Das Legendensymbol wird für jede Zeile als Überlagerung beider Symbole dargestellt.

 

Ab Version 4.0.3 ist das Schlüsselwort ALLOWQUERYOPTIMIZE verfügbar.

Wenn SYMBOLLAYERCOUNT definiert wurde, kann je nach Datenquelle eine Optimierung bei dem Zeichenvorgang erfolgen.

Umgesetzt z.Z. bei dem Ebenentyp Oracle SDO.

Bei Zeichenvorgängen wird das generierte SQL Statement um " ... BEZUGSSPALTE IN (Alle,In,Frage,Kommenden,Werte,Bei,DiesemMaßstab)" erweitert.

Sie sollten einen Index auf die Bezugsspalte vorsehen.

Ab Version 4.1.4.201

ENABLESTRINGESCAPE ermöglicht das Niederschreiben der Werte mit Escape-Zeichen um Sonderzeichen zu maskieren. Ausgewertet werden Maskierungen für TAB, LF, CR und dem Backslash.

WARNINGSASERROR behandelt Warnungen als Fehler. Konkret ist dies dann gegeben, wenn nicht alle Zeilen korrekte Werte enhalten. Bisher wurde nur eine Warnung im Tracefile ausgegeben.

Eindeutiger Wert
Ab der dritten Zeile folgen die Einträge in der Form:

FELDWERT{TAB}SYMBOLNUMMER{TAB}BESCHRIFTUNG{CRLF}

IWAN_LEGEND_UNIQUE
OBJART
3501	51	Bahnhofsanlage
3502	50	Raststätte
3514	52	Brücke/Überführung/Unterführung
Ab der Version 4.0.2.186 kann als Wert auch $NULL angegeben werden. In diesem Fall werden Datenbank NULL Werte entsprechend zugewiesen. Die Angabe eines leeren Wertes führt zur Konvertierung in den Zieldatentypen. (z.B. wird "" als Ganzahl 0 interpretiert)
Bereichsklassifizierung
Diese Art der Klassifizierung ist nur für Numerische Datentypen möglich.
Es muss eine Angabe des Datentyp erfolgen. IWAN unterscheiden zwischen Fließkommazahlen und Ganzzahlen.
Für Ganzzahlige Argumente ist das Schlüsselwort LONG, für Fließkommazahlen das Wort FLOAT zu verwenden.
Die Werte werden in folgender Form geprüft: VAL>=LOWER AND VAL<=HIGHER, wie zu erkennen ist, sollte die Liste entsprechend Sortiert vorliegen.
Die Angabe vierten Zeile folgen die Einträge in der Form:
LOWER{TAB}HIGHER{TAB}SYMBOL{TAB}BESCHRIFTUNG{CRLF}
IWAN_LEGEND_RANGE
GUETE
LONG
1	10	1	gering
10	100	2	mittel
100	900	3	hoch
Allgemeine Hinweise

In der letzten Zeile muss ebenfalls ein Zeilenumbruch erfolgen.

Kommentare werden durch ein vorangestelltes /* Zeichen pro Zeile eingeleitet. Es ist zu beachten, dass Kommentare nur im Datenteil ausgewertet werden.

Ab Version 3.2.5 kann der Pseudowert $ALLOTHER verwendet werden. Dabei werden alle anderen Werte mit diesem Symbol dargestellt.

Die Syntax dafür lautet:

$ALLOTHER{TAB}SYMBOL{TAB}BESCHRIFTUNG{CRLF}
Inline-Definition

Ab der Iwan Version 3.3.3.450 ist die Angabe von Inlinedefinitionen möglich. Dabei muss keine separate Datei mehr erstellt werden, die Angabe des Inhaltes kann direkt in der .iws Datei mit erfolgen. Dazu muss als erstes Wort "INLINE:" angegeben werden. Danach kommt, in der gleichen Zeile, der Inhalt der Datei. Diese Schreibweise ist an Stelle des Dateinamen zu verwenden.

Druckersymbol Druckversion dieser Seite 

Zuletzt geändert am 18.08.09 (th)
Seitenalias: "ILF, Klassifikationen, Legendendatei,Legendendateien,ALLOWQUERYOPTIMIZE"
   Sitemap | IDU Homepage: [http://www.idu.de] cardo Homepage: [http://www.cardogis.com] GDDB Homepage: [http://www.gddb.de]