Symbole
Allgemeine Befehle
SetNewSymbolCount
Verändert die Anzahl der Symbol in dem Symbolset. Es werden keine Symbole gelöscht, nur hinzugefügt. 
Syntax:
SetNewSymbolCount(NewCount,MitPinsel,MitStiften);
Umfasst das Symbolset weniger als "NewCount" Elemente, wird die Anzahl der Symbole entsprechend erhöht.
Ist "MitPinsel" als wahr definiert, werden den neuen Symbolen Standardpinsel zugewiesen (Schwarz gefüllt). Wurde "MitStiften" als wahr angegeben, werden auch Standardstifte zugewiesen. (0px,Schwarz,nicht skaliert). Eine Kombination ist natürlich möglich.

SetMinMaxWidth
Diese Option bietet die Möglichkeit eine Größenbeschränkung in Pixeln für ein beliebiges Sybmol zu definieren.
Die Eigenschaften beziehen sich auf:
  • Punkte
  • Linien(breiten)
  • Texte
    Syntax:
    SetMinMaxWidth(SymbolNummer,MinimalGröße,MaximalGröße);
    
    Der Wertebereich der Parameter MindestGröße und MaximalGröße liegt zwischen 0 und 254. Die Angabe von SetMinMaxWidth(1, 3, 5) bedeutet demnach, das Symbol mit der Nummer 1 wird nicht kleiner als 3px und nicht größer als 5px.

SetROPCode
definiert die Angabe wie die Pixel dieses Objektes mit darunterliegenden Pixeln kombiniert wird.
Die ROP-Codes sind z.B. der MSDN zu entnehmen und der Funktion im Klartext zu übergeben. 
Syntax:
SetROPCode(SymbolNummer,"R2_MASKPEN");
... wobei R2_MASKPEN einen der gültigen Werte darstellt.

SetSymbolRule
Dieser Befehl ermöglicht die Auswahl einer maßstabsabhängigen Symboldarstellung. Die Regel kann beliebig verschachtelt werden.
SetSymbolRule(SymbolNummer,AlternativeSmbNr,minScale,maxScale);
Bsp:
SetSymbolRule(16,17,0,10000);

Legt fest, dass das Symbol mit Nummer 16 dann zu Symbol Nummer 17 wird, wenn der Kartenmaßstab NICHT im Bereich von 0 <= x <= 10000 liegt.

SetSymbolTypes
Legt die Typen (Linie,Punkt,Fläche,Schrift) eines Symbol fest. Wird der Typ aktiviert und ist noch nicht vorhanden, wird ein Standardtyp erstellt. Syntax:
SetSymbolTypes(SymbolNummer,Pinsel,Stift,Marker,Schrift);
Die Angaben werden als Boolean Werte interpretiert (true,false,0,1,"y",...)

SetSymbolOffset
Gibt den Offset für Symbole in Pixeln an. wird Z.z. nur für Liniensymbole ausgewertet. Der Offset ist immer ein Wert in der Einheit Pixel. 
Syntax:
SetSymbolOffset(SymbolNummer,:pixelWert);
Für die Werte werden benannte Argumente verwendet. Die Angabe erfolgt in der Form : Argument:Wert.
Möglich sind dabei z.Z.:
  • Offset
  • XOffset
  • YOffset
    Wobei z.Z. nur Offset ausgewertet wird. Der Offset wird ebenso z.Z. nur auf Linien angewendet.

SetPrintColors
Hierbei kann für jedes Element eines Symboles eine alternative Farbe gewählt werden. Diese kommt dann zum Einsatz, wenn das entsprechende Flag vor der Bilderstellung gesetzt wurde.
SetPrintColors(SymbolNummer,:Color);
	
Für die Symboleigenschaft werden benannte Argumente verwendet. Die Angabe erfolgt in der Form : Argument:Wert. Soll z.B. die Farbe des Stiftes und des Pinsel gesetzt werden ist ein Aufruf in der Form:
SetPrintColors(10,Pen:"Red",Brush:"#FF00DD");

erforderlich.

RegisterParameters
Oft steht das Problem bestimmte Formen der Darstellung in Abhängigkeit von Attributen der Datenquelle zu realisieren. Die bisherigen Möglichkeiten durch Legendendateien sind nicht in jedem Fall ausreichend. Soll z.B. ein Punktsymbol in Abhängigkeit eines Wertes gedreht werden, müssen entsprechende Klassifikationen vorgenommen werden.

Um dieses Vorgehen zu vereinfachen besteht ab Server Version 3.3.1.1020 die Möglichkeit Parameteran Datenquellen zu definieren, welche bei der Darstellung des jeweiligen Datensatzes dem Symbol übergeben werden. Die Parameter beeinflussen bei allen Arten der Symboldefinition die Darstellung, sei es aus einer Klassifikation oder als Einzelsymbol. Ebenso werden alle weiteren Symboleigenschaften (z.b. Regeln, Min/Max Angaben) berücksichtigt.
RegisterParameters(ForSymbol,For:"SUBTYPE",
option1:ParameterIndex,
optionN:ParameterIndex);
Alle Argumente außer der Symbolnummern werden als "Benannte" Argumente übergeben. Es muss mindestens eine Option sowie die Angabe für den Subtype enthalten sein.

Zulässige Argumente für den Parameter For sind:

  • PEN
  • BRUSH
  • MARKER
  • FONT

    Wichtiger Hinweis: z.Z. werden Parameter nur für "MARKER" angewendet. Aber Version 4.0.3 auch für Stifte.

    Zulässige Optionen sind :

    Option P B M F Bedeutung
     
    FGCOLOR x x x o Vordergrundfarbe *1,*2
    BGCOLOR o x x o Hintergrundfarbe *1,*2
    SIZE x o x o Größe, Fließkommazahl *2
    CHRCODE o o x o Zeichenkode, Ganzahl (0-255)*2
    ANGLE o o x o Winkel in Grad, Fließkommazahl -360 - +360

    *1 Bei allen Farbangabem existiert jeweils eine weitere Option mit dem Suffix "P" (z.B. FGCOLORP). Dieser steht für den Modus PrintColor und kommt beim Setzen des entsprechenden Flags zum Einsatz.
    Beachten Sie auch die Hinweise für Farbangaben. 

    *2 Diese Angaben bei Punktsymbolen beziehen sich immer auf den ersten Layer. 
    Hinweis: Als Charcode bei TrueType Markern wird auf den Datentyp geprüft, wenn es ein numerischer Datentyp (in der Definition der Quelle) ist, wird der Zahlenwert ausgewertet, ansonsten erfolgt eine Konvertierung in eine Zeichenkette und der ASCII Code des ersten Buchstabens wird verwendet.

    Bsp:
  • Symboldatei
     
    Go;
    call "SC";
        SetTrueTypeMarker(1,"Webdings",
                            400,
                            "RGB(255,210,93)",
                            "RGB(23,29,255)",
                            52);
        RegisterParameters(1,
                            for:"MARKER",
                            angle:0,
                            size:1);
    routine "SC";
        SetNewSymbolCount(2,false,false);
    EndRoutine;
    End;

    Ebenendefinition
    Go;
     ret=ExecOld("AddTheShapeLayerA",
    	theName:"PKTTEST",
    	theDescription:"Test für Parameter",
    	theFile:"points.shp",
    	theSymbolSet:"..\smb\parameters.ipalx",
    	theSymbolFile:"class.ilf",
    	theCacheMode:"SIMPLE",
    	theParameterFields:"WINKEL|SIZE");
    End;

    In der Symboldatei wird ein neues Symbol mit der Symbolnummer 1 vom Typ Marker definiert. Das Symbol wurde mit einem Winkel von 0° initialisiert und es wurde eine Symbolgröße vom 400 Karteneinheiten zugewiesen. Der folgende Befehl RegisterParameters legt für die Symboleigenschaften Angle und Size einen Index in ein Parameterfeld fest, welches Datenfelder in der Attributtabelle der Ebene definiert. In diesen Datenfeldern stehen neue Werte für die Symboleigenschaften. Das Parameterfeld wird bei der Ebenendefinition im Parameter theParameterFields übergeben. Wenn keine oder nicht alle Argumente in der Datenquelle beschrieben wurden, wird der im Symbol definierte Wert verwendet. 
    Für die Shape-Datenquelle werden die Spalten "WINKEL" und "SIZE" als Parameter 0 bzw. 1 dem Symbol bei der Darstellung übergeben.


-- Ab Version 3.4.x stehen folgende weitere Optionen zur Verfügung --

beachten Sie auch die Hinweise zur Kartenqualität.


SetAntialias

Um die Qualität der Ausgabe zu verbessern, kann Antialiasing verwendet werden.

SetAntialias(SymbolNummer,<true|false>);

Diese Option erwirkt ein Wechsel der Renderingengine. Dadurch stehen einige Optionen nicht zur Verfügung.

Hinweis: Zur Zeit sollten diese Option nur mit durchgezogenen Linien (Typ: SOLID) verwendet werden. Weitere Hinweise finden Sie unter Kartenqualität.

SetAlphaValue

Um halbtransparente Flächen (oder Linien) darzustellen kann der Alpha-Wert für ein Symbol definiert werden

SetAlphaValue(SymbolNummer,<0...100>);

Auch diese Option erwirkt ein Wechsel der Renderingengine mit entsprechenden Einschränkungen.

Hinweis: Zur Zeit sollte diese Option nur in Verbindung mit durchgezogenen Linien (Typ: SOLID) und/oder voll gefüllten Flächen verwendet werden.

Je kleiner der Alphawert ist, desto durchscheinender wird die Darstellung ausfallen. 100 bedeute "Keine Transparenz". Wie bereits erwähnt, hat diese Angabe z.Z. keine Auswirkungen auf Punkte oder Texte. Bei Symbolen, welche nicht der genannten Beschreibung entsprechen, werden alle weiteren Attribute, wie z.B. Schraffuren etc., ignoriert.

MakeSymbolGroup

Die Darstellung von Symbolen aus mehreren Ebenen stellt ein besonderes Problem dar. Typisch dafür sind Straßendarstellungen. Eine dickere Linie wird mit einer andersfarbigen dünneren überlagert und so entsteht eine Darstellung wie aus dem Stadtplan gewohnt. Es können beliebig viele solcher Ebenen definiert werden. Die Zeichenreihenfolge entspricht der Definition.

MakeSymbolGroup(parentSymbolNumber,childSymbolNumber);

Das Objekt wird erst mit Symbol "Parent" gezeichnet, unmittelbar danach mit dem Symbol "Child". Die Performance ist dabei nicht sehr gut.

Hinweis: Die neuen Möglichkeiten bei der Definition einer Klassifikation (ILF) sind möglichst vorzuziehen. Dabei sind sowohl die Geschwindigkeit als auch in der Darstellungsqualitätbedeutend besser.

Flächensymbole
SetBrushPropEx
Überschreibt Farbangaben eines Pinsel. Bei Schraffuren kann hier die Transparenz deaktiviert werden. 
Syntax:
SetBrushPropEx(SymbolNummer,Transparent,
"VordergrundFarbe","HintergrundFarbe","Rahmenfarbe");
Um schraffierten Flächen eine Hintergrundfarbe zuzuweisen (*nicht* durchsichtig) muss dem Argument Transparent "false" übergeben werden.
Soll die Rahmenfarbe nicht geändert werden, wird hier das Argument "null" erwartet (als Zeichenkette).

SetBrushStyle
Überschreibt Stile eines Pinsel. 
Syntax:
SetBrushStyle(SymbolNummer,Stil,Hatch);
Setzt den Stil eines Pinsels, (BS_SOLID,BS_NULL,BS_HATCHED).
Wenn der Stil BS_HATCHED ist, können folgende Schraffurwerte angeben werden : HS_BDIAGONAL,HS_CROSS,HS_DIAGCROSS,HS_FDIAGONAL,HS_HORIZONTAL,HS_VERTICAL.
Alternativ ist der Wert "NONE" anzugeben.

BeginPattern / EndPattern
Durch die folgenden Funktionen kann ein Füllmuster (Pattern) generiert werden. Die Definition erfolgt in einem Block, beginnend mit BeginPattern und wird mit EndPattern beendet. Eine Schachtelung ist nicht möglich. Innerhalb eines Pattern können beliebig viele Zeichenoperationen angegeben werden. Ein Pattern wird intern als Bitmap erzeugt und in gewissen (festzulegenden) Bereichen skaliert. Eine transparente Darstellung ist z.Z. *nicht* möglich. Diese Bitmap wird dann als "Pinsel" verwendet und wiederholt in die Fläche gezeichnet.
Alle folgenden Befehle sind nur innerhalb einer Patterndefinition zu verwenden.
BeginPattern(SymbolNummer,Grundfarbe,Breite_in_mm,Höhe_in_mm,Bezugsmaßstab);
Diese Angabe weist dem angegeben Symbol dieses Pattern zu und beginnt den Definitionsblock.
Wird diese Symbol später zur Flächendarstellung verwendet, werden alle anderen Fülleigenschaften dieses Symbol ignoriert
Die Größenangabe erfolg in mm bei angegebenem Maßstab.
Ist der Maßstab "0", wird das Patter nicht skaliert. 

SetPatternMode("COLOR"|"MONOCHROME|BITMAP",{BitmapForeColor});
Legt den Modus des Muster fest. Die Angabe "MONOCHROME" ist z.Z. nicht zu Verwenden.
Der Modus "BITMAP" ist erst ab Version 3.2.0 verfügbar. Für Monochrome Bitmaps muss ForeColor definiert werden.
SetPatternExtents(XMin,YMin,XMax,YMax);
Legt die Minimum und Maximum Ausdehnung der zu erzeugenden Bitmap in *Pixeln* fest.
Hinweis: gilt nicht für Modus "BITMAP" 

Nachdem die Patterneigenschaften festgelegt wurden, können nun beliebig viele Zeichenoperationen angegeben werden. Alle Zeichenoperationen erhalten Positionsangabe in Prozent bzgl. der aktuellen Patterngröße. Dieses Vorgehen ermöglicht die Skalierung der Elemente. Es führt allerdings auch zu Rundungsproblemen die bei der Darstellung störend wirken können.
Der Koordinatenbereich hat 0,0 als linke obere Ecke und entsprechend 100,100 als rechter untere Ecke. 
Line(SymbolNummer,x1,y1,x2,y2);
Zeichnet eine Linie mit der angegebene Symbolnummer. Z.B. ergibt Line(10,0,0,100,100) eine Diagonale Linie von links oben nach rechts unten. Beachten Sie, wie bei allen anderen Funktionen, das die Skalierungseigenschaften der angegebenen Symbol Verwendung finden.
Box(SymbolNummer,x1,y1,x2,y2);
Zeichnet eine gefüllte Fläche mit der angegebene Symbolnummer.
Circle(SymbolNummer,xCen,yCen,Radius);
Zeichnet einen Kreis an den angegeben Koordinaten. Z.B. Circle(10,50,50,10) zeichnet einen Kreis in die Mitte des Pattern mit einem Radius von 10% der Ausdehung.
Marker(SymbolNummer,x,y,size);
Zeichnet einen (TrueType) Marker an den angegeben Koordinaten.
Die "Size"-Angabe überschreibt dabei die im Marker definierte Größe. 

SetBitmap(BitsPerPixel,Bitmap);
Ist der Patternmodus auf "BITMAP" gesetzt, muss genau ein Aufruf von SetBitmap erfolgen. Andere Elemente sind *nicht* zulässig.
Der "bitmap"-Parameter besteht aus einer Zeichenkette mit einem Schlüsselwort für den Typ der Bitmap, gefolgt von der Typabhängigen weitern Angabe.

Je nach Bitmaptyp werden verschieden Paramter des Pattern ignoriert oder interpretiert.
Wichtig: Bitmaps werden generell nicht skaliert, die Scale-Angabe in der Patterndefinition wird immer ignoriert.

Als Typ ist möglich:
  • file: lädt eine Windows-bmp Datei mit 1 oder 8 bit Farbtiefe
  • stipple: die Bits werden als Bitarray oder Bytearray direkt angegeben.
  • ressource: lädt "buildin" Muster

    bei Typ....
    "file:" werden alle Parameter die für dieses Pattern definiert wurde (Größe, Farben,etc.),ebenso die Farbtiefenangabe *ignoriert*.
    "stipple:" wird für die Größenbestimmung dieser Bitmap die im Pattern definierte Größe als Pixelausdehnung betrachtet.
    "ressource:" Größenangabe und die Farbtiefenangabe werden ignoriert. 

    Für Alle monochromen Bitmap's gilt: als Hintergrundfarbe wird die in der Patterndefinition definierte Farbe verwendet.
    Hier ist das optional das Schlüsselwort "TRANSPARENT" zu verwenden. Die Vordergrundfarbe der Bitmap wird im zweiten Parameter für "SetBitMap" übergeben.
    ein Beispiel find Sie hier


Nachdem alle Angaben für dieses Pattern getroffen wurden, wird der Definitionsblock mit
EndPattern();
beendet. 


ein Beispiel:

Go;
  /*
   Diese Angabe erzeugt das Pattern für
   Symbol N° 73, in dem linken Beispiel
   zu finden als die graue Fläche mit
   der Signatur.
  */
  BeginPattern(73,"#D6D3D6",50,50,1000);
	SetPatternExtents(10,10,100,100);
	SetPatternMode("Color");
	Line(9,10,15,10,25);
	Line(9,30,80,30,90);
	Line(9,60,40,60,50);
	Line(9,90,70,90,80);
	Line(9,70,20,80,20);
	Line(9,10,50,20,50);
	Line(9,40,60,50,60);
	Line(9,50,80,60,80);
  EndPattern();
End;
 Beispiel für ein Pattern


Beispiele für Bitmapmodus:
Go;
  /*
   Diese Angabe erzeugt ein Pattern für
   Symbol N° 1 mit rotem Hintergrund und
   Grünen Linien.
   Die Definition erfolgt als Bit-Block.
   Die Bitmap besteht aus 8x8 Pixel mit einer
   Farbtiefe von einem Bit (monochrome).   
  */
  BeginPattern(1,"Red",8,8,0);
	SetPatternMode("BITMAP","Green");
	SetBitmap(1,"stipple:
                          10000000
                          01000000
                          00100000
                          00010000
                          00001000
                          00000100
                          00000010
                          00000001"
                              );
  EndPattern();
End;


Go; /*
... als Byte-Block, Transparent
diese Darstellung entspricht der
in ArcView verwendeten.
*/
BeginPattern(1,"TRANSPARENT",8,8,0);
SetPatternMode("BITMAP","Green");
SetBitmap(1,"stipple:80402010 08040201"); EndPattern();
End;

Go;
/*
... als Dateiquelle */
BeginPattern(1,"Ignoriert",1,1,0);
SetPatternMode("BITMAP","Green");
SetBitmap(1,"file:c:c\stipple1.bmp");
EndPattern();
End;
Liniensymbole
SetLinePropEx
Überschreibt Angaben eines Stiftes 
Syntax:
SetLinePropEx(SymbolNummer,Color,
Width,RefScale,
Style,UserStyle,{EndCap},{EndJoin});
Ändert die Farbe, Stärke und den Stil eines Stiftes.
Mögliche Werte für Style sind: PS_SOLID, PS_DASH, PS_DOT, PS_DASHDOT, PS_DASHDOTDOT, PS_NULL, PS_INSIDEFRAME, PS_USERSTYLE.
Bei der Angabe von PS_USERSTYLE muss ein UserStyle als kommaseparierte Zeichenkette übergeben werden.
Bei allen anderen Stilen muss "none" eingetragen werden.

Die optionalen Argumente "Cap" und "Join" stehen ab Version 3.2.0 zur Verfügung.
Eine Beschreibung der möglichen Parameter finden Sie z.B. hier. Zu beachten ist, das die Reihenfolge der Parameter zu berücksichtigen ist. So kann kein Jointyp angegeben werden ohne einen gültigen Cap-Type zu definieren. Werte für EndCap : PS_ENDCAP_ROUND,PS_ENDCAP_SQUARE,PS_ENDCAP_FLAT
Werte für EndJoin: PS_JOIN_BEVEL,PS_JOIN_MITER,PS_JOIN_ROUND

Go;
  /*
   Braune, 4mm starke Linie, nicht skaliert mit einem "Strich-keinstrich"
   Intervall von 10,20.
  */
  SetLinePropEx(12,"Brown",4,0,"PS_USERSTYLE","10,20");
End;

SetPenBrushStyle
Weist der Linie einen Pinsel zu Darstellung zu.
SetPenBrushStyle(SymbolNummer,"BrushType","BrushHatch");
Die möglichen Parameter sind unter SetBrushStyle dokumentiert.

SetLineWidthReference
Mit dieser Option kann die Breite eines Liniensymbol relativ zu einem anderen Symbol erfolgen.
SetLineWidthReference (ForSymbol,ReferenceSymbole,DistanceInPixel);
Bsp.:
SetLineWidthReference(10,11,5);
legt fest, dass das Symbol N° 10 immer 5 Pixel breiter als Symbol N° 11 dargestellt wird.
Alle anderen Breitenangaben für Symbol 10 werden dabei ignoriert.
Negative Werte sind ebenso zulässig. Zu beachten ist dabei, das diese in Quoten (Hochkomma) angegeben werden müssen.

SetLineEndType
Mit dieser Option wird der Linienabschluss für Liniengeometrieen festgelegt.
SetLineEndType(ForSymbol,
Type:{ARROWEND|ARROWSTART|ARROWBOTH},
Length:lengthInMM,
Radius:radiusInMM,
Angle:AngleInGrad);

Als Typ sind folgenden Angabe möglich:

  • ARROWSTART,ARROWEND,ARROWBOTH
  • CIRCLESTART,CIRCLEEND,CIRCLEBOTH

Je nach Type (Pfeil oder Kreis) werden die entsprechenden Argumente erwartet. Für Pfeile muss angegeben werden: length und Angle, für Kreise muss radius angegeben werden. Wiederholtes aufrufen für ein Symbol ist möglich. Wenn dieses Symbol eine Füllung definiert, dann wird auch der Kreis gefüllt dargestellt. Die Pfeile und Kreise skalieren dann, wenn die Linienskalierung durch einen Bezugsmaßstab definiert wurde.

Go;
/*
Stellt eine Linie mit Pfeil in Digitialisierichtung und
einem Kreis als Abschluss dar. Die Linienbreite wurde 
als skalierende definiert, ist aber nur 0 Px - daher 
konstant als 1Pixel Darstellung
*/
SetNewSymbolCount(5,false,false);
SetLinePropEx(4,"Red",0,10000,"PS_SOLID","none","PS_ENDCAP_SQUARE","PS_JOIN_BEVEL");
SetBrushPropEx(4,false,"red","none","null");
SetLineEndType(4,type:"ARROWEND",length:10,angle:15);
SetLineEndType(4,type:"CIRCLESTART",radius:2);
End;


-- Ab Version 3.4.x stehen folgende weitere Optionen zur Verfügung --

beachten Sie auch die Hinweise zur Kartenqualität.


Für die Darstellung von komplexen Linientypen können auch die von Brushs bekannten Pattern eingesetzt werden. Dabei handelt es sich um (auch skalierbare) Bitmaps, welche entlang der Linie dargestellt werden. Die Darstellungsmöglichkeiten werden nahezu unbegrenzt erweitert. Um ein Pattern für eine Linie zu aktivieren, muss das Pattern mit dem Befehl:

SetPatternTargetPen()

für ein Liniensymbol festgelegt werden. Mit diesem Befehl wird das Pattern nicht zur Flächenfüllung, sondern nur für die Linieneigenschaften des jeweils darzustellenden Objektes festgelegt. Ein Beispiel (Auszug aus einer Ipalx-Datei):


BeginPattern(4,"White",8,8,10000);
SetPatternTargetPen();
SetPatternMode("COLOR","RED");
Line(3,0,50,100,50);
Line(3,50,50,50,30);
Box(7,40,30,60,10);
EndPattern();
SetAntialias(4,true);

Erzeugt diese Ausgabe:

Line als Pattern

Textsymbole



SetTextProp
Ändert/aktiviert die Schriftart für das angegebene Symbol 
Syntax:
SetTextProp(SymbolNummer,Schriftart,
TextFarbe,RefScal,
GrößeInMM,Kursiv,Wichtung);
Schriftart ist der Name der Schriftart, z.B. "Arial". 
Referenzscale von "0" erstellt eine nichskalierende Schrift. Ansonsten "Größe" bei "RefScale". Für "Kursiv" wird eine boolsche Angabe ("true/false") erwartet. Bei der Schriftstärke kann optional "true/false" (Fett oder nicht) oder ein Wichtungswert eingegeben werden (in 100'er Schritten, wobei 400=Normal,700=Bold ist)

SetTextPropEx
Dient der Einstellung erweiterter Textparameter. Alle Argumente außer der Symbolnummern werden als "Benannte" Argumente erwartet und sind somit optional.
Die möglichen Argumente im einzelen...

Argumentname Beschreibung mgl. Werte
Quality Legt die Textqualität fest ANTIALIASED,NONANTIALIASED,DEFAULT,DRAFT
Precision Legt die Präzision fest DEFAULT,DEVICE,OUTLINE,RASTER,TT_ONLY,TT_PRECIS
Underline Unterstrichen TRUE,FALSE
Strikeout Durchgestrichen TRUE,FALSE

Syntax:
SetTextPropEx(SymbolNummer,Quality:"NONANTIALIASED",Underline:true);
Definiert in diesem Beispiel eine Schrift mit deaktivierten Antialias unter einer Unterstreichung.
Für weitere Informationen zu den Parametern sei auf die MSDN verwiesen.
Punktsymbole
SetMarkerSize
Überschreibt Größenangaben eines (existierenden) Markersymbols. 
Syntax:
SetMarkerSize(SymbolNummer,Size);
Der Größenangabe kann hierbei ein Suffix "px" (z.B: "10px") zugewiesen werden, ist dies der Fall, wird die Skalierung des Markers aufgehoben und die Darstellung erfolgt in Pixeln.

SetMarkerAngle
Legt den Drehwinkel für ein Markersymbol fest. 
Syntax:
SetMarkerAngle(SymbolNummer,Winkel);
Der Winkel ist eine Kommazahl zwischen -360 bis 360. Zu beachten ist, dass negative Zahlen in Hochkomma geschrieben werden müssen.

SetTrueTypeMarker
Ändert/Aktiviert einen Truetype-Marker 
Syntax:
SetTrueTypeMarker(SymbolNummer,Schriftart,
GrößeInM,BGColor,Farbe,
ZeichenKode,{FarbeN,ZeichenKodeN});
Schriftart ist der Name der Schriftart, z.B. "Arial". 
Wird als BGColor "" oder "NONE" angegeben, wird der Hintergrund Transparent dargestellt, ansonsten mit der angegebenen Farbe.

Truetypemarker können aus mehreren Layern bestehen. Ein Layer besteht jeweils aus Zeichenkode und Vordergrundfarbe aus dem Font des Markers. 
Jeder Marker muss mindestens einen Layer definieren.
Sollen weitere Ebene definiert werden, sind diese als Paare von "Color","CharCode" anzugegeben.
Der Charcode entspricht dabei dem ASCII Code des Zeichens (numerisch 32-255).

BeginVectorMarker / EndVectorMarker
Punkte in IWAN werden normalerweise als TrueType dargestellt.
Mit Vektorsymbolen kann bei einfachen Darstellungen ein Performancegewinn erreicht werden. Ein Vektorsymbol kann aus maximal 10 Ebenen definiert werden.
Die Definition erfolgt wieder in einem Block, beginnend mit BeginVectorMarker und wird mit EndVectorMarker beendet. Eine Schachtelung ist nicht möglich. 
Alle folgenden Befehle sind nur innerhalb einer Vektordefinition zu verwenden.
BeginVectorMarker(SymbolNummer,Größe_in_KartenEinheiten,LinienFarbe,Füllfarbe);
Die Farbangaben sind wie üblich möglich. Das Schlüsselwort "NONE" deaktiviert Linie oder Füllung. 

VMBox(x1,y1,x2,y2);
Zeichnet eine (gefüllte) Fläche.
VMCircle(xCen,yCen,Radius);
Zeichnet einen (gefüllten) Kreis an den angegeben Koordinaten. Z.B. VMCircle(50,50,10) zeichnet einen Kreis mit einem Radius von 10% der Ausdehung. 
VMArrow(x1,y1,x2,y2,ArrowSize,ArrowAngle);
Zeichnet einen Pfeil an den angegeben Koordinaten. Z.B. VMArrow(10,10,20,20,4,20) zeichnet einen Pfeil von 10, 10 nach 20, 20 Pfeilenden die 4 lang sind und 20 Grad Winkel zwischen Linie und jedem Pfeilende. 
VMLine(x1,y1,x2,y2);
Ab IWAN-Version 4.1.4.103. Zeichnet eine Linie zwischen den zwei angebenen Punkten. 


Nachdem alle Angaben für diesen Vektor getroffen wurden, wird der Definitionsblock mit
EndVectorMarker();
beendet.