Funktionsweise der Übersichtskarten (SVG bzw. Image Maps)

Wie die Übersichtskarten in XML aussehen, habe ich in einem anderen Abschnitt beschrieben. Aus diesem Element erzeugt das XSLT mit xsl:result-document drei Dateien:

Die beiden HTML-Dateien enthalten jeweils Links, durch die man - einmalig oder dauerhaft - auf die andere Variante umschalten kann. Die Dauerhafte Umschaltung geschieht mit einem Cookie, funktioniert also nur bei Leuten, die Cookies erlauben. Mehr Arbeit wollte ich mir damit nicht machen, schließlich ist die Umschalterei nicht lebensnotwendig. "Dauerhaft" heißt übrigens, dass der Cookie eine Lebensdauer von einem Jahr hat.

Die "Koordinaten" an der Karte in der client side image map-Variante entstehen durch Rechnerei in der XSL-Transformation.

Die SVG-Variante ist wesentlich einfacher und bettet im Grunde nur die SVG ein. Außerdem bekommen die Hyperlinks in der Legende ID-Attribute, damit die Javascripten sie schnell finden.

SVG aus XML mit XSLT zu generieren ist einfach. Man braucht nur eine SVG-Output-Definition, die man bei xsl:result-document als format-Parameter angibt. Die Technik des SVG ist größtenteils auf einem Umweg bei Beispiel für einen Teilekatalog mit XML abgekupfert. Bedauerlicherweise funktioniert sie nur im Internet Exploder richtig, da nur für den Internet Exploder ein voll funktionsfähiger SVG-Viewer existiert.

Aufgerufen werden die Übersichtskarten über eine Dispatcher-Seite, die im wesentlichen ein Javascript enthält. Die Dispatcherseite wird mit vier Parametern aufgerufen: dispatch.html?ziel,typ,place,cookie

Ziel ist der Anfang des Dateinamens der Übersichtskarte, zu der verzweigt werden soll. typ gibt an, ob die SVG oder die client side image map angezeigt werden soll. place bezeichnet einen Ort auf der Karte, der ggf. beim Aufruf bereits aktiviert ist (funktioniert nur im Internet Exploder). Und cookie gibt an, ob die aktuelle Einstellung permanent gespeichert werden soll (bzw. ob die gesetzten Cookies entfernt werden sollen).




This page has been created on Donnerstag 19. Dezember 2013 from travelog.xml using travelog.xsl.