ViennaGIS

Einen Vormittag lang habe ich mich mal der Javascript-API des Stadtplandienstes von Wien gewidmet. Angeblich soll es ja möglich sein, per Javascript einen eigenen Stadtplan auf seine Homepage zu zaubern. Wer schon einmal auf der Seite von Wien.at auf Stadtplan geklickt hat, weiß dass die Häuser und die sonstige Infrastruktur sehr detailliert ist und sogar über türgenau verortete Hausnummern verfügt.

Also erstmal die etwas dürftige API-Dokumentation gelesen, die schon ein gewisse Vorkenntnis von WebGIS-Clients, wie die Google API oder OpenLayers abverlangt. Aber wie dem auch sei - ich habs ja kapiert. Also erstmal eine Karte instanziieren. Dies funktioniert mit</p>

var OttakringMap;
function initMap() {
    OttakringMap = new ViennaGisMap("ottakring", "http://www.wien.gv.at/stadtplan/", "de");
};

Der erste Parameter "ottakring" in der ViennaGisMap ist die ID des DIV-Elements im DOM. Die Funktion initMap() rufen wir sinnvollerweise auf, nachdem der DOM aufgebaut ist:

<body onload="initMap();"><div id="ottakring"></div></body>

Wir Starten den Browser und gleich schon springt uns eine Warnmeldung entgegen, die Karte solle bitteschön mind. 195x160 Pixel groß sein. Hmm. Also muss das CSS der Karte absolut definiert werden. Kein Problem - das ermitteln wir einfach mit Hilfe von Prototype.js und setzen das Kartenfenster auf die richtige Größe:

// Hoehe und Breite der Karte berechnen und als CSS setzen.
$("ottakring").setStyle({
    height: $("output").cumulativeOffset().top - $("north").getHeight() + "px", 
    width: $("app").getWidth() + "px";
});

So jetzt hat das Kartenfenster zwar die richtige Größe, aber anscheinend gibt es noch kein Hintergrundbild. Das fügen wir ganz einfach mit dem Befehl ShowLayers um:

OttakringMap.ShowLayers(
    "mzk",       // Achtung hier ein Komma    
    "markt,"+ 
    "apotheke,"+ 
    "oeffentlicherverkehr,"+ 
    "citybikestandort,"+    
    "buecherei,"+    
    "grillplatz,"+    
    "altstoffsammlung"
);

Wer sich jetzt wundert, woher ich die Layernamen weiß, die ja in der Dokumentation nicht drinnen stehen, der wundert sich zurecht. Ich musste mühsamst mittels Firebug die Kommunikation beim Anwählen von Ebenen  auf Wien.at untersuchen um die ShortNames herauszufinden. Unschön. Wer das nachmachen will - nur zu: HIER die URL. Ich werde mal eine Email an das Magistrat schicken, mit der Bitte die Ebenennamen zu veröffentlichen.

Das fertige Ergebnis kann unter wien betrachtet werden. Der Javascript-Code ist im HTML enthalten. Also einfach im Browser auf Quellcode anzeigen gehen und das ganze nochmal zu Gemüte führen.

Alles in einem nicht schlecht die API - zwar kann sie nur vorhandene Ebenen und evtl. noch einen Pin anzeigen, aber für die Orientierung in einer neuen Stadt langt's allemal.