Cyclingtransport.com

De fiets mee op vervoer door Europa

Het maken van een fietsvervoer-visualisatiesysteem

 

Hogeschool van Utrecht
Afdeling Bouwnijverheid
Opleiding Geodesie/Geo-informatica

 

juni 2003

 

Martijn Meijers

 

Begeleid door:
R. de Wijs, F. de Vroege (Hogeschool van Utrecht)
P. Benjaminse, S. Wilkeshuis (Carto Studio)

Woord vooraf

Deze scriptie is de laatste en afrondende schakel van de studie Geodesie en Geo-informatica aan de Hogeschool van Utrecht.

 

Het project wat hiervoor is uitgevoerd, is mijn eerste kennismaking met interactieve websites door middel van Flash en een database. Met alle mooie producten van Carto Studio als voorbeeld, was het zeker een uitdaging voor mij om vernieuwend bezig te zijn.

 

Het maken van een product als dit vergt echter ook heel wat tijd en energie. Energie die ik dankzij een aantal personen heb kunnen opbrengen.
Allereerst gaat mijn dank uit naar de mensen van Carto Studio, die mij de ruimte en mogelijkheden hebben geboden voor deze opdracht. Paul en Sibren, die mij tijdens deze opdracht hebben begeleid, Annet, Fred, Simone, Arnoud, en Hennie: hartelijk dank voor alle advies en de enerverende tijd bij Carto.
Daarnaast ben ik dank verschuldigd aan alle leraren van de opleiding Geodesie en Geo-informatica, maar zeker aan Rob en Frans die mij de finesses en leuke kanten van het vak hebben laten zien.
Dank ben ik ook verschuldigd aan de mensen binnen Scouting; Bedankt voor jullie inspirerende levenshouding, waardoor je er na een weekend weer voor een week tegen aan kunt. Met name Edwin bedankt voor de enerverende gesprekken die we tijdens onze ‘eetdates’ mochten hebben.
Bovenal gaat dank naar mijn ouders, Koos en Jaap, voor hun altijd aanwezige steun en aanmoediging.

 

 

 

 

Naaldwijk, 19 mei 2003

Inhoudsopgave

Woord vooraf 2

Inhoudsopgave  3

Samenvatting  4

Een fietsvervoer-visualisatiesysteem   5

1            Beknopte beschrijving van het project 6

1.1         Probleembeschrijving  6

1.2         Probleemstelling  6

1.3         Doelstelling  6

2            Geformuleerd eisenpakket 7

2.1         Eisen vanuit de eindgebruiker 7

2.2         Eisen vanuit Carto Studio  7

3            Conceptuele component beschrijving  10

3.1         Systeem modellering  10

3.2         Interactie modellering  11

3.3         Data modellering  15

4            Implementatie  17

4.1         Keuze voor techniek  17

4.2         Statistieken over gebruikers  18

4.3         Cartografische interface  18

4.4         Communicatiemodule  26

4.5         Gegevensopslag  27

4.6         Uitwerking van de beheeromgeving  30

5            Systeem overdragen aan Carto Studio  32

5.1         Installatie  32

5.2         Acceptatie  32

Conclusie  34

Gebruikte terminologie  35

Gebruikte literatuur en websites  36

Bijlagen

Samenvatting

Het aanbod van informatie over internationaal fietsvervoer per trein en vliegtuig is momenteel ongestructureerd. Dit wordt door een grote groep vakantiefietsers als een gemis ervaren. Ten doel is gesteld om een website te maken om deze informatie meer inzichtelijk te maken.

Ten eerste is er vooral veel overleg geweest met Carto Studio. Uit dit overleg is een lijst van eisen opgesteld, waaraan het systeem moet voldoen. De eisen zijn gesplitst naar de eisen vanuit het perspectief van de eindgebruiker en van Carto Studio.

Er wordt een beschrijving gegeven van hoe het systeem gemodelleerd is. Als eerste wordt de opbouw beschreven. Het systeem valt in vier delen uit een, te weten de cartografische interface, een communicatie module, de gegevensopslag en de beheeromgeving. Vervolgens wordt beschreven wat een gebruiker aan mogelijke acties kan uitvoeren en hoe het systeem hierop moet reageren. Hieruit komt een beschrijving van de functionaliteit die alle delen gezamenlijk moeten bieden naar voren. Welke gegevens getoond moeten kunnen worden en zodoende binnen het systeem moeten worden opgeslagen komt daarna aan bod.

Daarna worden de keuzes voor de techniek toegelicht. Dan komt de implementatie van alle vier de onderdelen van het systeem aan de orde. Van de cartografische interface komen aan bod: de indeling, het vervaardigen van de kaarten, het presenteren van de reisinformatie, het printen, het boeken van een treinreis, het helpscherm, een fictieve reis door Zwitserland en promotie voor de bestaande fietsroutes. Van de communicatiemodule wordt het proces van overdragen van gegevens tussen de verschillende onderdelen beschreven. De gegevens die opgeslagen zijn en de bevragingen die door het systeem kunnen worden gesteld, zijn bij de gegevensopslag beschreven. Van het beheer wordt verhaald over het afgrendelen, en de verschillende modules (de database-, de formulier- en de beheermodule).

Nadat het systeem klaar is bevonden, is het geïnstalleerd op de webomgeving van Carto Studio. Hierna zijn een aantal acceptatietesten uitgevoerd. Er is getest of de kaarten de juiste informatie bevatten en correct werken, de snelheid van het systeem en de werking van de beheeromgeving is onder de loep genomen. Als laatste is de technische informatie over het hele systeem overgedragen aan Carto Studio.

Het resultaat van het project is een product geworden, dat gezien mag worden en waarmee het kunnen van Carto Studio aan klanten kan worden gedemonstreerd. Er mag geconcludeerd worden dat de doelstelling van het project gehaald is.

Een fietsvervoer-visualisatiesysteem

Deze scriptie behandelt het vervaardigen van het fietsvervoer-visualisatiesysteem cyclingtransport.com. Het project is in vier maanden tijd, van half januari tot half mei, uitgevoerd in opdracht van Carto Studio te Amsterdam.

In de volgende hoofdstukken wordt er een beschrijving gegeven van het vervaardigen van het systeem. De scriptie vangt aan vanuit een meer algemeen perspectief; Naar het einde toe volgen dan de meer technische details.

Allereerst wordt er beschreven vanuit welke behoefte het systeem is vervaardigd.
Vervolgens komt aan de orde hoe alle onderdelen van het systeem gemodelleerd zijn.
De technische keuzes en implementatie worden hierna behandeld.
Afgesloten wordt met conclusies of het systeem voldoet aan de gestelde eisen en of de geformuleerde doelstelling is gehaald.

1          Beknopte beschrijving van het project

Het aanbod van informatie over internationaal fietsvervoer per trein en vliegtuig is momenteel ongestructureerd. Dit wordt door een grote groep vakantiefietsers als een gemis ervaren. Ten doel is gesteld om een website te maken om deze informatie meer inzichtelijk te maken.

1.1        Probleembeschrijving

Bij het plannen van een fietsvakantie gaan er een aantal voorbereidingen vooraf. Een goede fiets is vanzelfsprekend, maar ook het plannen van een treinreis voor heen- of terugreis staat hoog op het prioriteitenlijstje van menig fietser. Niet in alle treinen mag of kan namelijk een fiets meegenomen worden.

De vraag naar inzicht in de mogelijkheden om de fiets mee heen of terug te nemen is groot. Dat geldt niet alleen voor de vele individuele reizigers, maar ook voor organisaties zoals de Fietsersbond en Rover. Zij houden zich hier actief mee bezig. Ook organisaties zoals de treinreiswinkel, NS-travel en fietsvakantie.pagina.nl koesteren een warme belangstelling voor dit onderwerp. Het aanbod van fietsvervoersmogelijkheden wordt tot op heden nog niet overzichtelijk gepresenteerd.

De trajecten die men opvraagt zijn niet alleen de heen- en terugreis, maar betreffen ook de wat meer moeizame passages van een mogelijke fietsroute zoals de doorsteek van de Alpen of een ander bergmassief.

Daarnaast wordt er vanaf de verder afgelegen bestemmingen tegenwoordig vaker het vliegtuig gebruikt, wat zowel sneller als ook (meestal) goedkoper is.

Het huidige aanbod wat betreft fietsvervoer is ongeorganiseerd en verbrokkeld. Er wordt geen ketenbenadering toegepast en per land is alleen een opsomming van de informatie aanwezig.

1.2       Probleemstelling

De informatie over de vervoersmogelijkheden van fietsen in Europa is ongestructureerd en wordt nog nergens op kaarten gevisualiseerd aangeboden. Dit wordt door een brede groep van vakantiefietsers in Nederland én België en professionele organisaties, als een gemis ervaren.

1.3       Doelstelling

De bedoeling van de opdracht is: een website maken voor fietsers uit Nederland en België, die zowel een betere ingang biedt tot het opvragen van vertrek- en aankomsttijden (van internationale treinen en van internationaal vliegverkeer, waarmee de fiets mag worden meegenomen), als één waarbij een goede cartografische interface centraal staat.

2        Geformuleerd eisenpakket

Ten eerste is er vooral veel overleg geweest met Carto Studio. Uit dit overleg is een lijst van eisen opgesteld, waaraan het systeem moet voldoen. De eisen zijn gesplitst naar de eisen vanuit het perspectief van de eindgebruiker en van Carto Studio.

2.1       Eisen vanuit de eindgebruiker

Een opsomming van wat er vanuit het perspectief van de langeafstandsfietser, die zijn heen- of terugreis wil plannen, belangrijk is:

Kaart voor ontsluiting

Het systeem moet interactief kaartmateriaal aanbieden, waarmee bevraging van de opgeslagen reizen mogelijk is.

Inzicht bieden in vervoersmogelijkheden

Het systeem moet inzicht bieden aan fietsers in de verscheidene vervoersmogelijkheden van hun fiets per trein en per vliegtuig. Er wordt een verbetering ten opzichte van de huidige situatie gerealiseerd door het toepassen van een ketenbenadering op de reismogelijkheden. De informatie moet hiervoor worden aangeboden in een logische reeks, die samenhangt met de eindpunten van de fietsroutes.

Presenteren van vertrek- en aankomsttijden

Bij het opvragen van reizen moeten vertrek- en aankomsttijden van trein én vliegtuig kunnen worden gepresenteerd. Hierbij moet het mogelijk zijn om eerdere en latere reismogelijkheden weer te geven. Ook moet er een optie zijn om bij de reizen opmerkingen met belangrijke extra informatie op te nemen.

Op kaart visualiseren

Een gekozen reis moet op de kaart worden gevisualiseerd, zodat het voor een fietser duidelijk is hoe de route loopt.

Printen van informatie

De kaart en de reis moeten uitgeprint kunnen worden.

2.2      Eisen vanuit Carto Studio

De eisen vanuit het gezichtspunt van de opdrachtgever:

Passen binnen de bedrijfsvoering

Het project moet aansluiten op de werkwijze van Carto Studio voor het vervaardigen van interactieve kaarten voor een beeldschermpresentatie, zodat het in de toekomst onderhoudbaar en uitbreidbaar is.

Daarnaast moet het systeem qua techniek passen binnen de reeds in gebruik zijnde webruimte van Carto Studio. Dit wordt beschreven in § 4.1.

Nieuwe opzet treinrouteplanners

Treinrouteplanners werken vooralsnog alleen met het invullen van de vertrek- en aankomstplaats via een invulformulier. Een kaart inzetten om de bevraging vanuit te starten, in plaats vanuit een invulformulier, is nog nergens gerealiseerd.
Met een kaart is het makkelijker om een dichtbijgelegen station, wat anders niet door de routeplanner aangegeven zou zijn, aan te klikken en als mogelijk vertrekpunt te gebruiken.

Ook wordt er bij de huidige generatie treinrouteplanners geen kaartmateriaal ingezet om te visualiseren hoe een treinreis loopt.

Fietsers zijn al met kaarten en fietsboekjes bezig voor het plannen van hun reis: het is dus logisch om een kaart als ontsluiting te gebruiken.

Sfeer oproepen

De website moet een bepaalde sfeer opwekken, waardoor mensen enthousiast raken over het idee om met de fiets of vliegtuig op vakantie te gaan. De achterliggende gedachte is dat de fietsboekjes, die Carto Studio uitgeeft, zo meer verkocht worden.

Boeken van reizen

Het systeem moet een mogelijkheid bieden om een opgezochte reis te kunnen boeken bij een externe organisatie.

Van elke boeking moet een afschrift naar Carto Studio gestuurd worden, waarmee er aangetoond kan worden hoeveel boekingen er door het systeem bij deze externe organisatie zijn uitgevoerd. Op dit aantal boekingen kan een afrekening worden gebaseerd tussen Carto Studio en de andere organisatie voor het aanbieden van de boekingsmogelijkheid.

Bedrijven interesseren voor een soortgelijk systeem

Met dit systeem als voorbeeld kunnen de diverse mogelijkheden, die door websites met kaartmateriaal geboden worden aan klanten worden getoond.
Mogelijke klanten zijn bijvoorbeeld NS Internationaal en EU Rail. Zodoende kan er met dit systeem worden ingezet op het binnenhalen van nieuwe, gelijksoortige projecten.

Kennis opdoen

Het project dient eveneens om nieuwe kennis binnen Carto Studio op te bouwen. Binnen het project zal er daarom gewerkt worden met, voor Carto Studio, nieuwe technieken. Zie verder § 4.1.

Bijhouding

De gegevens over de reismogelijkheden zullen in het systeem ingevoerd en bijgehouden moeten worden. Actualisatie zal grotendeels handmatig moeten gebeuren, aangezien er nergens een open gegevensbron is, waar deze gegevens jaarlijks vandaan gehaald kunnen worden. Deze invoer zal verzorgd worden door twee soorten gebruikers:

         Professionele organisaties, die er baat bij hebben om een boekingsmogelijkheid in het systeem te hebben. In ruil hiervoor zorgen zij òf voor gegevensinvoer, òf voor betaling van Carto Studio voor het invoeren van de gegevens;

         Fietsrouteplanners, dit zijn vrijwilligers die de gegevens invoeren. In ruil daarvoor krijgen zijn binnen het systeem een plaats om hun eigen fietsroutes te promoten.

Het is daarom zaak dat het systeem een mogelijkheid biedt aan derden (belanghebbenden, instellingen) om invoer van gegevens te kunnen verzorgen.

3        Conceptuele component beschrijving

In dit hoofdstuk wordt een beschrijving gegeven van hoe het systeem gemodelleerd is. Als eerste wordt de opbouw beschreven. Het systeem valt in vier delen uit een, te weten de cartografische interface, een communicatie module, de gegevensopslag en de beheeromgeving. Vervolgens wordt beschreven wat een gebruiker aan mogelijke acties kan uitvoeren en hoe het systeem hier op moet reageren. Hieruit komt een beschrijving van de functionaliteit die alle delen gezamenlijk moeten bieden naar voren. Afgesloten wordt met welke gegevens getoond moeten kunnen worden en zodoende binnen het systeem moeten worden opgeslagen.

3.1       Systeem modellering

Aan de hand van de eisen is een opzet voor het systeem uitgewerkt. Het systeem is georganiseerd in vier functionele modules met elk hun specifieke taak, namelijk:

1.      De cartografische interface. Onder de cartografische interface worden de verschillende schermen die de eindgebruiker te zien krijgt, verstaan.
Hierbinnen worden de kaarten opgenomen, die als ingang worden gebruikt om de informatie op te vragen. Ook de gegevens betreffende de reizen worden hier gepresenteerd. Tevens bevindt zich hierin de functionaliteit voor het printen en het boeken van een reis.

2.      De communicatiemodule, deze zorgt voor de afwikkeling van een aanvraag uit de kaart en het ophalen van de gegevens uit de gegevensopslag. Het ophalen moet op zo’n manier gebeuren, dat de gegevens logisch gepresenteerd kunnen worden binnen de cartografische interface.
Daarnaast moet deze module de mogelijkheid bieden het systeem in de toekomst verder uit te breiden naar andere media, zoals een mobiele telefoon.
Als laatste moet deze module ook de verzending van de boekingsgegevens verzorgen.

3.      De gegevensopslag bevat de gegevens op een gestructureerde manier, zodat deze zoveel mogelijk enkelvoudig opgeslagen zijn (geen redundantie) en snel opgehaald kunnen worden.

4.      De beheeromgeving, die zorg draagt voor het geven van toegang voor derden tot de gegevensopslag. Deze personen moeten met de beheeromgeving reizen (en alle informatie die daarmee samenhangt) kunnen toevoegen, wijzigen en verwijderen.

Figuur 1 Het systeem is georganiseerd in vier functionele modules met elk hun specifieke taak

Er is voor deze modulestructuur gekozen, omdat zo elke module vervangen zal kunnen worden door een andere implementatievariant zonder dat de andere modules daaraan te hoeven worden aangepast.
Zo kan, als daar behoefte aan mocht blijken te zijn, bijvoorbeeld de gegevensopslag worden vervangen door een zwaardere variant.

3.2      Interactie modellering

Interactie met de cartografische interface

De eisen vanuit het perspectief van de eindgebruiker zijn uitgewerkt in een stappenplan van wat een gebruiker aan acties kan uitvoeren. Met de acties die een gebruiker kan doen, hangt samen wat het systeem dan moet gaan doen.

Figuur 2 Interactie met de cartografische interface

Dit is uitgewerkt in een stappenplan:

1.      Uitgangspunt is een kaart met daarop stations, vliegvelden, spoorlijnen en fietsroutes.

2.      Een gebruiker kan op een station of een vliegveld (als algemene term wordt hier het woord knooppunt voor gebruikt) klikken.
Dit klikken doet hij op de overzichtskaart van de langeafstandsverbindingen of op een detailkaart van een regio. Hiermee wordt bepaald of de informatie die opgezocht moet worden regionaal of interregionaal van aard is.

3.      Met deze klik worden de beschikbare verbindingen bij dit knooppunt opgehaald.

4.      Een gebruiker kiest vervolgens een verbinding en krijgt:

a.      één of meerdere reizen waarvan de trajecten met de tijden worden gepresenteerd;

b.      of een gebruiker moet overstappen;

c.      of de reis altijd of alleen op bepaalde dagen mogelijk is;

d.      of reservering voor de reis verplicht is.

5.      Deze reisinformatie moet kunnen worden geprint.

6.      Een treinreis moet kunnen worden geboekt (niet allemaal, slechts deze verbindingen waarvan het aangegeven is dat ze te boeken zijn).

Het geheel moet een sfeer oproepen, zodat een bezoeker zin krijgt om te gaan reizen.

Functionaliteit cartografische interface

Om de bovenstaande interactiviteit te kunnen bieden, is de cartografische interface opgesplitst in een aantal delen:

         De kaart module; Een overzichtskaart van Europa en een aantal detailkaarten moeten op een eenduidige wijze een eenvoudige manier voor het opvragen van reisinformatie bieden.

         De gegevensmodule. Op een plaats binnen de schermen moeten de gegevens over de reismogelijkheden worden geplaatst, zodanig dat er een net en overzichtelijk geheel ontstaat.

         Een printmodule. Als deze aangesproken wordt, wordt de kaart en de informatie, over de reis die op dat moment op het scherm staat, afgedrukt.

         De boekingsmodule. De gegevens voor de te boeken reis zijn beschikbaar uit de gegevensmodule. Daarom zal deze module een invoermogelijkheid moeten bieden voor de persoonlijke gegevens van de gebruiker.

         De helpmodule. Hier wordt algemene informatie getoond over hoe de website werkt. Het helpscherm moet vanuit de gehele interface oproepbaar zijn.

Interactie beheeromgeving

De beheeromgeving komt voort uit de wens dat gegevens betreffende de reisinformatie door derden moet kunnen worden ingevoerd. Deze omgeving moet simpel toegankelijk zijn: er moeten geen andere applicaties benodigd zijn dan een internetbrowser.

Het proces voor het beheren van reisinformatie is als volgt:

1.      Een beheerder logt in.

2.      Er wordt een overzicht van alle verbindingen die de gebruiker mag beheren gegenereerd. Er is één hoofdgebruiker die alle verbindingen én ook de informatie over andere beheerders mag beheren.

3.      Het systeem biedt vervolgens alle mogelijkheden om informatie over verbindingen toe te voegen, te wijzigen en te verwijderen.

4.      Aan de hoofdgebruiker wordt functionaliteit aangeboden om verbindingen aan beheerders toe te wijzen en informatie over beheerders te wijzigen en te verwijderen.

5.      Na gebruik logt een gebruiker zelf uit; Of na een bepaalde tijd geen acties te hebben gedaan wordt de gebruiker door het systeem uitgelogd.

Functionaliteit van de beheeromgeving

Om de bovenstaande interactiviteit te kunnen bieden, is de beheeromgeving opgesplitst in een aantal delen:

         De beveiligingsmodule. Het in- en uitloggen en daarmee het afgrendelen voor ongewenst gebruik, wordt met deze module verzorgd.

         De interfacemodule. Deze module verzorgt de opbouw van formulieren, waarmee de gegevens worden getoond en waarmee de gebruiker de gegevens kan toevoegen, wijzigen en verwijderen.

         De beheermodule: hiermee wordt de informatie over reismogelijkheden rechtstreeks gewijzigd, verwijderd en toegevoegd in de gegevensopslag.

 

Figuur 3 Interactiviteit die de beheeromgeving moet bieden

3.3      Data modellering

De gegevens in het systeem worden op één plek opgeslagen, namelijk binnen de gegevensopslag. Deze gegevens worden vervolgens bevraagd uit en overgedragen aan de cartografische interface via de communicatielaag.

Aan de hand van wat er binnen de cartografische interface moet worden getoond, is er bepaald welke data binnen de gegevensopslag aanwezig moeten zijn en overgedragen kunnen worden.

Communicatiemodule

De communicatiemodule zorgt voor de afwerking van een aanvraag uit de kaart en het ophalen van de gegevens uit de gegevensopslag. Dit gebeurt op zo’n manier dat ze logisch gepresenteerd kunnen worden binnen de cartografische interface.
Deze module heeft geen rechtstreekse interactie met de gebruiker, alleen met de cartografische interface en de gegevensopslag.

Normaal is het opvragen van een internetpagina een vrij eenvoudig proces: de eindgebruiker doet een aanvraag voor het opvragen van de pagina, de webserver controleert of deze pagina aanwezig is en stuurt vervolgens de gewenste informatie terug naar de eindgebruiker.
Om informatie via de cartografische interface uit de gegevensopslag op te halen is het proces iets ingewikkelder. De informatie die opgehaald dient te worden, hangt af van wat de eindgebruiker wil weten. Hiervoor worden er een aantal parameters bij de aanvraag vanuit de cartografische interface meegestuurd. Nu is het nodig dat de communicatiemodule deze aanvraag met extra parameters kan verwerken.
De communicatiemodule bestaat uit een internetpagina waarbinnen logica aanwezig is om met de parameters de gewenste informatie uit de gegevensopslag op te halen. Vervolgens kan aan de hand van deze logica de informatie zo gestructureerd worden als gewenst, voordat deze informatie teruggestuurd wordt.

Hoe de gegevens precies moeten worden opgevraagd en teruggestuurd, is vastgesteld aan de hand van de technische mogelijkheden en de eis dat het uitbreidbaar moet zijn in de toekomst. Dit wordt beschreven in § 4.4.

Gegevensopslag

De gestructureerde manier van gegevensopslag is zo opgezet, dat gegevens over trein- en vliegverbindingen en in de toekomst wellicht informatie over boot- en fietsbusverbindingen, op een eenduidige wijze kunnen worden opgenomen.
Deze laag heeft geen rechtstreekse interactie met de gebruiker, alleen met de communicatiemodule.

De termen die gebruikt worden bij het beschrijven van het proces van welke acties een gebruiker kan uitvoeren, zijn als basis genomen om de gegevens logisch op te slaan.
De gebruikte termen zijn objecten uit de werkelijkheid. Deze objecten worden ook wel entiteiten genoemd. De relaties die deze entiteiten met elkaar hebben, zijn beschreven in een zogenaamd Entiteiten-Relatie-Diagram, afgekort een ERD-diagram.

Een ERD-diagram is een grafische weergave van de verschillende entiteiten die binnen een informatiesysteem aanwezig zijn. Ook worden hierin de belangrijke relaties tussen de entiteiten aangegeven.

Figuur 4 ERD diagram

De entiteiten binnen het fietsvervoer-visualisatiesysteem zijn: verbinding, reis, traject, knooppunt en beheerder. Met deze entiteiten is eigenhandig zo’n diagram vervaardigd.

De relaties tussen de entiteiten:

1.      Een verbinding bestaat uit één of meerdere reizen. Daarnaast wordt een verbinding beheerd door één beheerder. Extra informatie, die opgeslagen moet kunnen worden, is of de reizen die bij een verbinding horen boekbaar zijn bij een externe organisatie.

2.      Een reis bestaat uit één of meerdere trajecten. Hier moet een opmerking opgeslagen kunnen worden of een reis altijd kan plaatsvinden, of alleen op bepaalde dagen.

3.      Een traject bestaat uit twee knooppunten, namelijk het vertrek- en het aankomstknooppunt met daarbij opgeslagen op welke tijd het vervoer er vertrekt, respectievelijk arriveert. Ook een opmerking over reservering of over andere belangrijke zaken, moet hier kunnen worden opgeslagen.

4        Implementatie

Allereerst worden de gekozen technieken toegelicht. Dan komt de implementatie van alle vier de onderdelen van het systeem aan de orde. Van de cartografische interface komen aan bod: de indeling, het vervaardigen van de kaarten, het presenteren van de reisinformatie, het printen, het boeken van een treinreis, het helpscherm, een fictieve reis door Zwitserland en promotie voor de bestaande fietsroutes. Van de communicatiemodule wordt het proces van overdragen van gegevens tussen de verschillende onderdelen beschreven. De gegevens die opgeslagen zijn en de bevragingen die door het systeem kunnen worden gesteld, zijn bij de gegevensopslag beschreven. Van het beheer wordt verhaald over het afgrendelen, en de verschillende modules (database, formulier en beheer).

4.1       Keuze voor techniek

Hier wordt de gekozen techniek om het systeem mee uit te voeren, beschreven. Als basis voor de keuzes zijn de eisen genomen dat:

         het project moet aansluiten op de werkwijze van Carto Studio voor het vervaardigen van interactieve kaarten voor een beeldschermpresentatie, zodat het in de toekomst onderhoudbaar en uitbreidbaar is.

         het systeem qua techniek moet passen binnen de reeds in gebruik zijnde webruimte van Carto Studio.

Zodoende ligt de technische uitvoering van het systeem vast.

Cartografische interface

Binnen Carto Studio is al ervaring aanwezig met het bouwen van interactieve websites die met behulp van een kaart informatie ontsluiten. Voorbeelden hiervan zijn: de haltekaarten op www.htm.net en www.ret.rotterdam.nl en het project www.topvandekop.nl.

Deze projecten zijn uitgevoerd met behulp van Flash, een product van het bedrijf MacroMedia om interactiviteit binnen internetpagina’s te brengen. Flash is gebaseerd op een tijdlijn bestaande uit frames. Binnen deze frames worden acties gedefinieerd, die een gebruiker kan uitvoeren. Geavanceerdere interactiviteit kan aangebracht worden met behulp van de ActionScript-programmeertaal.

Voor kaartmateriaal op het web is Flash vooral geschikt, vanwege de vectorgebaseerde opslagmethode van de grafische elementen; Hiermee wordt een hoge kwaliteit van het beeldmateriaal bereikt en dit vraagt tegelijkertijd weinig opslagcapaciteit.

Communicatiemodule en beheeromgeving

Voor de communicatiemodule en de beheeromgeving is het nodig om interactieve internetpagina’s te kunnen maken.

Binnen het webpakket van Carto Studio wordt gewerkt op het Microsoft platform en daar bieden de Active Server Pages (ASP) deze mogelijkheid.

Binnen de Active Server Pages kan er gekozen worden uit een variëteit aan scriptingtalen.
Onder andere VBScript en JScript behoren tot de mogelijkheden. JScript en VBScript zijn programmeertalen, waarbij de gemaakte programmatuur bij het uitvoeren wordt gevalideerd op correctheid en vervolgens wordt gecompileerd tot een werkend programma.
De syntax van JScript is in vergelijking met VBScript strikter en meer gestandaardiseerd. Voor het cyclingtransport.com project is er gekozen om te programmeren in JScript.

Binnen Carto Studio zijn er nog niet eerder zelf geprogrammeerde interactieve internetpagina’s gebruikt.

Gegevensopslag

Binnen Carto Studio is er nog niet eerder een zelf gemaakte database gebruikt.

Als gegevensopslag is een Access-database de standaard mogelijkheid binnen het beschikbare webpakket. Er is eventueel de mogelijkheid om SQL-server, de zwaardere broer van Access, te gebruiken. Hiervoor moet dan extra worden betaald. Er is echter niet voor gekozen, omdat de te verwachten hoeveelheid data binnen Access zou moeten passen.

4.2      Statistieken over gebruikers

Voor er begonnen is met het bouwen van de cartografische interface, zijn er eerst statistieken opgevraagd over in gebruik zijnde schermgroottes en aantal schermkleuren. Deze zijn bekeken bij nedstat.nl, een bedrijf dat tellers levert voor webpagina’s. Daarmee beschikt het over statistieken van met wat voor soort hardware gebruikers het internet raadplegen.

Beeldschermresolutie

Ongeveer een kwart van de gebruikers beschikt over niet meer dan 800 bij 600 pixels. Daarentegen heeft 70% de beschikking over 1024 bij 768 pixels of groter. Daarom is besloten om de hele interface uit te voeren in een formaat van 850 bij 500 pixels.

Hoeveelheid schermkleuren

Van de gebruikers heeft 97% de beschikking over hoge kleuren of meer. Hieruit volgt dat er niet expliciet rekening gehouden hoeft te worden met een beperking in het aantal kleuren: een speciale 256-kleuren versie is niet nodig.

4.3      Cartografische interface

Indeling van de verschillende onderdelen

Als eerste is een globale indeling voor de schermen gemaakt. Hieruit zijn de afmetingen voor de verschillende onderdelen voortgekomen.

Figuur 5 Globale indeling scherm

Een centrale plaats is gereserveerd voor het kaartmateriaal (driekwart van het scherm). Voor de gegevensmodule is het overige deel van het scherm beschikbaar.

De kaart is links geplaatst; Hier moet een gebruiker als eerste op klikken, de reisinformatie wordt vervolgens aan de rechterkant van het scherm gepresenteerd.

De andere modules komen òf niet in beeld (print module), òf zijn schermvullend uitgevoerd, waarbij dan de andere modules van het scherm verdwijnen (dit is het geval bij de boekingsmodule).

Overzichtskaart, detailkaarten en achtergronden

Van de kaarten en de achtergronden wordt besproken:

         uit welk basismateriaal ze zijn gemaakt;

         hoe ze zijn vervaardigd;

         en welke keuzes er gemaakt zijn met betrekking tot de symbolen en kleuren.

Basismateriaal

Als basismateriaal is er gebruikt:

         een digitale spoorkaart van de internationale treinverbindingen, vectorformaat.

         een digitaal bestand met de verschillende fietsroutes, beschikbaar als vector.

Deze twee zijn gecombineerd tot een nieuw vectorbestand. Het materiaal is rechtenvrij beschikbaar voor gebruik binnen Carto Studio.

De achtergrond van de interface is zo uitgevoerd, dat deze in overeenstemming is met de kaart die afgebeeld wordt.

Het fotomateriaal voor de verschillende achtergronden is deels uit het archief van de fietsboekjes gehaald. Daarnaast is voor de site speciaal een serie foto’s genomen. De foto in het hoofdscherm met de mensen naast de trein is hier een voorbeeld van.

Productiewijze

De kaarten zijn voorbereid in FreeHand voor beeldschermpresentatie.

Als centrale vraag om te bepalen welke informatie er op de kaart moet komen te staan, is genomen: wat is er voor een fietser die internationaal gaat reizen met de trein of het vliegtuig van belang om op te nemen op de kaart? Besloten is om in ieder geval de belangrijke spoorlijnen en stations en de vliegvelden op te nemen. Ook het reliëf in berggebieden is van belang, om als fietser een keuze te maken om delen van een fietsroute, die bijvoorbeeld te steil zijn, over te slaan.

Er is hiervoor een uitdraai gemaakt met het hele Europese spoorwegennet er op. Het beeld wat dit opleverde, was veel te vol. Daarom zijn op de plot de spoorlijnen die niet van belang zijn voor internationaal fietsvervoer aangegeven. Dit zijn de lijnen die geen aansluiting hebben op de fietsroutes. Vervolgens zijn deze uit het bestand verwijderd.

De ondergrond van de spoorkaart is sterker gegeneraliseerd. Hiervoor is gebruik gemaakt van het simplify-commando binnen FreeHand. Uit de vectoren die de vlakken vormen, worden dan punten verwijderd terwijl de structuur toch behouden blijft.
Het generaliseren van de vlakken komt met name de bestandsgrootte ten goede. Kleine bestanden zijn belangrijk, vanwege een kortere inlaadtijd en genieten de voorkeur voor het gebruik op internet.

Na het generaliseren van de ondergrond zijn de verschillende gebiedsuitsneden voor de detailkaarten bepaald: met een rechthoek wordt de beschikbare ruimte die de kaart in mag nemen binnen de interface, afgebakend. Vervolgens wordt de basiskaart vergroot of verkleind, om binnen deze rechthoek te passen. De nu bepaalde gebiedsuitsnede wordt letterlijk uit de grote basiskaart gesneden en overgebracht naar een ander bestand. Hierop vinden de overige bewerkingen plaats. Dit werkt sneller dan met de hele kaart.

Binnen FreeHand kan er gewerkt worden met zogenaamde stijlen, dit is handig om alle kaarten dezelfde opmaak te geven. Deze stijlen kunnen namelijk worden geëxporteerd en zodoende gebruikt bij de verschillende deelbestanden.

Nadat op een bestand de stijlen toegepast zijn, worden alle benodigde teksten (namen van stations en vliegvelden) handmatig geplaatst. Als het bestand compleet is, wordt het bestand vervolgens geëxporteerd naar Flash, via de exportmogelijkheid die FreeHand biedt.

Deze conversie is soepel verlopen. Gestreepte lijnen, zoals die bij de spoorlijnen gebruikt worden, leveren problemen op. Deze moeten handmatig gekopieerd en binnen Flash worden geplakt. Ook tekstvrijstelling moet binnen Flash gebeuren.

Wel is het zaak om bij de conversie slim in lagen te exporteren. De gebruikelijke werkwijze bij Carto Studio is om alle informatie met dezelfde stijl in één laag te zetten. Binnen FreeHand wordt er daardoor met meer lagen gewerkt dan binnen Flash noodzakelijk is. Binnen FreeHand is bijvoorbeeld de ondergrond uitgesplitst naar een aantal lagen met hoogte informatie. Deze lagen kunnen samen naar Flash worden geëxporteerd, omdat hier geen aanpassingen meer aan hoeven te worden gedaan.

Figuur 6 Productieschema van de kaarten voor de cartografische interface

Binnen Flash worden nog een aantal handelingen gepleegd.

De tekst wordt vrijgesteld binnen Flash. Vrijstelling wordt gerealiseerd door blokjes in dezelfde kleur als de ondergrond in een laag onder de tekst te tekenen. Er is namelijk geen mogelijkheid om letters een outline mee te geven.

Als laatste worden er nog enkele elementen binnen Flash geplaatst, zoals de stations en vliegvelden. Aan deze elementen zit namelijk logica voor de bediening van de interface. Deze logica kan niet worden aangebracht binnen FreeHand, dit moet binnen Flash gebeuren.

Er is voor deze elementen binnen Flash een bibliotheek aanwezig. Deze symbolenbibliotheek kan zelf uitgebreid worden. Het is eenmalig nodig om elementen binnen de bibliotheek aan te maken. Vervolgens kan er van deze symbolen een instantie binnen het Flash bestand worden gemaakt. Deze instantie verandert mee, zodra het moederelement in de bibliotheek wordt veranderd.

Om de detailkaartjes binnen de structuur van de cartografische interface te kunnen gebruiken, is er een prototype Flash bestand aangemaakt. In de symbolenbibliotheek van dit bestand bevinden zich al een aantal elementen, die standaard nodig zijn:

         De stations en vliegvelden, om op te klikken;

         De elementen, om visualisatie van een reis mee te kunnen verzorgen;

         Een balkje, om aan te geven hoe ver het filmpje met inladen is.

Na het afronden van een detailkaart moet elke kaart binnen de interface opgenomen worden, zodat de gebiedsuitsnede binnen de interface beschikbaar komt.

Voor elke detailkaart is een achtergrond gekozen met bijpassende afbeelding. Zonder achtergronden is de interface vrij klein in omvang, met elke foto extra komt daar een fors bedrag bij. Om dit te omzeilen zijn alle foto’s binnen PhotoShop bewerkt. Ook is het mogelijk om binnen Flash aan te geven dat rasterafbeeldingen meer gecomprimeerd moeten worden. Met uitproberen is hiermee de verhouding tussen kwaliteit en grootte geoptimaliseerd. Zodoende is de grootte van het Flash bestand redelijk beperkt gehouden.

Kleur- en symboolontwerp

Zoals al eerder gesteld is in § Productiewijze, is het belangrijk voor een fietser om het reliëf terug te kunnen vinden op de kaarten. Hier is een traditionele hoogtekleurenschaal voor gebruikt. Lage gebieden zijn groen, met een verloop via bruin naar wit voor de hoogste gebieden. Er worden geen absolute hoogtes vermeld, alleen relatieve hoogtes kunnen afgelezen worden, zodat een gebruiker zich wel gemakkelijk een voorstelling kan maken over het soort gebied waar hij doorheen reist.

 

De meetschaal voor de lijninformatie is nominaal, aangezien de lijnen wel onderling verschillend zijn, maar de ene lijn is niet beter of meer dan de andere lijn. Er is gekozen voor de expressievorm kleur en grootte, om onderscheid mogelijk te maken.

         Landsgrenzen. De landsgrenzen zijn dun en gestippeld. Ze mogen niet al te opvallend voorkomen, door de gekozen kleur worden ze als het ware naar achter gedrukt;

         Spoorlijnen. Er is gekozen om deze met een traditioneel blokjes patroon op de lijn uit te voeren. Verder zijn de spoorlijnen met kleur onderverdeeld in een aantal klassen: er zijn rode, blauwe en paarse lijnen. De rode en blauwe lijnen zijn gekozen om associatie op te wekken met een snelle trein (rood, voor interregionaal verkeer) en een trein die langzamer rijdt (blauw, voor regionaal verkeer). Spoor waar alleen hoge snelheidstreinen van gebruik maken is uitgevoerd in paars met lange strepen erop. Deze lijnen mogen niet al te veel opvallen, aangezien hier geen fietsvervoer mee mogelijk is;

         Fietsroutes. De lijnen van de fietsroutes zijn dunner uitgevoerd dan de spoorlijnen. Ze lopen ook onder de spoorlijnen door. De groene kleur geeft het landelijke en het buitenleven aan dat bij de fietsroutes hoort.

 

Ook de meetschaal voor de puntinformatie is nominaal. De expressievorm grootte is gekozen om selectie van stations mogelijk te maken.

         Stations. De stations waar grotendeels interregionale treinen vandaan vertrekken zijn rood gemaakt. De stations met meestal regionale treinen, zijn wit uitgevoerd. Ook is hierbij onderscheid in grootte van de twee symbolen gemaakt.
Deze stations zijn aanklikbaar. Ze worden groter als je er met de muisaanwijzer overheen gaat, zodat het duidelijk is welk station er op dat moment aangewezen wordt en gekozen kan worden.
Stations die niet gebruikt kunnen worden als vertrek- of aankomststation zijn niet aanklikbaar gemaakt. Deze stations zijn wit en kleiner dan de andere stations uitgevoerd. De symbolen worden ook niet groter als je er met de muisaanwijzer overheen gaat.

         Vliegvelden. Hiervoor is een symbool met een vliegtuigje erop ontworpen. De symbolen zijn blauw en wolkachtig uitgevoerd, zodat er een associatie met vervoer door de lucht wordt opgewekt.

Presenteren van gegevens

Het systeem moet reisinformatie overzichtelijk kunnen presenteren. Hiervoor wordt vanuit de cartografische interface de communicatiemodule aangesproken: het ophalen van gegevens gebeurt aan de hand van parameters; Deze worden meegestuurd naar een internetpagina. Dit proces is verder beschreven in § 4.4 en verder.

 

Figuur 7 Net als in een papieren spoorboekje wordt er een verspringing in de presentatie van de treintijden gerealiseerd als er overgestapt moet worden

De informatie wordt door deze internetpagina gestructureerd opgebouwd en vervolgens aangeboden aan de cartografische interface. Binnen de cartografische interface wordt alle informatie in één keer ingelezen om deze te presenteren.

Elementen uit de symbolenbibliotheek die het presenteren verzorgen, worden aan de hand van de ingelezen informatie geplaatst. Elementen die in de bibliotheek zijn opgenomen zijn bijvoorbeeld een tekstveld voor de stationsnaam en een tekstveld voor de aankomst- of vertrektijd.

         De trajecten van een reis worden zo weergegeven dat het voor een gebruiker duidelijk is, of hij moet overstappen of kan blijven zitten bij een stop op een station. Net als in een papieren spoorboekje wordt er een verspringing in de presentatie van de treintijden gerealiseerd als er overgestapt moet worden.
De aankomsttijd en de vertrektijd op een station zijn dan ongelijk. Op dat moment wordt er een verspringing gerealiseerd. Als het alleen een tussenstop op een station betreft, zijn de aankomsttijd en vertrektijd op een station binnen de gegevensopslag gelijk gehouden. Dan wordt er ook geen verspringing gerealiseerd.

         Of eerder- en later-knoppen geplaatst worden, hangt er van af of er een eerdere of respectievelijk een latere reismogelijkheid is. Hiervoor is het handig dat alle informatie in één keer is ingelezen, aangezien er zo bepaald kan worden of er meerdere reismogelijkheden bij een verbinding horen.

         Binnen de gegevensmodule is een schuifbalk aanwezig. Bij het plaatsen wordt bekeken of alle informatie in één keer binnen de module past. Past het niet, dan wordt de schuifbalk geactiveerd en getoond. Elementen zoals een schuifbalk moeten zelf gemaakt worden binnen Flash.

         Als een reis boekbaar is, regelt de gegevensmodule dat er een knop verschijnt, waarmee de gebruiker de boekingsmodule kan activeren. Aan deze module worden dan de reisgegevens, die op dat moment binnen de gegevensmodule aanwezig zijn, doorgegeven.

         De gegevensmodule levert ook de gegevens aan voor de printmodule. Meer hierover bij ‘Printen’.

Printen

Naast de presentatie op het scherm is er een voor de gebruiker verborgen deel van de interface, waar de reisinformatie en de kaart ook geplaatst worden. Hiervoor wordt de kaart nog een keer apart geladen. Er kan zodoende een extra kaart worden gemaakt, die speciaal voor het afdrukken voorbereid is. De beeldschermkaarten leveren op een gewone inkjetprinter echter een goed leesbaar resultaat, aangezien ze opgebouwd zijn uit vectoren. In die hoedanigheid worden ze ook naar de printer gestuurd. Er is daarom besloten geen extra kaarten te maken voor de printmodule.

Als er afgedrukt wordt, worden de reisinformatie, de kaart en een legenda naar de printer gestuurd.

Boekingsmodule

Een eenmaal opgezochte reis moet boekbaar zijn bij een externe organisatie.

 

Figuur 8 Een eenmaal opgezochte reis moet boekbaar zijn bij een externe organisatie

Hiervoor zijn twee soorten informatie benodigd:

1.      De reisinformatie, deze is reeds beschikbaar binnen het systeem. Deze informatie wordt overgestuurd vanuit de gegevensmodule naar de boekingsmodule;

2.      Informatie over de gebruiker die de reis wil boeken, deze is nog niet beschikbaar binnen het systeem.

Om deze gegevens beschikbaar te krijgen is een formulier opgebouwd, met invoervelden. De eisen, van welke persoonlijke informatie gevraagd moet worden, komen bij de externe organisatie vandaan, namelijk bij de treinreiswinkel.nl.

Flash biedt een aantal standaard invoervelden aan, die gebruikt kunnen worden om een formulier op te bouwen. Vervolgens wordt er een stukje ActionScript aangeroepen wat valideert of alle gegevens ingevoerd zijn.

Na validatie wordt deze informatie per e-mail opgestuurd aan zowel de treinreiswinkel en Carto Studio, als mede aan de klant die de boeking geplaatst heeft. Aangezien Flash zelf geen mogelijkheid heeft om e-mail te versturen, wordt de informatie aangeboden aan de communicatiemodule. Deze verzorgt vervolgens de verzending van de gegevens. Dit is beschreven in § Versturen e-mail.

Helpscherm

Het helpscherm kan overal in het systeem geraadpleegd worden. Hier bevindt zich algemene helpinformatie, over hoe het systeem gebruikt moet worden.

Bij het aanvragen van het helpscherm wordt er in het geheugen opgeslagen war de gebruiker zich op dat moment bevindt. Als een gebruiker vervolgens de terugknop indrukt op het helpscherm, gaat de gebruiker terug naar de plaats die opgeslagen is.

Om de sfeer van reizen met de trein op te roepen is er binnen het helpscherm een treinklok ingebouwd.

Op reis

Geo-informatie bestaat uit meer dan alleen kaarten; Om helemaal in de sfeer te komen is er een fictieve treinreis door Zwitserland vervaardigd. Hiervoor zijn een aantal foto’s van berglandschappen en getekende landschapselementen verwerkt in een filmpje.

Over het kaartje van Zwitserland gaat op een geven momentje een treintje rijden, als hier op geklikt wordt, wordt het filmpje getoond.

Iets gelijks is ook ontwikkeld voor het vliegverkeer. Als er eenmaal een vliegveld is aangeklikt, gaan er een aantal vliegtuigjes vliegen boven de kaart.

Fietsboekjes promo

Er is binnen de cartografische interface een banner aangebracht die verwijst naar de website van de fietsrouteboekjes, die door Carto Studio worden uitgegeven. Binnen deze banner kunnen andere fietsrouteplanners met reclame voor hun routes worden opgenomen.

4.4      Communicatiemodule

De gegevens uit de gegevensopslag kunnen technisch gezien niet rechtstreeks binnen de cartografische interface gehaald worden: hiervoor wordt gewerkt met een communicatiemodule tussen de cartografische interface en de gegevensopslag.

Het opvragen van informatie verloopt iedere keer in drie stappen:

1.      Er wordt een aanvraag gedaan vanuit de cartografische interface. Hierbij wordt er informatie meegestuurd, waarmee de gewenste informatie opgevraagd kan worden;

2.      Het daadwerkelijke ophalen van gegevens uit de database aan de hand van de informatie die in stap één is meegestuurd;

3.      Het formatteren van de opgehaalde data in een generiek formaat en terugsturen naar de cartografische interface, waar de gegevens vervolgens worden ingelezen.

Opvragen welke verbindingen er bij een station horen

De cartografische interface heeft een relatie met de dataopslag. De relatie tussen deze twee componenten is gebaseerd op het voor komen van een afkorting van de knooppunten in beide, zowel in de interface, als in de dataopslag.

Bij de aanvraag worden twee parameters meegestuurd, namelijk het zoomlevel (regionaal of interregionaal vervoer) van de kaart en de afkorting van het station waar verbindingen van worden opgevraagd. Hiervoor wordt gewerkt met een vijfletterige afkorting die uniek is voor elk station.

De ingekomen informatie uit de interface wordt door de communicatiemodule omgevormd tot een vraag aan de database. De module bestaat uit een aantal ASP-scripts, die de aanvraag vanuit de cartografische interface vertalen naar een vraag in een bevragingstaal voor databases, SQL. SQL staat voor Structured Query Language.

In de database is deze bevraging opgeslagen. Deze bevraging werkt met de twee parameters. De bevraging geeft na uitvoeren een lijst terug met de gevraagde gegevens uit de database.

Met de gegevens uit de database wordt door de module een generiek tekstformaat gegenereerd, wat makkelijk binnen Flash is in te lezen. Dit generieke formaat heet XML wat staat voor Extensible Markup Language. Dit is een simpele en zeer flexibele manier om binnen een tekstdocument structuur aan te brengen die de informatie, die zich in het document bevindt, beschrijft.

De structuur op zichzelf, kan ook worden beschreven, zodat er gevalideerd kan worden of een XML document goed is opgebouwd en juiste informatie bevat. Het bestand waar de definitie van deze structuur in vastgelegd is, heet een DTD, een Document Type Definition.

Een voorbeeld van de XML en van de definities die voor de cyclingtransport.com website gemaakt zijn, zijn te vinden op pagina i van de bijlagen.

Om een XML-document op te bouwen of in te lezen kun je kiezen uit twee methoden: de DOM-methode en de SAX-methode. DOM staat voor Document Object Model en SAX voor Simple API (Advanced Programming Interface) for XML.
Het verschil tussen de twee is de manier van het afhandelen van de opbouw van het document; Bij gebruik van de DOM-methode wordt alle informatie in één keer achter elkaar geplakt en dan pas weggestuurd. Bij SAX gebeurt dit stukje voor stukje, in een stroom.

SAX wordt gebruikt als de documenten groot worden en niet in één keer kunnen worden ingelezen, omdat dit te veel van de computer vraagt. DOM daarentegen biedt in één keer toegang tot alle delen van het document.

Omdat de hoeveelheid informatie die overgedragen wordt klein is en er goede ondersteuning voor aanwezig is binnen Flash en ASP, is er gekozen voor de DOM-methode.

Opvragen mogelijke reizen bij een verbinding

Het proces is voor het opvragen van de detailinformatie over een verbinding grotendeels gelijk aan het hierboven beschreven proces voor het ophalen van verbindingen bij een station.

Echter worden nu verbindingsdetails opgevraagd aan de hand van het unieke nummer van de verbinding. Dit is bij de eerste bevraging, van welke verbindingen er bij een station horen, binnen de interface beschikbaar gekomen. Dit identificatienummer wordt als enige parameter naar de communicatiemodule gestuurd.

Verder zijn de stappen die worden uitgevoerd gelijk aan de stappen hierboven.

Versturen e-mail

Voor versturen van e-mail is het proces iets verschillend van de hierboven beschreven manier, aangezien hier meer informatie verstuurd moet worden. Om deze informatie gestructureerd over te sturen naar de communicatiemodule, is besloten om de cartografische interface XML te laten genereren over de boeking. Deze XML wordt naar de communicatiemodule gestuurd.

Hier wordt de XML ingelezen. Met een standaard oplossing kan deze informatie omgeschreven worden naar een ander tekstformaat. Deze standaardoplossing heet XSL, eXtensible Stylesheet Language. Hiermee wordt de binnengekomen XML over de boeking omgeschreven naar een tekst voor in de e-mail. Deze e-mail wordt vervolgens verstuurd naar Carto Studio, de klant en de treinreiswinkel. Zie ook bijlage A, pagina i.

4.5      Gegevensopslag

Het ERD-diagram wat gemaakt is (zie pagina 16), is voor de gegevensopslag omgezet naar een relationele implementatie. Hier wordt een beschrijving gegeven van de tabellen en de relaties tussen de verschillende tabellen. Ook de opgeslagen bevragingen worden behandeld, evenals het vullen van de database.

Opbouw van de gegevensopslag

 

Figuur 9 Het relationele gegevensmodel

De tabellen in de gegevensopslag zijn als volgt opgebouwd:

 

Van een knooppunt is in de tabel junction opgeslagen:

         junction_id: uniek id, autonummering, primaire sleutel

         name: de stationsnaam, tekst (maximaal 255 karakters), uniek

         abbr_name: een stationsafkorting, bestaande uit maximaal de eerste vijf karakters van de stationsnaam, tekst (5), uniek

 

In de tabel route is van een traject opgeslagen:

         route_id: uniek id, autonummering, primaire sleutel

         start_junction_id: begin station, verwijzing naar de tabel met knooppunten

         end_junction_id: eindstation, verwijzing naar de tabel met knooppunten

         depart_time: vertrektijd, tijd

         arrival_time: aankomsttijd, tijd

         day_transition: dagovergang, ja-nee

 

Er is een koppeltabel opgenomen om een relatie te leggen tussen de trajecten en de treinreizen. Dit is de tabel trip_route:

         trip_route_id: uniek id, autonummering, primaire sleutel

         trip_id: reis id, verwijzing naar een reis in de tabel trip

         route_id: traject id, verwijzing naar een traject in de tabel route

         order: volgnummer, numeriek

         remark: opmerking, tekst (40)

 

Van een treinreis is in de tabel trip opgeslagen:

         trip_id: uniek id, autonummering, primaire sleutel

         connection_id: verbinding id, verwijzing naar tabel verbinding

         trip_order: volgnummer, numeriek

         begin_valid_date: begin geldigheid, datum

         end_valid_date: eind geldigheid, datum

         valid_on_which_days: geldig op welke dagen, tekst (50)

 

Van een verbinding is opgeslagen, in de tabel connection:

         connection_id: uniek id, autonummering, primaire sleutel

         name: naam, tekst, uniek

         zoomlevel: zoomlevel, verwijzing naar een zoomlevel in de tabel zoomlevel

         admin_id: beheerder id, verwijzing naar een beheerder in de tabel admin

         treinreiswinkel: boekbaar bij de treinreiswinkel, ja-nee

 

Zoomlevels bevinden zich in de tabel zoomlevel:

         zoomlevel: zoomlevel, numeriek, primaire sleutel

 

Van een beheerder is in de tabel admin opgeslagen:

         admin_id: uniek id, autonummering, primaire sleutel

         login_name: login naam, tekst (50), uniek

         login_pass: paswoord om mee in te loggen, tekst (50)

         name: naam, tekst (50)

Bevragingen in de database

Voor de gegevensmodule zijn twee bevragingen opgenomen in de database. Met deze bevragingen worden de relaties in de database benut, om de gevraagde informatie op te halen. De cursieve delen zijn de parameters die door de cartografische interface geleverd worden.

 

Voor het ophalen van de verschillende verbindingen bij een knooppunt op een specifiek zoomlevel is de bevraging SelectConnectionByJunctionZoomlevelAndAbbr samengesteld:

 

SELECT DISTINCTROW connection.connection_id, connection.name FROM zoomlevel

INNER JOIN (( [connection]
INNER JOIN trip ON connection.connection_id = trip.connection_id)
INNER JOIN (( junction
INNER JOIN (route
INNER JOIN junction AS junction_1 ON route.end_junction_id = junction_1.junction_id) ON junction.junction_id = route.start_junction_id)
INNER JOIN trip_route ON route.route_id = trip_route.route_id) ON trip.trip_id = trip_route.trip_id) ON zoomlevel.zoomlevel = connection.zoomlevel

WHERE (

( zoomlevel.zoomlevel = [Z])
AND
((junction.abbr_name = [ABBR] OR junction_1.abbr_name = [ABBR] ))

)

ORDER BY connection.name;

 

Het ophalen van de details over een reis wordt verzorgd door de SelectTripsByConnectionID bevraging:

 

SELECT DISTINCTROW trip.trip_id, trip.begin_valid_date, trip.end_valid_end, trip.valid_on_which_days, trip.trip_order, connection.treinreiswinkel FROM ([connection]

INNER JOIN trip ON connection.connection_id = trip.connection_id)
INNER JOIN (route
INNER JOIN trip_route ON route.route_id = trip_route.route_id) ON trip.trip_id = trip_route.trip_id

WHERE (((trip.connection_id)= [ID]))
ORDER BY trip.trip_order;

Initiële informatie in de database

De basis voor alle reisinformatie in het systeem is een lijst met stations. Om niet alle stations handmatig in te hoeven voeren, is deze lijst gegenereerd door alle stationsnamen uit de Europese spoorkaart te selecteren en deze in te lezen in Excel. Met behulp van de functie ‘deel’, waarmee een deel van een tekenreeks kan worden gehaald, zijn de afkortingen gegenereerd. Deze combinaties van knooppuntnaam en knooppuntafkorting zijn vervolgens ingelezen in de gegevensopslag.

4.6      Uitwerking van de beheeromgeving

De beheeromgeving wordt gebruikt door Carto Studio en door derden om de reisinformatie in het systeem te wijzigen. Deze omgeving is afgeschermd voor ongewenst gebruik.

Afgrendelen informatie

Om informatie af te kunnen grendelen is het nodig om te weten of een gebruiker werkelijk de gebruiker is, waarvan hij eerder heeft aangegeven dat hij dat is. Het opvragen van de informatie op het web is echter zonder status; Men weet nooit of een gebruiker er het volgende moment nog zal zijn.

Om dit probleem op te lossen is een standaard techniek beschikbaar, namelijk sessie-management. Op de server wordt alle informatie bijgehouden, naar de client wordt een uniek identificerende tekenreeks teruggestuurd en daar bewaard. Bij alle acties die de client uitvoert, wordt deze unieke tekenreeks mee gestuurd. De informatie was op de server opgeslagen en is zodoende nog steeds beschikbaar.

Een teken voor geldigheid wordt pas op de server opgeslagen op het moment dat de gebruiker zich heeft weten te identificeren met zijn loginnaam en paswoord. Zodoende is de beheeromgeving afgeschermd en heeft niet iedereen toegang tot het aanbrengen van wijzigingen in de gegevens.

Geprogrammeerde modules

Er zijn voor de beheeromgeving een aantal modules geprogrammeerd in ASP:

         de database module, voor het afvuren van aanpassingen op de database;

         de form module, voor het opbouwen van de schermen die de eindgebruiker te zien krijgt;

         de eigenlijke beheer module, hierin is alle functionaliteit aanwezig om de aanpassingen te verzorgen in het systeem.

Database

Om rechtstreeks in de gegevensopslag te kunnen wijzigen is een databasemodule geprogrammeerd. Deze databasemodule neemt de wijziging aan in SQL, waarna de informatie rechtstreeks in de database gewijzigd wordt.

Elke bevraging of wijziging, geformuleerd in SQL, kan zo aan de database worden doorgegeven.

Formulieren

Met de form module kunnen de formulieren die de gebruiker te zien krijgt, makkelijk worden opgebouwd. Aangezien de beheeromgeving binnen een internetbrowser werkt, moet deze module besturingselementen voor het versturen van informatie genereren die binnen een internetbrowser gebruikelijk zijn.

Deze besturingselementen worden weergegeven aan de hand van zogenaamde tags. Een tag voor een knop, waarop ‘Opslaan’ staat, ziet er bijvoorbeeld als volgt uit:

 

<input type="submit" value="Opslaan" />

 

De module verzorgt het opbouwen van het formulier door het genereren van al deze tags, die tezamen de formulieren vormen. Een aantal voorbeelden zijn te vinden op pagina iv in de bijlage.

Toevoegen, wijzigen en verwijderen

De beheermodule verzorgt het toevoegen, wijzigen en verwijderen van informatie in de database.

Het genereren van een overzicht van de verbindingen, gebeurt aan de hand van de inlognaam van de gebruiker. Hiermee is namelijk ook het unieke identificatienummer van de beheerder in de gegevensopslag bekend. Hiermee kan er dus een lijst worden gegenereerd met verbindingen, die de beheerder mag en kan beheren.

Voor het wijzigen van de informatie zijn een aantal functies geschreven, die aangeroepen worden, nadat een formulier door een gebruiker is ingevuld. Een functie is een verzameling van handelingen binnen programmacode die achter elkaar worden uitgevoerd.

Alle functionaliteit die deze module behelst, is beschreven in de handleiding van de beheeromgeving. Zie verder in de bijlage, bladzijde iv.

5        Systeem overdragen aan Carto Studio

Nadat het systeem klaar bevonden is, is het geïnstalleerd op de webomgeving van Carto Studio. Hierna zijn een aantal acceptatietesten uitgevoerd. Er is getest of de kaarten de juiste informatie bevatten en correct werken; Ook is de snelheid van het systeem en de werking van de beheeromgeving onder de loep genomen. Als laatste is de technische informatie over het hele systeem overgedragen aan Carto Studio.

5.1       Installatie

Om het systeem makkelijker te kunnen ontwikkelen, is op een laptop een testomgeving ingericht. Nadat het systeem volledig was, is het overgebracht naar de webruimte van Carto Studio. Het systeem is in een speciale directory op de webserver bij de internetprovider geplaatst. De domeinnaam www.cyclingtransport.com is gelinkt aan de informatie uit deze directory. Daarnaast is de plaats, waar de database zich bevindt, afgegrendeld tegen rechtstreeks opvragen, zodat de database niet downloadbaar is en alleen door het systeem gebruikt kan worden.

5.2      Acceptatie

Nadat het systeem is geïnstalleerd, is het systeem aan Carto Studio overgedragen. Vervolgens zijn er een aantal acceptatietesten uitgevoerd.

Correctheid interface

Er is gebleken dat de knooppunten niet overal goed oplichtten of juist gelinkt waren met de gegevensopslag. Deze problemen zijn verholpen.
Hier en daar is nog een inhoudelijke aanpassing aan de kaart gepleegd. Zo is bijvoorbeeld het station Wenen op de hoofdkaart toegevoegd.

Snelheid van het systeem

Er is een test uitgevoerd of het ophalen van de informatie binnen de cartografische interface snel genoeg gaat. Dit is het geval, zodat hier geen aanpassingen nodig zijn.

Extra aanpassingen aan de beheeromgeving

De snelheid van de beheeromgeving liet in eerste instantie te wensen over. Bij het overzicht van verbindingen werden zoveel gegevens opgehaald, dat het systeem te lang op zich liet wachten voordat er een volgende actie uitgevoerd kon worden.

Dit is verholpen door niet na iedere handeling het hele overzicht met alle informatie erin te genereren, maar eerst een beknopt overzicht te tonen. Vanuit dit overzicht kan vervolgens een verbinding worden gekozen om te bewerken.

Technische informatie overdragen

Technische informatie over het systeem is overgedragen aan Carto Studio, zodat eventuele problemen in de toekomst makkelijk verholpen kunnen worden en er uitbreidingen en wijzigingen in het systeem kunnen worden aangebracht.

Conclusie

De doelstelling van de opdracht is om een website te maken voor fietsers uit Nederland en België, die zowel een betere ingang biedt tot het opvragen van vertrek- en aankomsttijden (van internationale treinen en van internationaal vliegverkeer, waarmee de fiets mag worden meegenomen), als één waarbij een goede cartografische interface centraal staat.

De cartografische informatie staat centraal en heeft een prominente plaats in de interface. Het systeem biedt de gebruiker een betere ingang tot het opvragen van vertrek- en aankomsttijden. Het is uniek voor een treinrouteplanner op het web om een kaart als ingang voor de bevraging te gebruiken. Daarnaast zegt het gebruik van het kaartmateriaal, met de gevisualiseerde route, meer over waar een gebruiker zich tijdens zijn reis zal bevinden, dan alleen een opsomming van een rijtje plaatsnamen met een tijd erbij.

Het beheer van de gegevens zal procedureel geregeld moeten worden. Als er genoeg enthousiaste vrijwilligers en genoeg geïnteresseerde partijen zijn, dan zal dit ook in de toekomst slagen. Dat de interesse er is, blijkt uit deelname van de Treinreiswinkel in het project. Het systeem biedt voor het beheer via de beheeromgeving in ieder geval de mogelijkheden.

Het resultaat van het project is een product geworden, dat gezien mag worden en waarmee het kunnen van Carto Studio aan klanten kan worden gedemonstreerd.

Kortom mag er geconcludeerd worden dat de doelstelling van het project gehaald is.

Gebruikte terminologie

API

Advanced Programming Interface, een voorgeschreven methode voor ontwikkelaars om aanvragen aan een applicatie of systeem te doen

ASP

Active Server Pages, implementatie van Microsoft om logica binnen internetpagina’s aan te kunnen brengen

DOM

Document Object Model, methode om informatie uit een XML document uit te lezen, waarbij het XML document in één keer in zijn geheel beschikbaar is

DTD

Document Type Definition, methode om een beschrijving te leveren van de vooraf gestelde eisen welke informatie er in een XML document aanwezig moet zijn

ERD

Entiteiten Relaties Diagram, grafische weergave van de opgeslagen entiteiten in een database en de relaties die deze met elkaar hebben

JScript

programmeertaal, waarbij de gemaakte programmatuur bij het uitvoeren wordt gevalideerd op correctheid en vervolgens wordt gecompileerd tot een werkend programma

SAX

Simple API for XML, methode om informatie uit een XML document uit te lezen, waarbij het XML document niet in één keer beschikbaar is, maar beetje voor beetje in een stroom beschikbaar komt

SQL

Structured Query Language, gestandaardiseerde bevragingstaal voor databases

VBScript

programmeertaal, waarbij de gemaakte programmatuur bij het uitvoeren wordt gevalideerd op correctheid en vervolgens wordt gecompileerd tot een werkend programma

XML

eXtensible Markup Language, taal waarmee op een flexibele manier gegevens beschreven kunnen worden. Deze manier maakt het mogelijk om de gegevens makkelijk op verschillende manieren te presenteren

XSL

eXtensible Stylesheet Language, taal om transformaties mee te beschrijven, hoe de gegevens die opgeslagen zijn in een XML-document er na transformatie qua opmaak uit moeten zien

Gebruikte literatuur en websites

Bowman, J.S., S.L. Emerson en M. Darnovsky, The practical SQL Handbook: using Structured Query Language, 1996.

Kraak, M.J. en A. Brown, Web Cartography: developments and prospects, Londen, 2001.

Poppe, E. en C. van Elzakker, ‘Kaartgebruik bij routeplanners’. Kartografisch Tijdschrift, 2002, nr. 3, p.45 – 49.

Schans, R. van der, GIS-kartografie: opbouw en gebruik van digitale landschapsmodellen en visualisatiemodellen, Bennekom, 1999.

 

www.bahn.de

www.htm.net

www.nedstat.nl, statistieken over gebruikers

www.ns.nl

www.ret.rotterdam.nl

www.topvandekop.nl



Bijlage A.        Informatieoverdracht

XML

XML die gegenereerd wordt bij het opvragen van een overzicht van de verbindingen bij een bepaald station. Als voorbeeld is het station Luik genomen, op het zoomlevel twee (detailkaart Parijs). Opgevraagd van: http://www.cartostudio.nl/cyclingtransport/junction.asp?abbr=liege&zoomlevel=2

 

<?xml version='1.0' encoding='ISO-8859-1' ?>
<!DOCTYPE junction SYSTEM 'junction.dtd'>
<junction zoomlevel="2" abbreviation="liege" stationname="Liege G.">

<connection id="105" name="A'dam - Luik - Clerv - Luxemb"/>
<connection id="16" name="A'dam - Luik - Dinant"/>
<connection id="110" name="Maastr - Luik - Namen -Lux"/>
<connection id="18" name="Paris - Mons - Maastricht"/>

</junction>

 

XML die gegenereerd wordt bij het opvragen van de reisinformatie behorende bij een bepaalde verbinding. De reisinformatie behoort bij de verbinding “A'dam - Luik - Clerv - Luxemb”. Opgevraagd van: http://www.cartostudio.nl/cyclingtransport/connection.asp?id=105

 

<?xml version='1.0' encoding='ISO-8859-1' ?>
<!DOCTYPE connection SYSTEM 'connection.dtd'>
<connection id="105">

<trip id="208" order="1" begin_valid_date="1-1-2003" end_valid_date="31-12-2003" valid_on_which_days="" treinreiswinkel="false">

<route daytranstion="false" remark="" order="1">

<begin station="Amsterdam" abbreviation="amste" time="9:27"/>
<end station="Maastricht" abbreviation="maast" time="12:04"/>

</route>

<route daytranstion="false" remark="" order="2">

<begin station="Maastricht" abbreviation="maast" time="12:10"/>

<end station="Liege G." abbreviation="liege" time="12:40"/>

</route>

<route daytranstion="false" remark="iedere 2 uur" order="3">

<begin station="Liege G." abbreviation="liege" time="13:18"/>

<end station="Clervaux (L)" abbreviation="clvx" time="14:53"/>

</route>

<route daytranstion="false" remark="" order="4">

<begin station="Clervaux (L)" abbreviation="clvx" time="14:53"/>

<end station="Luxembourg" abbreviation="luxem" time="15:45"/>

</route>

</trip>

</connection>

DTDs

Junction.dtd, beschrijving voor de XML die de informatie die bij een knooppunt hoort beschrijft:

 

<!ELEMENT junction (connection*)>

<!ATTLIST junction

    zoomlevel NMTOKEN #REQUIRED

    abbreviation NMTOKEN #REQUIRED

    stationname CDATA #REQUIRED>

<!ELEMENT connection EMPTY>

<!ATTLIST connection

    id ID #REQUIRED

    name CDATA #REQUIRED>

 

Connection.dtd, beschrijving voor de XML die de informatie die bij een knooppunt hoort beschrijft:

 

<!ELEMENT connection (trip+)>

<!ATTLIST connection

    id ID #REQUIRED>

<!ELEMENT trip (route+)>

<!ATTLIST trip

    id ID #REQUIRED

    order CDATA #REQUIRED

    begin_valid_date CDATA #REQUIRED

    end_valid_date CDATA #REQUIRED

    valid_on_which_days CDATA #IMPLIED

    treinreiswinkel ( true | false ) #REQUIRED>

<!ELEMENT route (begin, end)>

<!ATTLIST route

    daytransition ( true | false ) #REQUIRED

    remark CDATA #IMPLIED

    order CDATA #REQUIRED>

<!ELEMENT begin EMPTY>

<!ATTLIST begin

    station CDATA #REQUIRED

    abbreviation CDATA #REQUIRED

    time CDATA #REQUIRED>

<!ELEMENT end EMPTY>

<!ATTLIST end

    station CDATA #REQUIRED

    abbreviation CDATA #REQUIRED

    time CDATA #REQUIRED>

 

XSL

De informatie die wordt verzonden vanuit de cartografische interface wordt getransformeerd naar een gewoon tekstformaat met behulp van XSL.

 

<?xml version="1.0"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/">

Deze boekingsaanvraag is verzonden via http://www.cyclingtransport.com.

Voor meer informatie kunt u contact opnemen met CartoStudio op cyclingtransport@cartostudio.nl

 

Aanvraag:

==============================

 

Gegevens betreffende de reis:

 

<xsl:value-of select="boeking/reis/@van" />

<xsl:value-of select="boeking/reis/@naar" />

Op: <xsl:value-of select="boeking/reis/@datum" />

 

Voordeelurenkaart: <xsl:value-of select="boeking/reis/@voordeel" />

Railpluskaart: <xsl:value-of select="boeking/reis/@railplus" />

Klasse: <xsl:value-of select="boeking/reis/@klas" />

Aantal personen: <xsl:value-of select="boeking/reis/@nr"/>

 

Gegevens betreffende de persoon:

 

Geslacht: <xsl:value-of select="boeking/persoon/@geslacht"/>

Voorletters: <xsl:value-of select="boeking/persoon/@voorletters"/>

Naam: <xsl:value-of select="boeking/persoon/@naam"/>

Straat: <xsl:value-of select="boeking/persoon/@straat"/>

Huisnummer: <xsl:value-of select="boeking/persoon/@huisnummer"/>

Woonplaats: <xsl:value-of select="boeking/persoon/@woonplaats"/>

Telefoon (overdag): <xsl:value-of select="boeking/persoon/@teloverdag"/>

Telefoon (avond): <xsl:value-of select="boeking/persoon/@telavond"/>

Email: <xsl:value-of select="boeking/persoon/@email"/>

Leeftijd: <xsl:value-of select="boeking/persoon/@leeftijd"/>

 

Opmerkingen:

 

<xsl:value-of select="boeking/opmerkingen"/>

 

</xsl:template>

</xsl:stylesheet>

Bijlage B.        Programmacode voor het genereren van formulier-elementen

Functie voor het opbouwen van een zogenaamd tekst-invul-element, waar een gebruiker tekst kan invoeren:

<%

function text(displayname, sysname, size , value )

{

 

var cont = new String;

 

cont= '<tr><td>' + displayname + '</td><td><input type="text" name="' + sysname + '" value="' + value + '" size="' + size + '" /></td></tr>';

 

return cont;

 

}

%>

 

Functie voor het opbouwen van een datum-keuze-element, waar een datum ingevuld kan worden:

<%

function date_select(displayname, sysname, startyear, num_years , value )

{

if ( value != "" ) {

date      = new Date( value );

var day_val   = date.getDate();

var month_val = date.getMonth() + 1;

var year_val  = date.getFullYear();

} else {

var day_val = "";

var month_val = "";

var year_val = "";

}

 

var cont = new String;

var month_opt = new String;

var day_opt = new String;

var year_opt = new String;

var months = new Array;

months[1] = 'Jan';

months[2] = 'Feb';

months[3] = 'Mar';

months[4] = 'Apr';

months[5] = 'May';

months[6] = 'Jun';

months[7] = 'Jul';

months[8] = 'Aug';

months[9] = 'Sep';

months[10] = 'Oct';

months[11] = 'Nov';

months[12] = 'Dec';

 

for ( a in months) {

m_num = a;

m_name = months[a];

 

if (m_num == month_val) {

month_opt += "<option value='" + m_num + "' selected='selected'>" + m_name + "</option>";

} else {

month_opt += "<option value='" + m_num + "'>" + m_name + "</option>";

}

}

 

for ( d = 1; d < 32; d++ ) {

if ( d == day_val) {

day_opt += "<option selected='selected'>"+d+"</option>";

} else {

day_opt += "<option>"+d+"</option>";

}

}

 

if ( startyear > 0 ) {

for(y=0; y < num_years; y++){

rstyear = startyear + y;

if (rstyear == year_val) {

year_opt += "<option selected='selected'>" + rstyear + "</option>";

} else {

year_opt += "<option>" + rstyear + "</option>";

}

}

}

 

cont +='<tr><td> ' + displayname + '</td><td> <select name="' + sysname + '_day">' + day_opt + '</select> - <select name="' + sysname + '_month">' + month_opt + '</select> -';

 

if ( startyear > 0 ) {

cont +='<select name="' + sysname + '_year">' + year_opt + '</select> </td><tr>';

} else {

cont +='<input type="text" name="' + sysname + '_year" size="4"> </td></tr>';

}

return cont;

}

%>

Bijlage C.        Handleiding Beheeromgeving cyclingtransport.com

Dit deel van de handleiding is voor iedereen die met de beheeromgeving vertrek- en aankomsttijden van treinen wil wijzigen, van belang.

Algemeen

Wijzigingen vinden direct in de gegevensopslag plaats. Op de cyclingtransport.com website zijn de wijzigingen die worden aangebracht dan ook direct te volgen. Het kan hiervoor wel nodig zijn om de browser af te sluiten en opnieuw op te starten, vanwege het caching-mechanisme (het tijdelijk opslaan van reeds overgehaalde gegevens) van de browser.

Inloggen

Log in met de van Carto Studio verkregen inloggegevens. Let erop dat het paswoord hoofdlettergevoelig is; PASSW0RD is dus iets anders dan passw0rd. Mocht er door het systeem worden geconstateerd dat de gebruikersnaam / paswoord combinatie niet correct is wordt er een melding gegeven. Het is handig om te controleren of de toets ‘caps lock’ geactiveerd is.

Nadat er ingelogd is wordt er een overzicht getoond van de verbindingen, waarvan aangegeven is dat ze behoren bij de inlognaam waarmee er is ingelogd.

Uitloggen

Als alle beheerwerkzaamheden achter de rug zijn, is het gewenst om uit te loggen, zodat er niet ongewenst wijzigingen aan het systeem worden gepleegd. Dit kan door middel van de uitlogknop boven aan het beheerscherm. Ook kan de browser worden afgesloten, het systeem logt een ingelogde beheerder dan uit. Als laatste verloopt een beheersessie als er tien minuten geen acties worden uitgevoerd; Een beheerder zal dan opnieuw moeten inloggen.

De onderdelen van de beheeromgeving

De beheeromgeving is een opsomming van de verbindingen. Hiervan moet er één gekozen worden om te beheren. Dit kan door op ‘Beheer’, achter een verbinding, te klikken.
Om bij het overzicht terug te komen, klikt men boven in bij ‘Overzicht verbindingen’.

Als eenmaal een verbinding gekozen is om te beheren, wordt een één of twee getoond, respectievelijk wordt hier mee aangegeven of het een lange afstandsverbinding betreft, of dat de verbinding moet worden getoond bij de detailkaartjes.
Om te controleren of de informatie goed in het systeem is ingevoerd, is het dus van belang om het zoomlevel van een verbinding te weten.

Bij een verbinding worden één of meerdere reizen opgenomen. Deze treinreis bestaat vervolgens uit één of meerdere trajecten.

De volgorde van de reizen in de beheeromgeving komt overeen met de volgorde die getoond wordt op de cyclingtransport.com website (door middel van de eerder- en laterknoppen). Het is dus van belang om te zorgen dat de volgorde in de beheeromgeving klopt; Het is het meest logisch om de reizen van vroeg naar laat te sorteren.
Wellicht is het aanbieden van een reis met weinig overstappen als eerste en een met veel overstappen als laatste ook een logische mogelijkheid.

Trajecten worden onder elkaar getoond, in deze volgorde worden ze ook getoond op de cyclingtransport.com website.

Reizen beheren

Een reis behoort bij een verbinding en bestaat uit een aantal trajecten.

Toevoegen

In het eerste veld kunnen opmerkingen worden weergegeven. De datums van geldigheid kunnen zelf gebruikt worden om geldigheid van tijden in bij te houden. Deze worden (momenteel) niet door het systeem gebruikt om op te zoeken. Het geniet echter de voorkeur om ze wel correct in te vullen.

Wijzig treinreis

Opmerkingen over de reservering of op welke dagen er gereden wordt kunnen gewijzigd worden. Daarnaast kan de geldigheidsduur van de verbinding worden aangepast.

Verwijder treinreis

Het verwijderen van een treinreis is alleen mogelijk als er geen trajecten meer aan de treinreis zijn gekoppeld.

Omhoog en omlaag schuiven

Reizen worden in een bepaalde volgorde weergegeven. Deze volgorde kan worden gewijzigd met behulp van de omhoog- en omlaagknoppen. De reizen worden in de beheeromgeving van boven naar beneden weergegeven. Deze zullen op de cyclingtransport.com na elkaar worden weergegeven, met behulp van eerder- en later-knoppen in het vak rechtsonderin.

Trajecten beheren

Op de cyclingtransport.com website is er een verschil tussen het weergeven van een overstap-stop, of een normale stop op een knooppunt: bij overstappen wordt er een verspringing gerealiseerd in de treintijden. Bij een normale stop, waarbij er niet hoeft te worden overgestapt, wordt er, zonder inspringing, alleen de vertrektijd geplaatst van het knooppunt.

Dit wordt bereikt aan de hand van de aankomsttijd van het eerste traject en de vertrektijd van het tweede traject. Zijn deze twee gelijk, dan wordt er vanuit gegaan dat er geen verspringing noodzakelijk is (en het dus een normale stop betreft). Zijn deze twee ongelijk dan wordt er een verspringing geplaatst.

Toevoegen

Trajecten kunnen op twee manieren bij een reis worden opgenomen: er kan worden gekozen om een nieuw traject toe te voegen of om een bestaand traject bij een reis op te nemen. Hierdoor wordt hergebruik van trajectgegevens mogelijk.

Nieuw traject

Voor het toevoegen van een nieuw traject is het nodig dat de volgende informatie opgenomen wordt: opmerkingen, het vertrekstation en de vertrektijd, het aankomststation en de aankomsttijd en of er sprake is van een dagovergang. In het opmerkingen veld kan bijvoorbeeld worden opgenomen dat er tussen bepaalde stations qs moet worden of dat er een plaats gereserveerd moet worden.

Als er sprake is van de éne dag vertrekken en de volgende dag pas aankomen op het aankomststation, dan moet er een vinkje gezet worden in het dagovergang-vakje.

Ook kan het voorkomen dat er een nieuw traject wordt toegevoegd, maar dat dit al in het systeem bestaat. Er wordt dan een melding gegeven wat betreffende dubbele invoer; dan moet er voor gekozen worden om een bestaand traject te koppelen aan de reis.

Bestaand traject

Bij het koppelen van een bestaand traject aan een reis, moet er een keuze gemaakt worden uit de lijst met trajecten die al in het systeem zitten. Bij een bestaand traject kan een opmerking worden ingevoerd die voor een traject wordt weergegeven.

Wijzigen

Het is mogelijk om een bestaand traject te wijzigen, doe dit alleen als er zekerheid is over het feit dat dit traject niet bij andere reizen gebruikt wordt.

Verwijderen

Het is alleen mogelijk om een koppeling van een traject aan een reis te verwijderen uit het systeem. Definitief verwijderen van een traject is niet mogelijk; Zodoende wordt er een  opbouwen van trajectgegevens waarover een trein rijdt... Neemt weinig ruimte in, dus niet erg belangrijk.

Omhoog en omlaag schuiven

Trajecten worden in bepaalde volgorde getoond en opgehaald. De volgorde kan gewijzigd worden met behulp van de omhoog- en omlaag-knoppen.

 

Dit deel van de handleiding is alleen van belang voor medewerkers van Carto Studio, die beheerders, knooppunten en verbindingen willen beheren.

Beheerders beheren

Het gebruik van de beheeromgeving is alleen mogelijk door daartoe bevoegde personen. Deze personen worden beheerders genoemd. Het toevoegen, wijzigen en verwijderen van beheerders wordt hier beschreven.

Toevoegen

Voor het toevoegen van een beheerder zijn de volgende gegevens benodigd: naam, loginnaam en een paswoord. In het naamveld wordt de naam van de beheerder neergezet, eventueel samen met de naam van de organisatie waar de beheerder toe behoort. Loginnaam en paswoord zijn de gegevens die de beheerder later gaat gebruiken om in te loggen. De loginnaam wordt geconverteerd naar onderkast en moet uniek zijn in het systeem. Het paswoord daarentegen is hoofdlettergevoelig.

Zorg er voor dat de beheerder ook verbindingen krijgt toe gewezen. Anders wordt er een melding gegeven.

Wijzigen

Wijzig de benodigde velden: naam, loginnaam en paswoord. Als de loginnaam gewijzigd wordt, moet de beheerder dit natuurlijk te weten komen.

De verbindingen die aan deze beheerder zijn toegewezen blijven bestaan en blijven aan deze beheerder toegewezen. Voor het toewijzen van een verbinding aan een andere beheerder, zie het wijzigen van verbindingen.

Verwijderen

Er wordt om bevestiging gevraagd; Een beheerder kan niet worden verwijderd als er nog verbindingen aan deze beheerder zijn toegewezen. Dan zullen eerst de verbinding aan een andere beheerder moeten worden toegewezen.

Knooppunten beheren

De knooppunten in het systeem zorgen voor een verbinding van de kaart met de database. In beide komt namelijk de afkorting voor als unieke sleutel, om een koppeling te kunnen leggen. Let hier dus op bij het beheren van de knooppunten en het Flash filmpje van Cyclingtransport.com.

Toevoegen

Stationsnaam en stationsafkorting moeten ingevoerd worden. De stationsnaam en de stationsafkorting moeten beide uniek zijn (dus onafhankelijk van elkaar).

Wijzigen

Kies als eerste een knooppunt om te wijzigen en klik op volgende. Wijzig de knooppuntnaam en de knooppuntafkorting. Let er bij het wijzigen van de afkorting op dat deze nog wel overeenkomt met de bijbehorende knooppuntnaam in het Flash filmpje.

Verwijderen

Er wordt om bevestiging gevraagd. Een knooppunt kan niet worden verwijderd als het knooppunt nog gebruikt wordt in bepaalde trajecten. Zorg er dan eerst voor dat deze trajecten geen gebruik meer maken van dit knooppunt.

Verbindingen beheren

Toevoegen

Kies een logische naam voor de verbinding: veelal is er voor gekozen om de grote stations, en in ieder geval de begin- en eindstations te benoemen bij de verbinding. Bij een vliegverbinding is het handig om de naam vooraf te laten gaan door ‘Vliegen: ’, zodat het duidelijk is dat het om een vliegverbinding gaat.

Wijs aan een nieuwe verbinding ook de juiste beheerder toe, zodat deze verbinding bij de beheerder in de beheeromgeving verschijnt.

Wijzigen en verwijderen

Het beheren van verbindingen is alleen toegestaan aan iemand, die inlogt met het CartoStudio-account. De beheerder die hiermee inlogt krijgt alle verbindingen in het systeem te zien en kan deze ook wijzigen en verwijderen.

Het verwijderen van een verbinding is alleen mogelijk als er bij een verbinding geen reizen en trajecten meer gekoppeld zijn. Verwijder dus eerst alle koppelingen bij een verbinding verwijderd kan worden. Er wordt om bevestiging gevraagd bij het verwijderen.

Geldige HTML - Geldige CSS - Martijn Meijers - CCPL - 1999-2010