Letzte Änderung:  
29.03.2010 13:10:12
 
ein Counter...
Anmelden
  Dokumentation - [Symbole und Klassifikation] - [Symbole] - [Allgemeine Befehle]  
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 Allgemeine Befehle
PixelBild Flächensymbole
PixelBild Liniensymbole
PixelBild Punktsymbole
PixelBild Textsymbole
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

 

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 Parameter an 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ät bedeutend besser.


     

    Druckersymbol Druckversion dieser Seite 

    Zuletzt geändert am 10.01.08 (th)
    Seitenalias: "SetNewSymbolCount, SetMinMaxWidth, SetROPCode, SetSymbolRule, SetSymbolTypes,SetSymbolOffset, SetPrintColors, RegisterParameters,SetAntialias,SetAlphaValue,MakeSymbolGroup"
       Sitemap | IDU Homepage: [http://www.idu.de] cardo Homepage: [http://www.cardogis.com] GDDB Homepage: [http://www.gddb.de]