<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki-Khoffmann</id>
	<title>OSGeo - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki-Khoffmann"/>
	<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/wiki/Special:Contributions/Wiki-Khoffmann"/>
	<updated>2026-04-13T04:40:14Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.9</generator>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=46458</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=46458"/>
		<updated>2010-03-24T14:12:49Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
[[Image:gd.png|GD-Output]]    [[Image:agg.png|AGG-Output]]&lt;br /&gt;
&lt;br /&gt;
''Output mit '''GD''' und '''AGG'''''&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen &lt;br /&gt;
                              # benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss&lt;br /&gt;
                    # auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel zeigt das gleiche Thema, nur mit einem OFFSET 7 7 für den Kreissektor &amp;quot;Produzierendes Gewerbe&amp;quot;. Dieser OFFSET wird leider auch in der Legende dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_offset.png]]&lt;br /&gt;
[[Image:Kreise_legende-off.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE=itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
* itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
* minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
* minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen &lt;br /&gt;
                                # benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Nicht-Verwendung sowie der Benutzung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
* A mit 1000, 500, 200&lt;br /&gt;
* B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_ohne.png]]&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_mit.png]]&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert die horizontale Achse von der aus der Balken erzeugt wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken erstellt.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:balkendiagramme.png]]&lt;br /&gt;
[[Image:balken_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.org/output/dynamic_charting.html&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/mapserver/ticket/2136&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument wurde erarbeitet von [[User:Khoffmann | Karsten Hoffmann]].&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=27730</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=27730"/>
		<updated>2008-07-28T09:42:18Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* Beispiel eines LAYERs mit Kreissektorendiagrammen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
[[Image:gd.png|GD-Output]]    [[Image:agg.png|AGG-Output]]&lt;br /&gt;
&lt;br /&gt;
''Output mit '''GD''' und '''AGG'''''&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen &lt;br /&gt;
                              # benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss&lt;br /&gt;
                    # auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel zeigt das gleiche Thema, nur mit einem OFFSET 7 7 für den Kreissektor &amp;quot;Produzierendes Gewerbe&amp;quot;. Dieser OFFSET wird leider auch in der Legende dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_offset.png]]&lt;br /&gt;
[[Image:Kreise_legende-off.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE=itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
* itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
* minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
* minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen &lt;br /&gt;
                                # benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Nicht-Verwendung sowie der Benutzung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
* A mit 1000, 500, 200&lt;br /&gt;
* B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_ohne.png]]&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_mit.png]]&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert die horizontale Achse von der aus der Balken erzeugt wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken erstellt.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:balkendiagramme.png]]&lt;br /&gt;
[[Image:balken_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/mapserver/ticket/2136&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument wurde erarbeitet von [[User:Khoffmann | Karsten Hoffmann]].&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=27729</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=27729"/>
		<updated>2008-07-28T09:40:21Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* Dynamische Kreisgrößen ab Version 5.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
[[Image:gd.png|GD-Output]]    [[Image:agg.png|AGG-Output]]&lt;br /&gt;
&lt;br /&gt;
''Output mit '''GD''' und '''AGG'''''&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen &lt;br /&gt;
                              # benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss&lt;br /&gt;
                    # auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel zeigt das gleiche Thema, nur mit einem OFFSET 7 7 für den Kreissektor &amp;quot;Prodzierendes Gewerbe&amp;quot;. Dieser OFFSET wird leider auch in der Legende dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_offset.png]]&lt;br /&gt;
[[Image:Kreise_legende-off.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE=itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
* itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
* minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
* minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen &lt;br /&gt;
                                # benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Nicht-Verwendung sowie der Benutzung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
* A mit 1000, 500, 200&lt;br /&gt;
* B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_ohne.png]]&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_mit.png]]&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert die horizontale Achse von der aus der Balken erzeugt wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken erstellt.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:balkendiagramme.png]]&lt;br /&gt;
[[Image:balken_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/mapserver/ticket/2136&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument wurde erarbeitet von [[User:Khoffmann | Karsten Hoffmann]].&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24741</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24741"/>
		<updated>2008-05-05T09:25:08Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* Beispiel eines LAYERs mit Kreissektorendiagrammen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
[[Image:gd.png|GD-Output]]    [[Image:agg.png|AGG-Output]]&lt;br /&gt;
&lt;br /&gt;
''Output mit '''GD''' und '''AGG'''''&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen &lt;br /&gt;
                              # benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss&lt;br /&gt;
                    # auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel zeigt das gleiche Thema, nur mit einem OFFSET 7 7 für den Kreissektor &amp;quot;Prodzierendes Gewerbe&amp;quot;. Dieser OFFSET wird leider auch in der Legende dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_offset.png]]&lt;br /&gt;
[[Image:Kreise_legende-off.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
* itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
* minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
* minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen &lt;br /&gt;
                                # benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Nicht-Verwendung sowie der Benutzung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
* A mit 1000, 500, 200&lt;br /&gt;
* B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_ohne.png]]&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_mit.png]]&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert die horizontale Achse von der aus der Balken erzeugt wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken erstellt.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:balkendiagramme.png]]&lt;br /&gt;
[[Image:balken_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/mapserver/ticket/2136&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument wurde erarbeitet von [[User:Khoffmann | Karsten Hoffmann]].&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=File:Kreise_legende-off.png&amp;diff=24740</id>
		<title>File:Kreise legende-off.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=File:Kreise_legende-off.png&amp;diff=24740"/>
		<updated>2008-05-05T09:22:05Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: Legende für Kreisdiagramme mit einem OFFSET&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Legende für Kreisdiagramme mit einem OFFSET&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=File:Kreisdiagramme_offset.png&amp;diff=24739</id>
		<title>File:Kreisdiagramme offset.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=File:Kreisdiagramme_offset.png&amp;diff=24739"/>
		<updated>2008-05-05T09:19:51Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: Karte mit Kreisdiagrammen und einem OFFSET
Datenquelle: Statistisches Landesamt Berlin 2005&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Karte mit Kreisdiagrammen und einem OFFSET&lt;br /&gt;
Datenquelle: Statistisches Landesamt Berlin 2005&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24738</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24738"/>
		<updated>2008-05-05T08:56:35Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* Balkendiagramme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
[[Image:gd.png|GD-Output]]    [[Image:agg.png|AGG-Output]]&lt;br /&gt;
&lt;br /&gt;
''Output mit '''GD''' und '''AGG'''''&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen &lt;br /&gt;
                              # benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss&lt;br /&gt;
                    # auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
* itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
* minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
* minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen &lt;br /&gt;
                                # benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Nicht-Verwendung sowie der Benutzung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
* A mit 1000, 500, 200&lt;br /&gt;
* B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_ohne.png]]&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_mit.png]]&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert die horizontale Achse von der aus der Balken erzeugt wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken erstellt.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:balkendiagramme.png]]&lt;br /&gt;
[[Image:balken_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/mapserver/ticket/2136&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument wurde erarbeitet von [[User:Khoffmann | Karsten Hoffmann]].&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24737</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24737"/>
		<updated>2008-05-05T08:56:05Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* Kreissektorendiagramme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
[[Image:gd.png|GD-Output]]    [[Image:agg.png|AGG-Output]]&lt;br /&gt;
&lt;br /&gt;
''Output mit '''GD''' und '''AGG'''''&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen &lt;br /&gt;
                              # benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss&lt;br /&gt;
                    # auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
* itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
* minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
* minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Nicht-Verwendung sowie der Benutzung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
* A mit 1000, 500, 200&lt;br /&gt;
* B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_ohne.png]]&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_mit.png]]&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert die horizontale Achse von der aus der Balken erzeugt wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken erstellt.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:balkendiagramme.png]]&lt;br /&gt;
[[Image:balken_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/mapserver/ticket/2136&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument wurde erarbeitet von [[User:Khoffmann | Karsten Hoffmann]].&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24736</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24736"/>
		<updated>2008-05-05T08:51:34Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
[[Image:gd.png|GD-Output]]    [[Image:agg.png|AGG-Output]]&lt;br /&gt;
&lt;br /&gt;
''Output mit '''GD''' und '''AGG'''''&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
* itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
* minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
* minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Nicht-Verwendung sowie der Benutzung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
* A mit 1000, 500, 200&lt;br /&gt;
* B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_ohne.png]]&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_mit.png]]&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert die horizontale Achse von der aus der Balken erzeugt wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken erstellt.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:balkendiagramme.png]]&lt;br /&gt;
[[Image:balken_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/mapserver/ticket/2136&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument wurde erarbeitet von [[User:Khoffmann | Karsten Hoffmann]].&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24735</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24735"/>
		<updated>2008-05-05T08:50:39Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
[[Image:gd.png|GD-Output]]    [[Image:agg.png|AGG-Output]]&lt;br /&gt;
&lt;br /&gt;
''Output mit '''GD''' und '''AGG'''''&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
* itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
* minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
* minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Nicht-Verwendung sowie der Benutzung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
* A mit 1000, 500, 200&lt;br /&gt;
* B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_ohne.png]]&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_mit.png]]&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert die horizontale Achse von der aus der Balken erzeugt wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken erstellt.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:balkendiagramme.png]]&lt;br /&gt;
[[Image:balken_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;br /&gt;
&lt;br /&gt;
https://trac.osgeo.org/mapserver/ticket/2136&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument wurde erarbeitet von [[User:Khoffmann | Karsten Hoffmann]].&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24734</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24734"/>
		<updated>2008-05-05T08:48:47Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
[[Image:gd.png|GD-Output]]    [[Image:agg.png|AGG-Output]]&lt;br /&gt;
&lt;br /&gt;
''Output mit '''GD''' und '''AGG'''''&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
* itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
* minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
* minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Nicht-Verwendung sowie der Benutzung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
* A mit 1000, 500, 200&lt;br /&gt;
* B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_ohne.png]]&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_mit.png]]&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert die horizontale Achse von der aus der Balken erzeugt wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken erstellt.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:balkendiagramme.png]]&lt;br /&gt;
[[Image:balken_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument wurde erarbeitet von [[User:Khoffmann | Karsten Hoffmann]].&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24717</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24717"/>
		<updated>2008-05-04T10:54:24Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* Unterstützte Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
[[Image:gd.png|GD-Output]]    [[Image:agg.png|AGG-Output]]&lt;br /&gt;
&lt;br /&gt;
''Output mit '''GD''' und '''AGG'''''&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
* itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
* minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
* minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Verwendung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
* A mit 1000, 500, 200&lt;br /&gt;
* B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_ohne.png]]&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_mit.png]]&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert sozusagen die Achse von der aus der Balken gezeichnet wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken gezeichnet.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:balkendiagramme.png]]&lt;br /&gt;
[[Image:balken_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument wurde erarbeitet von [[User:Khoffmann | Karsten Hoffmann]].&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24716</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24716"/>
		<updated>2008-05-03T22:27:55Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
[[Image:gd.png]]    [[Image:agg.png]]&lt;br /&gt;
&lt;br /&gt;
''Output mit '''GD''' und '''AGG'''''&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
* itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
* minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
* minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Verwendung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
* A mit 1000, 500, 200&lt;br /&gt;
* B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_ohne.png]]&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_mit.png]]&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert sozusagen die Achse von der aus der Balken gezeichnet wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken gezeichnet.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:balkendiagramme.png]]&lt;br /&gt;
[[Image:balken_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument wurde erarbeitet von [[User:Khoffmann | Karsten Hoffmann]].&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24715</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24715"/>
		<updated>2008-05-03T22:27:38Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* Dynamische Kreisgrößen ab Version 5.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
[[Image:gd.png]]    [[Image:agg.png]]&lt;br /&gt;
&lt;br /&gt;
''Output mit '''GD''' und '''AGG'''''&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
* itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
* minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
* minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Verwendung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
&lt;br /&gt;
- A mit 1000, 500, 200&lt;br /&gt;
&lt;br /&gt;
- B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_ohne.png]]&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_mit.png]]&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert sozusagen die Achse von der aus der Balken gezeichnet wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken gezeichnet.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:balkendiagramme.png]]&lt;br /&gt;
[[Image:balken_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument wurde erarbeitet von [[User:Khoffmann | Karsten Hoffmann]].&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24714</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24714"/>
		<updated>2008-05-03T22:26:44Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
[[Image:gd.png]]    [[Image:agg.png]]&lt;br /&gt;
&lt;br /&gt;
''Output mit '''GD''' und '''AGG'''''&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
&lt;br /&gt;
- itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
&lt;br /&gt;
- minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
&lt;br /&gt;
- minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Verwendung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
&lt;br /&gt;
- A mit 1000, 500, 200&lt;br /&gt;
&lt;br /&gt;
- B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_ohne.png]]&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_mit.png]]&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert sozusagen die Achse von der aus der Balken gezeichnet wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken gezeichnet.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:balkendiagramme.png]]&lt;br /&gt;
[[Image:balken_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument wurde erarbeitet von [[User:Khoffmann | Karsten Hoffmann]].&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24713</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24713"/>
		<updated>2008-05-03T22:26:19Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
[[Image:gd.png]]    [[Image:agg.png]]&lt;br /&gt;
&lt;br /&gt;
''Output mit '''GD''' und '''AGG'''''&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
&lt;br /&gt;
- itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
&lt;br /&gt;
- minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
&lt;br /&gt;
- minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Verwendung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
&lt;br /&gt;
- A mit 1000, 500, 200&lt;br /&gt;
&lt;br /&gt;
- B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_ohne.png]]&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_mit.png]]&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert sozusagen die Achse von der aus der Balken gezeichnet wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken gezeichnet.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:balkendiagramme.png]]&lt;br /&gt;
[[Image:balken_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument wurde erarbeitet von [[User:Khoffmann | Karsten Hoffmann]].&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24712</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24712"/>
		<updated>2008-05-03T22:20:32Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
[[Image:gd.png]]    [[Image:agg.png]]&lt;br /&gt;
&lt;br /&gt;
''Output mit '''GD''' und '''AGG'''''&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
&lt;br /&gt;
- itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
&lt;br /&gt;
- minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
&lt;br /&gt;
- minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Verwendung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
&lt;br /&gt;
- A mit 1000, 500, 200&lt;br /&gt;
&lt;br /&gt;
- B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_ohne.png]]&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
[[Image:balken_mit.png]]&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert sozusagen die Achse von der aus der Balken gezeichnet wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken gezeichnet.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:balkendiagramme.png]]&lt;br /&gt;
[[Image:balken_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=File:Balken_mit.png&amp;diff=24711</id>
		<title>File:Balken mit.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=File:Balken_mit.png&amp;diff=24711"/>
		<updated>2008-05-03T22:19:07Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: Balkendiagramm mit minval-, maxval-Angabe&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Balkendiagramm mit minval-, maxval-Angabe&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=File:Balken_ohne.png&amp;diff=24710</id>
		<title>File:Balken ohne.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=File:Balken_ohne.png&amp;diff=24710"/>
		<updated>2008-05-03T22:18:42Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: uploaded a new version of &amp;quot;Image:Balken ohne.png&amp;quot;: Balkendiagramm ohne minval-, maxval-Angabe&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Balkendiagramme ohne minval-, maxval-Angaben&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=File:Balken_ohne.png&amp;diff=24709</id>
		<title>File:Balken ohne.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=File:Balken_ohne.png&amp;diff=24709"/>
		<updated>2008-05-03T22:15:29Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: Balkendiagramme ohne minval-, maxval-Angaben&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Balkendiagramme ohne minval-, maxval-Angaben&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24708</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24708"/>
		<updated>2008-05-03T22:11:34Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* Unterstützte Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
[[Image:gd.png]]    [[Image:agg.png]]&lt;br /&gt;
&lt;br /&gt;
''Output mit '''GD''' und '''AGG'''''&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
&lt;br /&gt;
- itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
&lt;br /&gt;
- minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
&lt;br /&gt;
- minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Verwendung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
&lt;br /&gt;
- A mit 1000, 500, 200&lt;br /&gt;
&lt;br /&gt;
- B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert sozusagen die Achse von der aus der Balken gezeichnet wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken gezeichnet.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:balkendiagramme.png]]&lt;br /&gt;
[[Image:balken_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24707</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24707"/>
		<updated>2008-05-03T22:11:10Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* Unterstützte Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
[[Image:gd.png]]    [[Image:agg.png]]&lt;br /&gt;
&lt;br /&gt;
Output mit '''GD''' und '''AGG'''&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
&lt;br /&gt;
- itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
&lt;br /&gt;
- minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
&lt;br /&gt;
- minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Verwendung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
&lt;br /&gt;
- A mit 1000, 500, 200&lt;br /&gt;
&lt;br /&gt;
- B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert sozusagen die Achse von der aus der Balken gezeichnet wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken gezeichnet.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:balkendiagramme.png]]&lt;br /&gt;
[[Image:balken_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=File:Gd.png&amp;diff=24706</id>
		<title>File:Gd.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=File:Gd.png&amp;diff=24706"/>
		<updated>2008-05-03T22:08:14Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: GD-Output&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GD-Output&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=File:Agg.png&amp;diff=24705</id>
		<title>File:Agg.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=File:Agg.png&amp;diff=24705"/>
		<updated>2008-05-03T22:07:57Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: AGG-Output&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AGG-Output&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24704</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24704"/>
		<updated>2008-05-03T22:03:53Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* Beispiel eines LAYERs mit Balkendiagrammen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
&lt;br /&gt;
- itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
&lt;br /&gt;
- minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
&lt;br /&gt;
- minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Verwendung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
&lt;br /&gt;
- A mit 1000, 500, 200&lt;br /&gt;
&lt;br /&gt;
- B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert sozusagen die Achse von der aus der Balken gezeichnet wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken gezeichnet.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:balkendiagramme.png]]&lt;br /&gt;
[[Image:balken_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=File:Balken_legende.png&amp;diff=24703</id>
		<title>File:Balken legende.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=File:Balken_legende.png&amp;diff=24703"/>
		<updated>2008-05-03T22:02:30Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: Legende für Balkendiagramme&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Legende für Balkendiagramme&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=File:Balkendiagramme.png&amp;diff=24702</id>
		<title>File:Balkendiagramme.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=File:Balkendiagramme.png&amp;diff=24702"/>
		<updated>2008-05-03T22:02:11Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: Karte mit Balkendiagrammen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Karte mit Balkendiagrammen&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24701</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24701"/>
		<updated>2008-05-03T22:01:48Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* Beispiel eines LAYERs mit Balkendiagrammen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
&lt;br /&gt;
- itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
&lt;br /&gt;
- minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
&lt;br /&gt;
- minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Verwendung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
&lt;br /&gt;
- A mit 1000, 500, 200&lt;br /&gt;
&lt;br /&gt;
- B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert sozusagen die Achse von der aus der Balken gezeichnet wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken gezeichnet.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24700</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24700"/>
		<updated>2008-05-03T22:01:12Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* Beispiel eines LAYERs mit Kreissektorendiagrammen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
''Datenquelle: Statistisches Landesamt Berlin 2005''&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
&lt;br /&gt;
- itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
&lt;br /&gt;
- minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
&lt;br /&gt;
- minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Verwendung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
&lt;br /&gt;
- A mit 1000, 500, 200&lt;br /&gt;
&lt;br /&gt;
- B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert sozusagen die Achse von der aus der Balken gezeichnet wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken gezeichnet.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
Karte&lt;br /&gt;
Datenquelle: Statistisches Landesamt Berlin 2005&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24699</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24699"/>
		<updated>2008-05-03T21:59:37Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* Beispiel eines LAYERs mit Kreissektorendiagrammen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
[[Image:Kreise_legende.png]]&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
&lt;br /&gt;
- itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
&lt;br /&gt;
- minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
&lt;br /&gt;
- minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Verwendung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
&lt;br /&gt;
- A mit 1000, 500, 200&lt;br /&gt;
&lt;br /&gt;
- B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert sozusagen die Achse von der aus der Balken gezeichnet wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken gezeichnet.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
Karte&lt;br /&gt;
Datenquelle: Statistisches Landesamt Berlin 2005&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=File:Kreise_legende.png&amp;diff=24698</id>
		<title>File:Kreise legende.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=File:Kreise_legende.png&amp;diff=24698"/>
		<updated>2008-05-03T21:58:50Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: Legende Kreisdiagramme&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Legende Kreisdiagramme&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24697</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24697"/>
		<updated>2008-05-03T21:58:25Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* Beispiel eines LAYERs mit Kreissektorendiagrammen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
[[Image:Kreisdiagramme_agg.png]]&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
&lt;br /&gt;
- itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
&lt;br /&gt;
- minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
&lt;br /&gt;
- minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Verwendung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
&lt;br /&gt;
- A mit 1000, 500, 200&lt;br /&gt;
&lt;br /&gt;
- B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert sozusagen die Achse von der aus der Balken gezeichnet wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken gezeichnet.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
Karte&lt;br /&gt;
Datenquelle: Statistisches Landesamt Berlin 2005&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=File:Kreisdiagramme_agg.png&amp;diff=24696</id>
		<title>File:Kreisdiagramme agg.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=File:Kreisdiagramme_agg.png&amp;diff=24696"/>
		<updated>2008-05-03T21:57:22Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: Kreisdiagramme mit AGG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Kreisdiagramme mit AGG&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24695</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24695"/>
		<updated>2008-05-03T21:53:26Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Kreissektorendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
Karte&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Dynamische Kreisgrößen ab Version 5.2===&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
&lt;br /&gt;
- itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
&lt;br /&gt;
- minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
&lt;br /&gt;
- minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
===PROCESSING-Parameter CHART_BAR_MINVAL und CHART_BAR_MAXVAL===&lt;br /&gt;
&lt;br /&gt;
Die beiden optionalen Parameter PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; erzeugen miteinander vergleichbare Balkendiagramme in einer Karte. Ohne diese Angabe werden die Diagrammhöhen nicht relativ zueinander gezeichnet und sie sind nicht miteinander vergleichbar. In diesem Fall wird der größte Balken in jedem Diagramm mit der bei PROCESSING &amp;quot;CHART_SIZE=Breite Höhe&amp;quot; angegeben Höhe gezeichnet, unabhängig von dem jeweiligen Attributwert. Alle anderen Balken in einem Diagramm werden anhand ihrer Sachdaten relativ zu dem größten Balken in diesem Diagramm erzeugt.&lt;br /&gt;
&lt;br /&gt;
Um also miteinander vergleichbare Balkendiagramme zu erstellen, müssen die beiden zusätzlichen Parameter (oder auch nur einer davon) angegeben werden.&lt;br /&gt;
I.d.R. reicht die Angabe des größten darzustellenden Attributwertes aus. Die vertikale Achse (y-Achse) des Diagramms reicht dann von 0 bis zum größten Wert bei positiven Attributwerten. Es können aber auch negative Werte in den Diagrammen dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel soll den Unterschied der Verwendung von PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; und PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; verdeutlichen:&lt;br /&gt;
&lt;br /&gt;
Vorgegeben sind 2 Objekte A und B mit folgenden Attributwerten:&lt;br /&gt;
&lt;br /&gt;
- A mit 1000, 500, 200&lt;br /&gt;
&lt;br /&gt;
- B mit 2000, 500, 200&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis ohne eine minval- und maxval-Angabe erhält man:&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
Die roten Balken haben bei beiden Diagrammen dieselben Größen während sich die anderen Balken unterscheiden. Diese Darstellung entspricht nicht den Attributwerten und vermittelt falsche Informationen.&lt;br /&gt;
&lt;br /&gt;
Bei der Verwendung der minval- und maxval-Angabe werden die Diagramme in einem richtigen Verhältnis zueinander erzeugt. Der rote Balken bei A ist halb so groß &lt;br /&gt;
wie bei B und die blauen und gelben Balken haben jeweils dieselbe Größe. Diese Darstellung entspricht somit den Daten. &lt;br /&gt;
&lt;br /&gt;
Wenn nur ein Wert für maxval angegeben wird, wird der Balken immer vom Wert 0 aus gezeichnet. Eine Angabe bei minval verlagert sozusagen die Achse von der aus der Balken gezeichnet wird. &lt;br /&gt;
Bei Attributwerten die größer als der maxval-Wert sind, werden die Balken auch so hoch wie bei dem dort angegebenen Wert gezeichnet. Bei Werten die kleiner als der minval-Wert sind, wird kein Balken gezeichnet.&lt;br /&gt;
&lt;br /&gt;
===Beispiel eines LAYERs mit Balkendiagrammen===&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME wahlen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=bar&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=50 55&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;CDU&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [CDU]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 0 77 168&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;SPD&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SPD]&lt;br /&gt;
        COLOR 230 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;PDS&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [PDS]&lt;br /&gt;
        COLOR 169 0 230&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Grüne&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [GRUENE]&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;FDP&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [FDP]&lt;br /&gt;
        COLOR 255 255 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Sonstige&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [SONSTIGE]&lt;br /&gt;
        COLOR 130 130 130&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird das Ergebnis der Europawahl 2004 in Berlin auf Ebene der Stadtbezirke dargestellt. Der bei PROCESSING &amp;quot;CHART_BAR_MAXVAL=43&amp;quot; angegebene Wert 43 ist die bei dieser Wahl höchste erreichte Prozentzahl von einer Partei in einem Bezirk.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
Karte&lt;br /&gt;
Datenquelle: Statistisches Landesamt Berlin 2005&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist hierbei, dass in der automatisch erstellten Legende nur die Farben der Balken erläutert werden aber nicht die Balkenhöhen. Der Kartenleser kann also nicht einschätzen welche Balkenhöhe wie viel Prozent entspricht.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
http://mapserver.gis.umn.edu/docs/howto/dynamic-charting&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24694</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24694"/>
		<updated>2008-05-03T21:46:14Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
Beispiel eines LAYERs mit Kreissektorendiagrammen:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
Karte&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
&lt;br /&gt;
- itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
&lt;br /&gt;
- minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
&lt;br /&gt;
- minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;br /&gt;
&lt;br /&gt;
==Balkendiagramme==&lt;br /&gt;
&lt;br /&gt;
Balkendiagramme werden nach dem gleichen Prinzip wie die Kreissektorendiagramme erzeugt. Es gibt jedoch ein paar zu beachtende Besonderheiten.&lt;br /&gt;
&lt;br /&gt;
Hier zunächst die Erläuterung der LAYER-Struktur:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=BAR&amp;quot; # Diagrammtyp, hier BAR für Balkendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30 40&amp;quot; # Breite und Höhe der Balkendiagramme in Pixel&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MINVAL=val&amp;quot; # kleinster Attributwert&lt;br /&gt;
    PROCESSING &amp;quot;CHART_BAR_MAXVAL=val&amp;quot; # größter Attributwert&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Balkens, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	  SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Balkenhöhen benutzt werden sollen&lt;br /&gt;
     	  COLOR r g b # Farbe, mit der der Balken gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Balken gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Auch hier gilt: Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24693</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24693"/>
		<updated>2008-05-03T21:43:02Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
Beispiel eines LAYERs mit Kreissektorendiagrammen:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
Karte&lt;br /&gt;
&lt;br /&gt;
Ein Nachteil ist, dass in der Version 5.0 nur Kreissektorendiagramme mit einer festen Größe (Durchmesser) erzeugt werden. Man kann die Kreissektoren also nicht im Zusammenhang zu einem übergeordneten Attribut darstellen. Nur die Anteile der jeweiligen Werte können anhand der Kreissektoren abgelesen werden.&lt;br /&gt;
&lt;br /&gt;
Ab der Version 5.2 wird es mit einem zusätzlichen PROCESSING-Parameter möglich sein, die Kreisgrößen abhängig von einem Attribut zu variieren:&lt;br /&gt;
&lt;br /&gt;
 PROCESSING &amp;quot;CHART_SIZE_RANGE = itemname minsize maxsize minval maxval&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dabei ist:&lt;br /&gt;
&lt;br /&gt;
- itemname der Name des Attributs, welches die Kreisgröße bestimmt&lt;br /&gt;
&lt;br /&gt;
- minsize und maxsize die minimale und maximale Größe der Kreisdiagramme in Pixel&lt;br /&gt;
&lt;br /&gt;
- minval und maxval die minimalen und maximalen Werte des Attributs, welches die Kreisdiagrammgrößen bestimmt, diese korrespondieren dann mit den bei minsize, maxsize angegeben Größen&lt;br /&gt;
&lt;br /&gt;
Sind die Attributwerte kleiner als minval wird die Kreisgröße mit der Angabe bei minsize gezeichnet und sind die Attributwerte größer als maxval werden die Kreisdiagramme mit der bei maxsize angegeben Größe erstellt.&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24692</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24692"/>
		<updated>2008-05-03T21:40:58Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
Beispiel eines LAYERs mit Kreissektorendiagrammen:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    NAME unternehmen&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    DATA pbezirke&lt;br /&gt;
    STATUS ON&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=pie&amp;quot;&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=39&amp;quot;&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;übrige Dienstleistungen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [L_M_N]&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
        COLOR 56 168 0&lt;br /&gt;
      END    &lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Dienstleistungen für Unternehmen&amp;quot;&lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [J_K_O]&lt;br /&gt;
        COLOR 230 230 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Handel, Gastgewerbe, Verkehr, ...&amp;quot;        &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [G_H_I]&lt;br /&gt;
        COLOR 0 112 255&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Produzierendes Gewerbe&amp;quot;    &lt;br /&gt;
      STYLE&lt;br /&gt;
        SIZE [D_E_F]&lt;br /&gt;
        COLOR 255 0 0&lt;br /&gt;
        OUTLINECOLOR 0 0 0&lt;br /&gt;
      END        &lt;br /&gt;
    END&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
In diesem LAYER wird die Anzahl der Betriebe in den Stadtbezirken Berlins aufgeteilt auf die verschiedenen Wirtschaftsbereiche dargestellt. Die Angaben bei SIZE verweisen jeweils auf eine Spalte in der Attributtabelle, in der die Anzahl der Betriebe für einen bestimmten Wirtschaftsbereich vorliegen.&lt;br /&gt;
&lt;br /&gt;
Die daraus resultierende und mit AGG erzeugte Karte sowie die Legende sehen folgendermaßen aus:&lt;br /&gt;
&lt;br /&gt;
Karte&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24691</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24691"/>
		<updated>2008-05-03T21:39:49Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
      NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
      STYLE&lt;br /&gt;
     	SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
         OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
         WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
         OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
      END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
Beispiel eines LAYERs mit Kreissektorendiagrammen:&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24690</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24690"/>
		<updated>2008-05-03T21:37:27Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Bild&lt;br /&gt;
&lt;br /&gt;
==Kreissektorendiagramme==&lt;br /&gt;
&lt;br /&gt;
Diagramme werden in einem gesonderten LAYER vom Typ CHART erzeugt. Der Diagramtyp und die Diagrammgröße werden über PROCESSING-Parameter bestimmt. &lt;br /&gt;
Für jeden Kreissektor im Diagramm wird ein CLASS-Block angelegt. Im dazugehörigen STYLE-Block wird dann mit SIZE [Attributname] auf den jeweiligen Wert in der Attributtabelle verwiesen. Mit diesem Wert wird dynamisch die Größe (der Winkel) des entsprechenden Kreissektors erzeugt.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht erläutert den Aufbau näher:&lt;br /&gt;
&lt;br /&gt;
 LAYER&lt;br /&gt;
    TYPE CHART&lt;br /&gt;
    PROCESSING &amp;quot;CHART_TYPE=PIE&amp;quot; # Diagrammtyp, voreingestellt ist PIE für Kreissektorendiagramme&lt;br /&gt;
    PROCESSING &amp;quot;CHART_SIZE=30&amp;quot; # Größe (Durchmesser) der Diagramme in Pixel&lt;br /&gt;
    …&lt;br /&gt;
    CLASS&lt;br /&gt;
   	NAME &amp;quot;Text&amp;quot; # Erläuterung bzw. Name des Kreissektors, der in der Legende erscheint&lt;br /&gt;
   	STYLE&lt;br /&gt;
     	   SIZE [Attributname]  # gibt an, aus welcher Spalte der Attributtabelle die Sachdaten zur Erzeugung der Sektorengrößen benutzt werden sollen&lt;br /&gt;
     	   COLOR r g b # Farbe, mit der der Kreissektor gefüllt wird&lt;br /&gt;
           OUTLINECOLOR r g b # wenn angegeben, wird eine Umrandungslinie um den Kreissektor gezeichnet&lt;br /&gt;
           WIDTH w # Breite der Umrandungslinie in Pixel, wenn OUTLINECOLOR spezifiziert wurde&lt;br /&gt;
           OFFSET a b # ’a’ gibt die Anzahl der Pixel an, um die der Kreissektor nach außen verschoben werden soll, bei ’b’ muss auch ein Wert angegeben werden, der aber ignoriert wird&lt;br /&gt;
        END&lt;br /&gt;
    END&lt;br /&gt;
    CLASS&lt;br /&gt;
        …&lt;br /&gt;
    END&lt;br /&gt;
    …&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Im STYLE-Block kann bei SIZE auch ein fester Wert angegeben werden. Mindestens zwei CLASS-Blöcke sind erforderlich, um die Diagramme zu erzeugen.&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24689</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24689"/>
		<updated>2008-05-03T21:31:19Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Bibliotheken==&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24688</id>
		<title>Konstruktion von Diagrammen mit dem UMN MapServer 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Konstruktion_von_Diagrammen_mit_dem_UMN_MapServer_5.0&amp;diff=24688"/>
		<updated>2008-05-03T21:30:56Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: New page: Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.  Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Dokument erläutert die dynamische Konstruktion von Kreissektoren- und Balkendiagrammen im UMN MapServer 5.0.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung setzt Grundkenntnisse in UMN MapServer-Anwendungen und dem Erstellen einer Map-Datei voraus.&lt;br /&gt;
&lt;br /&gt;
Einleitung&lt;br /&gt;
&lt;br /&gt;
Seit der Version 5.0 existiert mit dem neuen Layertyp CHART eine komfortable Möglichkeit automatisch Kreissektoren- oder Balkendiagramme auf der Basis von Sachdaten zu erzeugen. Dieser Layertyp ist auf punkt-, linien- und flächenhaften Daten anwendbar. I.d.R. werden Balken- und Kreissektorendiagramme in der thematischen Kartographie nur auf Punkt- und Flächenobjekten angewandt. Es lassen sich nun recht einfach thematische Karten vom Typ Standortdiagrammkarte und Flächendiagrammkarte erzeugen.&lt;br /&gt;
Bei linienhaften Objekten können quantitative Attributwerte über verschiedene Linienbreiten dargestellt werden. Dies ergibt eine Liniendiagrammkarte.&lt;br /&gt;
Zur Erstellung der Diagramme werden Vektordaten mit dazugehörigen Sachdaten in einer Attributtabelle verwendet.&lt;br /&gt;
&lt;br /&gt;
Unterstützte Bibliotheken&lt;br /&gt;
&lt;br /&gt;
Der Layertyp CHART wird im UMN MapServer von der GD- und der AGG-Bibliothek unterstützt. Die Ausgabe mittels AGG bietet jedoch eine qualitativ bessere Darstellung, besonders bei Kreisdiagrammen aufgrund des generellen Antialiasing. &lt;br /&gt;
Eine Ausgabe der Diagramme in anderen Formaten, wie PDF, SWF oder SVG, die mit anderen Bibliotheken erstellt werden, ist nicht möglich.&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Komitee_f%C3%BCr_Bildung_und_Dokumentationserstellung&amp;diff=24687</id>
		<title>Komitee für Bildung und Dokumentationserstellung</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Komitee_f%C3%BCr_Bildung_und_Dokumentationserstellung&amp;diff=24687"/>
		<updated>2008-05-03T21:29:40Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Komitee für Bildung und Dokumentationserstellung ==&lt;br /&gt;
&lt;br /&gt;
Die Aufgabe des Komitees für Bildung und Dokumentationserstellung ist es, die Nutzung der unter dem Dach der OSGeo entwickelten &lt;br /&gt;
Softwareprodukte durch Anleitungen und Tutorials zu unterstützen.&lt;br /&gt;
Diese Anleitungen sollen vorrangig im WIKI erstellt werden, um die Vorteile einer gemeinsamen Erstellung ausnutzen zu können.&lt;br /&gt;
Fühlen Sie sich frei sich als Mitglied in dieses Komitee einzutragen und eigene Anleitungen zu erstellen.&lt;br /&gt;
&lt;br /&gt;
== Mitglieder ==&lt;br /&gt;
* [[User:Kai Behncke | Kai Behncke]]&lt;br /&gt;
* [[User:Peter_panther | Florian Thürkow]]&lt;br /&gt;
* [[User:Simon Appelt | Simon Appelt]]&lt;br /&gt;
* [[User:jtmapmedia | Jörg Thomsen]]&lt;br /&gt;
* [[User:Markus Weißmann | Markus Weißmann]]&lt;br /&gt;
* [[User:Sven Boehme | Sven Boehme]]&lt;br /&gt;
* [[User:Matthias Heber | Matthias Heber]]&lt;br /&gt;
* [[User:Khoffmann | Karsten Hoffmann]]&lt;br /&gt;
&lt;br /&gt;
== Anleitungen ==&lt;br /&gt;
* [[Anleitung für Routing (Pgrouting) und UMN MapServer mit den Freien Geodaten aus Osnabrück (Frida) | Anleitung für Routing (Pgrouting) und UMN MapServer mit den Freien Geodaten aus Osnabrück (Frida)]]&lt;br /&gt;
&lt;br /&gt;
* [[Neuerungen des UMN MapServers 5.0 | Neuerungen des UMN MapServers 5.0]]&lt;br /&gt;
&lt;br /&gt;
* [[Installation von MapServer, Apache und PostgreSQL/PostGIS auf Debian 4.0 | Installation von MapServer, Apache und PostgreSQL/PostGIS auf Debian 4.0]]&lt;br /&gt;
&lt;br /&gt;
* [[UMN-Mapserver_Performancetest | UMN-Mapserver Performancetest]]&lt;br /&gt;
&lt;br /&gt;
* [[Wxs mapscript]]&lt;br /&gt;
&lt;br /&gt;
* [[Konstruktion von Diagrammen mit dem UMN MapServer 5.0 | Konstruktion von Diagrammen mit dem UMN MapServer 5.0]]&lt;br /&gt;
&lt;br /&gt;
Auf der FOSSGIS 2008 in Freiburg wurde beschlossen, dass im Rahmen von OSGeo Dach (Bildung) gemeinschaftlich das neue Handbuch für den UMN MapServer erstellt wird. Die Erstellung des Buches wird über ein WIKI laufen. Sofern Sie Interesse haben tragen Sie sich bitte in die folgende Mailingliste [http://lists.osgeo.org/mailman/listinfo/viscom-discuss-de http://lists.osgeo.org/mailman/listinfo/viscom-discuss-de] ein, und setzen Sie, wenn Sie möchten, oben auch einen namentlichen Link.&lt;br /&gt;
&lt;br /&gt;
Hier gehts zur Gliederung des Handbuches&lt;br /&gt;
[http://wiki.osgeo.org/wiki/HBUMNMapServer_ger http://wiki.osgeo.org/wiki/HBUMNMapServer_ger]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://download.osgeo.org/mapserver/docs/mapserver-users-manual.pdf mapserver user manual ]&lt;br /&gt;
&lt;br /&gt;
[[Category: Education]]&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Komitee_f%C3%BCr_Bildung_und_Dokumentationserstellung&amp;diff=24226</id>
		<title>Komitee für Bildung und Dokumentationserstellung</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Komitee_f%C3%BCr_Bildung_und_Dokumentationserstellung&amp;diff=24226"/>
		<updated>2008-04-14T08:42:54Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* Mitglieder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Komitee für Bildung und Dokumentationserstellung ==&lt;br /&gt;
&lt;br /&gt;
Die Aufgabe des Komitees für Bildung und Dokumentationserstellung ist es, die Nutzung der unter dem Dach der OSGeo entwickelten &lt;br /&gt;
Softwareprodukte durch Anleitungen und Tutorials zu unterstützen.&lt;br /&gt;
Diese Anleitungen sollen vorrangig im WIKI erstellt werden, um die Vorteile einer gemeinsamen Erstellung ausnutzen zu können.&lt;br /&gt;
Fühlen Sie sich frei sich als Mitglied in dieses Komitee einzutragen und eigene Anleitungen zu erstellen.&lt;br /&gt;
&lt;br /&gt;
== Mitglieder ==&lt;br /&gt;
* [[User:Kai Behncke | Kai Behncke]]&lt;br /&gt;
* [[User:Peter_panther | Florian Thürkow]]&lt;br /&gt;
* [[User:Simon Appelt | Simon Appelt]]&lt;br /&gt;
* [[User:jtmapmedia | Jörg Thomsen]]&lt;br /&gt;
* [[User:Markus Weißmann | Markus Weißmann]]&lt;br /&gt;
* [[User:Sven Boehme | Sven Boehme]]&lt;br /&gt;
* [[User:Matthias Heber | Matthias Heber]]&lt;br /&gt;
* [[User:Khoffmann | Karsten Hoffmann]]&lt;br /&gt;
&lt;br /&gt;
== Anleitungen ==&lt;br /&gt;
* [[Anleitung für Routing (Pgrouting) und UMN MapServer mit den Freien Geodaten aus Osnabrück (Frida) | Anleitung für Routing (Pgrouting) und UMN MapServer mit den Freien Geodaten aus Osnabrück (Frida)]]&lt;br /&gt;
&lt;br /&gt;
* [[Neuerungen des UMN MapServers 5.0 | Neuerungen des UMN MapServers 5.0]]&lt;br /&gt;
&lt;br /&gt;
* [[Installation von MapServer, Apache und PostgreSQL/PostGIS auf Debian 4.0 | Installation von MapServer, Apache und PostgreSQL/PostGIS auf Debian 4.0]]&lt;br /&gt;
&lt;br /&gt;
* [[UMN-Mapserver_Performancetest | UMN-Mapserver Performancetest]]&lt;br /&gt;
&lt;br /&gt;
* [[Wxs mapscript]]&lt;br /&gt;
&lt;br /&gt;
Auf der FOSSGIS 2008 in Freiburg wurde beschlossen, dass im Rahmen von OSGeo Dach (Bildung) gemeinschaftlich das neue Handbuch für den UMN MapServer erstellt wird. Die Erstellung des Buches wird über ein WIKI laufen. Sofern Sie Interesse haben tragen Sie sich bitte in die folgende Mailingliste [http://lists.osgeo.org/mailman/listinfo/viscom-discuss-de http://lists.osgeo.org/mailman/listinfo/viscom-discuss-de] ein, und setzen Sie, wenn Sie möchten, oben auch einen namentlichen Link.&lt;br /&gt;
&lt;br /&gt;
Hier gehts zur Gliederung des Handbuches&lt;br /&gt;
[http://wiki.osgeo.org/wiki/HBUMNMapServer_ger http://wiki.osgeo.org/wiki/HBUMNMapServer_ger]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://download.osgeo.org/mapserver/docs/mapserver-users-manual.pdf mapserver user manual ]&lt;br /&gt;
&lt;br /&gt;
[[Category: Education]]&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User:Khoffmann&amp;diff=18779</id>
		<title>User:Khoffmann</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User:Khoffmann&amp;diff=18779"/>
		<updated>2007-09-29T11:44:16Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dipl.-Geogr. Karsten Hoffmann&lt;br /&gt;
&lt;br /&gt;
Institut für Geoinformatik und Fernerkundung, Universität Osnabrück&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
khoffmann&amp;amp;#64;igf&amp;amp;#46;uni-osnabrueck&amp;amp;#46;de&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=D-A-CH&amp;diff=18778</id>
		<title>D-A-CH</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=D-A-CH&amp;diff=18778"/>
		<updated>2007-09-29T11:41:56Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: /* Mitgliederliste */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This is the start page of the German Local Chapter as per [[Local Chapter Guidelines]]''&lt;br /&gt;
&lt;br /&gt;
''Das ist die deutschsprachige Einstiegsseite zur OSGeo Foundation, die zu einer regionalen Gruppe werden könnte wie sie in den [[Local Chapter Guidelines]] beschrieben wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einführung ==&lt;br /&gt;
Bitte tragen Sie sich in die [[Deutsch#Mitgliederliste | Mitgliederliste]] ein, wenn Sie Interesse an einem deutschsprachigen [[Local Chapters]] haben. Der Eintrag ist freiwillig, dieses Wiki und alle enthaltenen Informationen sind öffentlich sichtbar. Die Kommunikation erfolgt über die [http://lists.osgeo.org/mailman/listinfo/viscom-discuss-de Mailing-Liste discuss-de] ([http://lists.osgeo.org/pipermail/viscom-discuss-de/ Archiv]) oder dieses Wiki.&lt;br /&gt;
Eingeladen an dem deutschsprachigen Local Chapter mitzuwirken sind ausdrücklich alle Interessierten, völlig unabhängig davon ob Anwender oder Entwickler, völlig unabhängig davon ob erfahren im Umgang mit OS-GIS-Software oder &amp;quot;Neuling&amp;quot;. Die OSGeo lebt von der Beteiligung jedes Einzelnen, jeder Beitrag ist willkommen.&lt;br /&gt;
&lt;br /&gt;
== Unser Name ==&lt;br /&gt;
Wir brauchen einen offiziellen Namen für die deutschsprachige Gruppe der OSGe, Vorschläge:&lt;br /&gt;
* OSGeo DACH &lt;br /&gt;
&lt;br /&gt;
Der Begriff der &amp;quot;Foundation&amp;quot; lässt sich ebenfalls nicht gut [http://dict.leo.org/ende?lp=ende&amp;amp;lang=de&amp;amp;searchLoc=0&amp;amp;cmpType=relaxed&amp;amp;sectHdr=on&amp;amp;spellToler=on&amp;amp;search=Foundation&amp;amp;relink=on direkt übersetzen], in vielen Dokumenten ist deshalb von der &amp;quot;OSGeo Foundation&amp;quot; zu lesen, was allerdings gegen die Vorgaben zur Nutzung des OSGeo Logo und Markennamen geht.&lt;br /&gt;
&lt;br /&gt;
== Rechtsform, Konto ==&lt;br /&gt;
Die OSGeo Foundation ist als non-profit Firma in Delaware, USA gegründet worden. Dort gibt es auch ein Konto und wird das Budget verwaltet. Für formale Arbeiten und als zentrale Anlaufstelle für Fragen rund um die OSGeo wurde Tyler Mitchell als Executive Director angestellt, seine Stelle wird auch aus diesem Budget finanziert. Unabhängig davon werden wir nationale Konten benötigen, da die Transferkosten und der Aufwand, Geld über internationale Grenzen zu transportieren, nach wie vor unsinnig ist. In Deutschland gibt es bereits ein Netzwerk und Organisation für die Förderung freier Software, den GAV e.V. (GRASS Anwender-Vereinigung), eine formale Organisation mit der Rechtsform &amp;quot;eingetragener Verein&amp;quot;. Der GAV und OSGeo sind im Gespräch, wie eine Kooperation gestaltet werden kann. Eine erste, pragmatische Kooperation betrifft die Überschüsse der letzten FOSSGIS-Konferenzen, die das Organisationsteam der FOSSGIS-Konferenzen zweckgebunden an den GAV e.V. spenden wird. Bei den nächsten Konferenzen kann das Organisationsteam auf diesen Puffer zurückgreifen.&lt;br /&gt;
* [http://www.grass-verein.de/ GAV] (GRASS Anwender-Vereinigung e.V.) &lt;br /&gt;
* [http://www.fossgis.de FOSSGIS.de] (Organisationsteam der FOSSGIS-Konferenzen)&lt;br /&gt;
&lt;br /&gt;
== Ziele ==&lt;br /&gt;
Die Ziele der deutschsprachigen OSGeo Arbeitsgruppe entwickeln sich durch die Beiträge der Mitglieder. Eine erste Orientierung geben die [[Local Chapter Guidelines | Richtlinien für lokale Gruppen]], einzelne Schwerpunkte werden sich im Laufe der Arbeit herauskristallisieren. &lt;br /&gt;
* Bereitstellung eines Netzwerkes für die Mitglieder, ggf. mit Job-Börse.&lt;br /&gt;
* Organisation der jährlichen deutschsprachigen Konferenz (siehe [[FOSSGIS 2006]])&lt;br /&gt;
* Kontaktstelle für neue Mitglieder und Sponsoren &lt;br /&gt;
* Führung eines Regionalbüros mit Konto, Telefon, Ansprechpartner&lt;br /&gt;
* Übersetzung von Dokumenten, Inhalten, Webseiten und Lokalisierung von Software (Anpassung an örtliche Besonderheiten)&lt;br /&gt;
* Lösungen im deutschsprachigen Raum bewerben&lt;br /&gt;
* Erstellung von regionalisierten Software-Paketen &lt;br /&gt;
* Training, Support und Entwicklung von e-Learning Inhalten in deutscher Sprache&lt;br /&gt;
* Förderung von offenen Standards und freien Zugang zu räumlichen Daten im deutschsprachigen Umfeld.&lt;br /&gt;
* Förderung der OSGeo Foundation durch Präsentationen, Informationsveranstaltungen, Messestände, etc. &lt;br /&gt;
&lt;br /&gt;
== Komitees ==&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle folgen nach und nach die Komitees der deutschsprachigen OSGeo Gemeinschaft. Fühlen Sie sich frei selber ein Komitee zu gründen oder sich einem bestehenden anzuschließen.&lt;br /&gt;
&lt;br /&gt;
* [[Komitee für Bildung und Dokumentationserstellung | Komitee für Bildung und Dokumentationserstellung]]&lt;br /&gt;
&lt;br /&gt;
== Kommunikation ==&lt;br /&gt;
Die Kommunikaiton läuft über dieses Wiki, Mailing Listen, Webseite und natürlich das persönliche Gespräch auf Messen, Konferenzen und Anwendertreffen. Das neue OSGeo Portal bietet eine einfache Möglichkeit zur Übersetzung ins Deutsche. Falls Sie bei der Übersetzung gerne helfen möchten wenden Sie sich bitte an die Translation Group des [[WebCom | Website Committee]].&lt;br /&gt;
&lt;br /&gt;
== Steuerung ==&lt;br /&gt;
Die deutschprachige Gruppe der OSGeo ist noch informell. Beteiligen Sie sich an der Gestaltung, indem Sie sich einbringen. Entscheidungen werden wie bei Open Source  üblich per Email an die Mailing Liste geschickt und diskutiert. Beschlussfähige Vorschläge werden von einem Mitglied vorgeschlagen und von einem zweiten Mitglied unterstützt.&lt;br /&gt;
&lt;br /&gt;
=== Wahl ===&lt;br /&gt;
Die Wahl erfolgt über Ablehung, Zustimmung oder Gleichgültigkeit:&lt;br /&gt;
 -1 = Veto, Ablehung&lt;br /&gt;
 -0 = nicht einverstanden, beugt sich aber der Mehrheit &lt;br /&gt;
  0 = trägt die Entscheidung der anderen mit, kann aber nicht beurteilen, ob sie gut ist (zu wenig Information, keine Zeit sich zu informieren, etc.)&lt;br /&gt;
 +0 = unterstützt den Antrag passiv, kann aber nicht aktiv zum Thema beisteuern&lt;br /&gt;
 +1 = Zustimmung, unterstützt den Antrag voll und arbeitet auch mit&lt;br /&gt;
&lt;br /&gt;
=== Veto ===&lt;br /&gt;
Wer mit -1 wählt legt ein Veto ein. Damit das Veto angenommen werden kann muss es innerhalb der Wahlfrist begründet und am besten gleich mit einem Alternativvorschlag eingebracht werden. &lt;br /&gt;
&lt;br /&gt;
=== Unterstützung ===&lt;br /&gt;
Wer mit +1 wählt muss auch bereit sein aktiv mit der Lösung mitzumachen. Sonst gibt es zu viele faule Beobachter und zu wenige Arbeiter.&lt;br /&gt;
&lt;br /&gt;
=== Veto überstimmen ===&lt;br /&gt;
Ein Veto kann überstimmt werden&lt;br /&gt;
* durch eine absolute Mehrheit der Mitglieder&lt;br /&gt;
* oder wenn mindestens vier Mitglieder mit einer +1 wählen.&lt;br /&gt;
&lt;br /&gt;
Alle Ergebnis können immer angefochten werden (bis uns was besseres einfällt).&lt;br /&gt;
&lt;br /&gt;
== Offizieller Status und Dokumente ==&lt;br /&gt;
Die OSGeo Foundation ist eine rechtliche Organisation die aus mittlerweile 59 Mitgliedern und 9 Direktoren besteht. Alle offiziellen Projekte und Dokumente müssen von dem Direktorium abgenommen werden bevor sie offiziellen Status erreichen. Offizielle Dokumente werden in den statischen Dokumenten-Ordner auf osgeo.org hinterlegt und werden dadurch &amp;quot;Official Policy&amp;quot; der OSGeo Foundation. Sobald die Mitgliederliste 10 bis 15 Einträge hat, die sich aktiv einbringen wollen, können wir einen Antrag auf einen eigenen Projektbereich mit Dokumentenordner, SVN, Webseite, etc. und offiziellem Status beantragen.&lt;br /&gt;
&lt;br /&gt;
Die Sammlung deutschsprachiger Dokumente ist der Migration zum Opfer gefallen, wird aber nach und nach wieder aufgebaut. Falls Sie selbst Dokumente beisteuern können wenden Sie dich bitte an das [[Promotion and Visibility Committee]].&lt;br /&gt;
* [[Intern: Entwurf Artikel GIS BUSINESS | ]]&lt;br /&gt;
&lt;br /&gt;
== Weitere Wiki-Seiten zu regionalen (''local'') Themen und Veranstaltungen ==&lt;br /&gt;
* [http://wiki.osgeo.org/index.php/Deutsch/NAS Entwicklung freier NAS-Schnittstelle]&lt;br /&gt;
* [http://wiki.osgeo.org/index.php/LinuxTag_2007 LinuxTag 2007]&lt;br /&gt;
* [[AGIT_2007]]&lt;br /&gt;
* [[Intergeo_2007]]&lt;br /&gt;
* [[FOSSGIS 2008]]&lt;br /&gt;
&lt;br /&gt;
== Mitgliederliste ==&lt;br /&gt;
* [[User:Arnulf Christl | Arnulf Christl]]&lt;br /&gt;
* [[User:Ofreier | Olaf Freier]] ([http://www.hinte-messe.de/ Hinte GmbH])&lt;br /&gt;
* [[User:Peter Stamm | Peter Stamm]] &lt;br /&gt;
* [[User:Schmitz | Sebastian Schmitz]]&lt;br /&gt;
* [[User:Astrid Emde | Astrid Emde]]&lt;br /&gt;
* [[User:Uli Rothstein | Uli Rothstein]]&lt;br /&gt;
* [[User:Garand | Michel Garand]]&lt;br /&gt;
* [[User:christoph | Christoph Baudson]]&lt;br /&gt;
* [[User:dietmar | Dietmar Fleischhauer]]&lt;br /&gt;
* [[User:Georgloesel | Georg Lösel]]&lt;br /&gt;
* [[User:Olaf Knopp | Olaf Knopp]]&lt;br /&gt;
* [[User:Torsten Brassat | Torsten Brassat]]&lt;br /&gt;
* [[User:Jtmapmedia | Jörg Thomsen]]&lt;br /&gt;
* [[User:Silke Reimer | Silke Reimer]]&lt;br /&gt;
* [[User:Till Adams | Till Adams]]&lt;br /&gt;
* [[User:Athina Trakas | Athina Trakas]]&lt;br /&gt;
* [[User:mlechner | Marco Lechner]]&lt;br /&gt;
* [[User:maltehm | Malte Halbey-Martin]]&lt;br /&gt;
* [[User:Kai Behncke | Kai Behncke]]&lt;br /&gt;
* [[User:Cplass | Christian Plass]]&lt;br /&gt;
* [[User:Thomas Kastler | Thomas Kastler]]&lt;br /&gt;
* [[User:Constanze Tschritter | Constanze Tschritter]]&lt;br /&gt;
* [[User:Marko Samson | Marko Samson]]&lt;br /&gt;
* [[User:Markus Weißmann | Markus Weißmann]]&lt;br /&gt;
* [[User:Robert.Dettmann | Robert Dettmann]] ([http://www.creata-software.de/ creaTa Software GmbH])&lt;br /&gt;
* [[User:Verena Diewald | Verena Diewald]]&lt;br /&gt;
* [[User:sholl | Stephan Holl]]&lt;br /&gt;
* [[User:GEppelt | Gunter Eppelt]]&lt;br /&gt;
* [[User:Sholler | Sebastian Holler]]&lt;br /&gt;
* [[User:Thomas Baschetti | Thomas Baschetti]]&lt;br /&gt;
* [[User:Peter Loewe| Peter Löwe]]&lt;br /&gt;
* [[User:Peter_panther| Florian Thürkow]]&lt;br /&gt;
* [[User:Fjbehr| Dr. Franz-Josef Behr]]&lt;br /&gt;
* [[User:crischan| Christian Wygoda (FH Eberswalde)]]&lt;br /&gt;
* [[User:Uwe.Seidel| Uwe Seidel (http://www.seicontec.net)]]&lt;br /&gt;
* [[User:Khoffmann | Karsten Hoffmann]]&lt;br /&gt;
&lt;br /&gt;
* Bitte tragen Sie sich hier mit Link auf Ihren OSGeo-Wiki Account einLadzinski&lt;br /&gt;
&lt;br /&gt;
[[Category:Local Chapters]]&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User:Khoffmann&amp;diff=18777</id>
		<title>User:Khoffmann</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User:Khoffmann&amp;diff=18777"/>
		<updated>2007-09-29T11:38:52Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Khoffmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dipl.-Geogr. Karsten Hoffmann&lt;br /&gt;
&lt;br /&gt;
Institut für Geoinformatik und Fernerkundung, Universität Osnabrück&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
khoffmann&amp;amp;#64;igf.uni-osnabrueck&amp;amp;#46;de&lt;/div&gt;</summary>
		<author><name>Wiki-Khoffmann</name></author>
	</entry>
</feed>