## Kartendarstellungen

Die Anwendung

http://iam.at/map

erlaubt die Anzeige von Landkarten in der eigenen Anwendung. Die Landkarte wird als SVG-Grafik angezeigt. Das Aussehen der Landkarte kann flexibel angepasst werden.

Der Aufruf erfolgt durch Angabe von Parametern. Die folgende Version zeigt eine Österreichkarte:

http://iam.at/map?map=at

Die Einbindung in der eigenen Seite erfolgt derzeit über ein iFrame:

<iframe width="300" height="300" frameborder="0" scrolling="no" src="http://localhost/map?map=at-9|||300,300">

Bei der Einbindung ist zu beachten, dass die Parameter width und height des iFrame mit der Zielgröße im Aufrufparameter map abzustimmen sind. Die Einbindung funktioniert in Firefox und Chrome, im Internet-Explorer nur mit einem PlugIn von Adobe.

Kartenauswahl, Ränder

map=<iso>|<Margin>
map=<iso>|<Margin_left>,<Margin_upper>,<Margin_right>,<Margin_lower>

map wählt eine Landkarte aus. Derzeit definiert sind die Karten AT (Österreich), AT-1 (Burgenland) und AT-9 (Wien). Der Parameter border ist eine Gleitkommazahl und definiert einen Rand um die Landkarte. map, iso und border sind optional aber es muss wenigsten ein Parameter in der Kommandozeile angegeben werden. Gültig sind map=, oder map=,10 oder map=at-1. Wenn sonst keine weiteren Parameter angezeigt werden, sieht man die Bezirke mit Pastellfarben eingefärbt.

map=at-9|10

Zeigt die Landkarte von Wien mit einem 10 Pixel breiten Rand.

map=at-9|10,100,10,10

Zeigt die Landkarte von Wien mit einem 10 Pixel breiten Rand, der obere Rand ist 100 Pixel.

Kartenausschnitt

map=<ISO>|<Margin>|<x>,<y>,<Width>,<Height>

Ein Ausschnitt der Karte kann dargestellt werden, indem einem zweiten Parametersatz nach der Kartenangabe mit x,y die linke obere Ecke und mit Width und Height die Abmessungen des Kartenausschnitts angezeigt werden. Der Parameter Margin kann auch leer bleiben,

Verkleinern

map=<ISO>|<Margin>|<x>,<y>,<Width>,<Height>|<SizeX>,<SizeY>

Für die Einbindung in eine eigene Seite kann die Landkarte verkleinert werden. Ein Ausschnitt der Karte kann dargestellt werden, indem einem zweiten Parametersatz nach der Kartenangabe mit x,y die linke obere Ecke und mit Width und Height die Abmessungen des Kartenausschnitts angezeigt werden. Die Parameter Margin und Kartenausschnitt können auch leer bleiben.

Einfärben der Regionen

Die Regionen können über den Parameter color eingefärbt werden. Das Verhalten von color ist aber davon abhängig, ob Daten über den zusätzlichen Parameter data angezeigt werden sollen. Wenn daher data definiert ist, dann gelten für color andere Regeln (siehe unter "Datensteuerung"). Wenn color nicht angegeben ist, werden die Bezirke mit vordefinierten Farben initialisiert (siehe voriges Beispiel).

color=all,<rrggbb>

Färbt alle Bezirke mit einer einheitlichen Farbe.

color=all,44cc88

color=random

Erzeugt zufällige Farben.

color=<region>,<rrggbb>|...

Färbt einzelne Regionen der Karte mit der nachgestellten Farbe ein.

color=all,ffddff|21,ff8888|10,ff0000

Das Beispiel kombiniert das Attribut all und färbt zusätzlich die Bezirke 21 hellrot und 10 rot.

color=<rrggbb>|...

Fortlaufende Zuweisung einer Farbe zu einer Region, beginnend bei der ersten Region.

color=888888|884488|888844|448888|444488|884444|448844|888888|884488|888844|448888|444488|884444|448844|888888|884488|888844|448888|444488|884444|448844|444444|444444

color=none

Mit color=none wird die Anzeige der Regionen vollständig unterdrückt und man sieht nur die Farbe der Landkarte, den Umriss und die Grenzlinien zwischen den Regionen. Deren Chrakteristik kann über den Parameter style eingestellt werden.

Steuerung der Umrisscharakteristik

Die Landkarte besteht aus einem normalerweise unsichtbaren rechteckigen Untergrund, der Umrisslinie und den Grenzen zwischen den Regionen und den darüber gelegten Flächen für jede einzelne Region. Die Darstellung dieser Linien/Flächen kann einheitlich über den Parameter style gesteuert werden. Background-Style> steuert den Hintergrund, Outline-Style den Umriss der Karte, Border-Style die Grenzlinien zwischen den Regionen und Region-Style die Region. Die Stile müssen nicht angegeben werden es werden, die senkrechten Trennstriche sind aber dennoch anzugeben.

style=<Background-Style>|<Outline-Style>|<Border-Style>|<Region-Style>|<Text-Style>

<~-Style>=<stroke-width>,<stroke>,<fill-opacity>,<fill>

Zuweisung eines generellen Stils zu einer Region. stroke-width ist die Linienstärke der Umrisslinie in Points, stroke ist die Linienfarbe, fill-opacity ist die Deckkraft (0..1), fill ist die Füllfarbe.

style=|||5,666688,1,ccccff&color=10,ff0000

Regionen werden einer dunkelblauen 5-pt-Linie eingerahmt, die Füllung ist ein helles Blau. Zusätzlich wird mit color eine Region rot eingefärbt.

Hintergrund

Größe und Farbe der Fläche hinter der Landkarte kann gewählt werden. Die Größenangabe erfolgt im Rahmen des map-Attributs, die Farbgebung erfolgt im Rahmen des style-Attributs. Der Hintergrund wird gleich im ersten Abschnitt definiert:

style=style=0,666688,1,ccffcc

Farbsteuerung durch Daten

Ohne Angabe des Attributs color wird als Anfangsfarbe weiß und als Endfarbe rot gewählt. Das Minimum der Zahlenreihe wird der Farbe weiß, das Maximum der Farbe rot zugeordnet. Die anderen Zahlenwerte werden proportional zu ihrer Größe mehr oder weniger rot gefärbt sein.

Fortlaufende Datenreihen

data=<d1>|<d2>|<d3>|...

dn sind die Zahlenwerte dn pro Region als ganze Zahl oder als Gleikommazahl (Achtung: Dezimalpunkt verwenden). Werden nicht alle Regionen angegeben, wird für den Rest die neutrale Farbe verwendet.

data=1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23

Jeder Region wird zur einfachern Kontrolle als darzustellendes Datum die jeweilige Regionsnummer zugeordnet.

Datenwerte pro Region

data=<b1>,<d1>|<b2>,<d2>...

b1 ist Nummer der betreffenden Region, dn ist der darzustellende Zahlenwert für diese Region. Für nicht angeführte Regionen wird die neutrale Farbe verwendet. Die Zählung der Bezirke beginnt bei 1.

data=1,1.5|2,1|3,3.5|10,1.5|11,2.5|12,3.5|17,0.5|20,2|21,1|22,-1

Beschriftung

data=<b1>,<d1>,<text1>,<dx1>,<dy1>|<b2>,<d2>,<text2>,<dx2>,<dy2>...

text1 ist der anzuzeigende Text. Der Text wir normalerweise zentriert in die Mitte der Region geschrieben. Wenn der Text aber mit anderen Texten überlappt, kann er mit den Zahlenangaben dx1 und dy1 verschoben werden (positiv nach rechts und nach unten).

Maximal- Minimalwerte

data=m<min>,<max>|<d1>|<d2>|...

Maximum und Minimum der Datenfolge wird durch das Programm automatisch bestimmt. Dem Minimum wird die Farbe weiß und dem Maximum die Farbe rot zugeordnet. Diese Darstellung ist aber oft irreführend, weil mit weiß 0 assoziiert wird. Weiters können extreme Maximalwerte die Schattierungen der Rot-Werte wenig sichtbar machen. Es besteht daher die Möglichkeit, ein Minimum und ein Maximum für die Datefolge fest einzustellen. Wählt man daher dieses Minimum unterhalt des Minimums der Datenreihe, dann wird auch dem Minimum ein Rotwert und nicht weiß zugeordnet. Wählt man ein kleineres Maximum als dem automatisch bestimmten, kann man die Schattierungen besser sichtbar machen.

data=m-5,22|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23

Der Minimalwert -1 macht die Rot-Schattierung der ersten Region sichtbar; der Maximalwert 20 bewirkt, dass die Regionen 22 und 23 in derselben Intensität dargestellt werden.

Farbgebung

Visualisierung durch Intensitätssteuerung

Die Datenwerte werden durch die Intensität einer einigen Farbe visualisiert. Um die voreingestellte Farbe rot und die neutrale Farbe ändern zu können, benutzt man den Parameter color.

color=<rrggbb0>|<rrggbb>

Die einzelne Farbe rrggbb wird als Maximalwert interpretiert, die Anfangsfarbe ist weiß; rrggbb0 is die neutrale Farbe für nicht mit Daten belegten Regionen.

data=1|2|3|4|5|6|7|8|9|10|11&color=ffffdd|000044

Den Regionen 1..11 wird die jeweilige Regionsnummer zugeordnet; die Datenfarbe ist dunkelblau, die neutrale Farbe ist Creme.

Inv=1

Der Parameter inv kehrt die Intensitätsrichtung um

data=1|2|3|4|5|6|7|8|9|10|11&color=ffffdd|-000044&inv=1

Color=<rrggbb0>|-<rrggbb>

Die einzelne Farbe rrggbb wird als Maximalwert interpretiert, die Anfangsfarbe ist schwarz.

data=1|2|3|4|5|6|7|8|9|10|11&color=ffffdd|-000044

Inv=1 kehrt die Intensitätsrichtung um

Color=<rrggbb0>|<rrggbb1>|<rrggbb2>

Statt der Farbintensität kann auch der Farbwert die Daten visualisieren, was insbesondere bei klimatischen Darstellungen verwendet werden kann. Dder kleinste Datenwert entspricht der Farbe rrggbb1, der größte Datenwert der Farbe rrggbb2. Inv=1 kehrt die Farbrichtung um

data=1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23&color=ffffdd|ff0000|ffff00

data=1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23&color=ffffdd|ff0000|ffff00&inv=1

Vorgespeicherte Darstellungen

Bei jeder Region sind die Fläche und die Einwohnerzahl gespeichert. Diese Daten können direkt visualisiert werden oder man kann auch die eigenen Daten auf eine dieser Größen beziehen.

Größe der Region

data=area

Bevölkerungszahl

data=population

Bevölkerungsdichte

data=density

Beispiele

data=area&color=000000|003300

data=population&color=000000|000033

data=density&color=000000|003344

Eigene Daten auf die vorgespeicherten Größen beziehen

Man kann die vorgespeicherten Daten mit eigenen Daten kombinieren. Jede Datenfolge kann auf die Fläche, die Einwohnerzahl oder die Einwohnerdichte bezogen werden. Gleichzeitig kann auch ein Minimum oder Maximum der Datenwerte voreingesstellt werden.

Bezug auf die Größe der Region

data=area|<d1>|<d2>|...
data=area|m<min>,<max>|<d1>|<d2>|...

Bezug auf die Bevölkerungszahl

data=population|<d1>|<d2>|...
data=population|m<min>,<max>|<d1>|<d2>|...

Bezug auf die Bevölkerungsdichte

data=density|<d1>|<d2>|...
data=density|m<min>,<max>|<d1>|<d2>|...

Zur Demonstration wird die Leserzahl der PCNEWS in absoluten Zahlen pro Region dargestellt und danach im Vergleich bezogen auf die Bevölkerungszahl.

Leserzahlen absolut

data=25|25|67|16|12|16|12|7|18|89|20|22|27|26|21|22|13|21|25|21|32|52|50&color=000000|886040

Bevölkerungszahl

Leser bezogen auf die Bevölkerungszahl

data=population|25|25|67|16|12|16|12|7|18|89|20|22|27|26|21|22|13|21|25|21|32|52|50&color=000000|886040

map=at,20&data=m-100,300|32|37|340|84|27|87|20|23|639&color=000000|886040

map=at,20&data=population|m0,0.0001|32|37|340|84|27|87|20|23|639&color=000000|886040

Overlays

Overlays sind Grafikelemente die auf der landkarte platziert werden können.

Besondere Anzeigen

Mittelpunkt der Region zeigen

show=center

Flagge der Region zeigen

show=flag

Namen der Region anzeigen

show=name

style=||||<font-family>,<font-size>,<font-weight>,<fill>,<text-align>,<text-anchor>

Wenn styletxt nicht angegeben wird, werden folgenden Anfangswerte gewählt:

style=||||Tahoma,10,bold,000000,center,middle

font-weight {normal | bold | bolder | lighter}, text-align {left | right | center}, text-anchor {start | middle | end}

Text verschieben

Wenn sich die Texte überlappen, kann man Beschriftungen einzelner Regionen verschieben.

Datenwerte pro Region

data=<b1>,<d1>,<text1>,<dx1>,<dy1>|...

Externe Bilder

Das Bild muss durch eine Internetadresse angegeben sein. Man gibt die Position und die Größe an sowie den Transparenzgrad. Bei mehreren Bildern desselben Verzeichnisses genügt es, die Adresse nur beim ersten Bild anzugeben.

ovl=<caption>,<url>,<img>,<x>,<y>,<width>,<height>,<opacity>,<resize>|...

caption ist der Name des Bildes, url die Adresse ohne den Dateinamen aber mit dem letzten Slash, img ist der Dateiname. Der Koordinatenursprung det Landkarte ist die linke obere Ecke, die positive x-Richtung läuft nach rechts, die positive y-Richtung nach unten. x und y sind die Koordinaten der linken oberen Ecke des überlagerten Bildes; width und heigth sind Breite und Höhe des Bildes in Pixel. opacitiy ist der Grad der Transparenz (0 ist durchsichtig, 1 ist undurchsichtig).

Wenn die wirkliche Pixelzahl des Bildes größer ist als die Pixelzahl auf der Landkarte, dann verhalten sich die Browser leider nicht gleich. Der Firefox-Browser lässt das Bild unverändert und benutzt die übliche Html-Skalierung. Der Chome-Browser reduziert aber automatisch die Pixelgröße auf den neuen Wert. Bei Betrachtung der Landkarte ergibt das zu nächst keinen Unterschied, denn man kann ohnehin nicht weniger als ein Pixel aufösen. Wenn es aber darum geht, einen Landkartenausschnitt zu zeigen, dann kann Firefox das Bild noch korrekt auflösen, Chrome aber nicht. Für diesen Fall ist der zusätzliche Parameter resize gedacht, der mit dem Wert resize=1 und einem Svg-Trick auch bei Chrome die volle Auflösung ermöglicht. Man braucht den Parameter nicht, d.h. er kann den Wert 0 bekommen, wenn die überlagerten Bilder dieselbe Auflösung haben wie die darunter liegende Landkarte.

grid=<n>

Mit dem Parameter grid wird ein Gitter über Landkarte gelegt, damit man die genaue Position für die Bilder besser abschätzen kann. n ist die Anzahl der Pixel pro Linie.

Historische Landkarte am Stadtplan von Wien

Das Bild zeigt den um 20 Pixel verschobenen Raster, und ein überlagertes Bild.

http://localhost/map/map.aspx?map=at-9|20,20,20,20&ovl=Schmelz,http://rapid.iam.at/d/kmlo/,WienHistorisch2.jpg,176,269,93,71,0.8,1&grid=10

Ausschnittsvergrößerung

In dieser Form ist das überlagert Bild nicht gut sichtbar. Man kann aber durch die Angabe eines Ausschnitts im Atttribut map den dargestellten Kartenausschnitt wählen.

Ausgabeformat

out=<format>

Das Ausgabeformat kann zwischen SVG, Kode, JPG und vordefinierten Daten gewählt werden. /p>

out=SVG

Ausgabe als SVG-Datei (optimale Darstellung in Google-Chrome und Firefox. keine Darstellung in Internet-Explorer)

out=TXT

Ausgabe des SVG-Kodes als Text

    <?xml version="1.0" encoding="utf-8"?>
    <svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="654.88721" height="514.11169" id="svg_AT-9" viewBox="176,269,93,71" xmlns="http://www.w3.org/2000/svg">
    	<g id="Map_AT-9" transform="translate(-48.862683,-35.793523)">
    		<rect id="area" x="48.862683" y="35.793523" width="654.88721" height="514.11169" transform="" style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.0;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round;" />

    ...

out=JPG

Ausgabe der Landkarte als JPG-Bild. Achtung: bei JPG-Format funktionieren keine Overlays mit Bildern.

out=DATA

Ausgabe der Landkarten-Zusatzdaten gesamt und pro Region: Name, Landkartenindex, Index, Kfz-Kennzeichen, Fläche, Bevölkerung. Dazu kommt der optionale über das Attribut data eingegebene Datenwert und der berechnete Wert (bei Verwendung der Fläche, Einwohnerzahl und Bevölkerungsdichte als Bezug).