Deze opgave lijkt sterk op de bash opgave “inkleuren”. Je kan vermoedelijk je oplossing van die opgave deels hergebruiken.
Scalable Vector Graphics (afkorting: SVG) is een op XML gebaseerd bestandsformaat voor statische en dynamische vectorafbeeldingen. Het is een open standaard van het W3C. Omdat SVG-bestanden tekstbestanden zijn, kunnen ze ook makkelijk gemanipuleerd worden. Neem bijvoorbeeld het bestand amerika.svg1 dat een (lege) kaart van de Verenigde Staten voorstelt.
De persoon die deze kaart in SVG-formaat heeft omgezet, heeft ook de extra moeite genomen om alle staten aan te duiden met hun gebruikelijke 2-lettercode (bijvoorbeeld AR
voor Arkansas en MT
voor Montana). Als je naar de inhoud van de afbeelding kijkt, dan zal je bijvoorbeeld zien dat de eerste staatsgrens (voorgesteld door een path
-element) geïdentificeerd wordt door de id HI
(id="HI"
), waardoor we weten dat ze Hawaï voorstelt.
De bedoeling van deze opgave is om een cgi-script te schrijven die een of meerdere staten inkleurt aan de hand van de meegegeven URL-parameters en onderaan de teruggegeven pagina een overzichtstabel weergeeft van de ingekleurde staten. De parameters bevatten steeds de afkorting van de staat als sleutel en de kleur als waarde.
Voor de request http://users.ugent.be/~loginnaam/cgi/inkleuren.cgi?HI=blue&FL=red
willen we dus de originele kaart te zien krijgen waarin de staat Hawaii blauw is ingekleurd en de staat Florida rood.
Tip: Alle moderne browsers kunnen SVG weergeven. Het is dus niet nodig om de verkregen afbeelding om te zetten naar een png-bestand zoals in de vorige opgave. Wel wil je dat de browser de uitvoer van je script als html probeert te renderen en niet als tekst toont zoals in de eerdere CGI opgaven. Laat je script daarom beginnen met:
echo "Content-type: text/html"
Voor deze opgave moet je het volledige cgi-script indienen. Je test het best op je eigen ugent webruimte aangezien de kaart daar ook gevisualiseerd zal worden, dit gebeurt niet op dodona.