1. Einleitung / Motivation - Institut für Geodäsie und Geoinformation
Transcrição
1. Einleitung / Motivation - Institut für Geodäsie und Geoinformation
1. Einleitung / Motivation 1.1. Motivation seitens der Studenten 2. Ablauf /Phasen des Projektes 2 2 2 2.1. Seminarphase 2 2.2. Planungsphase 6 2.3. Durchführungsphase 7 2.3.1. Gruppe Daten 7 7 7 8 9 16 17 17 2.3.1.1. Allgemeines 2.3.1.2. Historisches 2.3.1.3. Übersicht über die Daten 2.3.1.4. Vorgehen bei der Bearbeitung 2.3.1.5. Ergebnisse 2.3.1.6. Resümee 2.3.1.7. Die Gruppenmitglieder und ihre Aufgabenfelder 2.3.2. Gruppe Navigation 2.3.2.1. Allgemeine Ziele, Gruppenzusammensetzung, Arbeitsaufteilung 2.3.2.2. Programmierung 2.3.2.3. Kantengewinnungsfunktion, Travelling-Salesman-Problem 2.3.2.4. Höhenprofil 2.3.2.5. GPS-Anbindung 2.3.3. Gruppe Technik 2.3.3.1. Aufgaben Gruppe Technik 2.3.3.2. Übersicht ArcIMS 2.3.3.3. Schnittstelle für Routenplanung 2.3.3.4. Anbindung der Webseite an den ArcIMS 2.3.3.5. Schlußbetrachtung 2.3.3.6. Zusammensetzung der Gruppe Technik 2.3.4. Gruppe Gestaltung 2.3.4.1. Allgemeines 2.3.4.2. Gruppenaufteilung 2.3.4.3. Durchführung 2.3.4.4. Resümee der Gruppe Gestaltung 3. Resümee 3.1. Resümee der Studenten 3.2. Persönliche Stellungnahme der Projektleiter 19 19 19 20 22 25 28 28 28 30 34 35 36 37 37 37 38 45 46 46 47 1 1. Einleitung / Motivation Im Wintersemester 2000/01 wurde im Studiengang Geodäsie im Rahmen der Vertiefungsveranstaltung des Faches Kartographie erstmalig ein Projekt angeboten, welches in Zusammenarbeit mit dem Lehrstuhl für Geoinformation durchgeführt werden sollte. Ziel des Projektes mit dem Titel „Multimediales Internetangebot ‚Freizeit und Kultur in Bonn‘ mit GPSAnbindung“ war es, einen Fahrradroutenplaner zu entwickeln, welcher über das Internet für die Allgemeinheit verfügbar gemacht werden sollte. Das Interesse, an diesem Projekt teilzunehmen, war sowohl seitens der Studenten als auch seitens der Professoren und wissenschaftlichen Mitarbeiter des IKG (Institut für Kartographie und Geoinformation) sehr groß. 1.2. Motivation seitens der Studenten In dieser Vertiefung wurde uns erstmalig in unserem Studienfach die Möglichkeit geboten, über einen längeren Zeitraum an einem Projekt teilzunehmen. Das besondere daran war, dass wir von der ersten Idee, über die Durchführung bis hin zur Dokumentation und Präsentation selbständig und zum großen Teil eigenverantwortlich unser Produkt „Fahrradroutenplaner“ gestalten konnten. Reizvoll war dabei, dass wir mit unserer eigenen Initiative großen Einfluß auf das Ergebnis nehmen konnten. Wir erhofften uns durch dieses Projekt Schlüsselqualifikationen, wie Teamfähigkeit oder Eigeninitiative, welche heutzutage auf dem Arbeitsmarkt besonders gefordert werden, erlangen zu können. Ein weiterer wichtiger Grund für unser Interesse war die Neugier auf das erst seit kurzem eingerichtete Fach der Geoinformation, welches einen neuen, zukunftsorientierten Zweig des Geodäsie-Studiums darstellt. In diesem Zusammenhang spielte auch die Aussicht auf die Arbeit mit modernen Medien wie dem Internet oder verschiedenen GIS-Systemen eine wichtige Rolle. Ein weiterer Anreiz bestand darin, dass es sich bei der Entwicklung des Fahrradroutenplaners um ein praxisorientiertes Projekt handelt, dessen Ergebnis auch im täglichen Leben für jedermann nützlich sein könnte. Ferner ist die behandelte Thematik der Freitzeitgestaltung in der unmittelbaren Umgebung für jeden interessant, und kann im Gegensatz zu vielen anderen Studieninhalten auch fachfremde Freunde und Bekannte ansprechen. Und Last but not Least überzeugte uns auch die große Motivation und Begeisterung, mit der die Initiatoren das Projekt angingen. 2. Ablauf / Phasen des Projektes 2.1 Seminarphase Am Anfang des Projektes stand eine ‚Seminarphase, welche dazu diente eine für das Projekt notwendige einheitliche Wissensgrundlage zu schaffen. Jede/r Student/in bereitete dabei ein bestimmtes Thema vor, dessen Kenntnis für die Durchführung des Projektes notwendig war, und referierte über die Ergebnisse in einem ca. 30-minütigen Vortrag, an den sich jeweils eine ca. 15-minütige Diskussion anschloss. Es folgt eine Aufstellung der jeweiligen Vortragsthemen mit einer kurzen Inhaltsübersicht und den Namen der Referenten und Betreuer: 1. Basisinformationen der Landesvermessung Landschaftsmodellierung in ATKIS Erfassungsstand in ATKIS Nutzung der ATKIS-Daten und Ausgabeproduktfamilie DTK 10 und ihr Inhalt Eignung dieser Daten für Routenplanung; Vergleich mit GDF-Datenformat Referent: Andreas Neuenhausen; Ansprechpartner: PD Dr.Schoppmeyer 2 2. Thematische Informationen Hintergrund für thematische Karten Bezugssysteme Homogenität von Basisinformationssystemen und Thema Datenbeschaffung (z.B. von der Stadt: Sehenswürdigkeiten, Fahrradwege) Referent: Thomas Krompholz; Ansprechpartner: PD Dr. Averdung 3. Digitale Geländemodelle Aufbau digitaler Geländemodelle TIN- und Gitterstrukturen Integration von Strukturinformationen (Rücken- und Muldenlinien, Aussparungen, singuläre Punkte) Nutzung für Präsentation und digitale Auswertung (z.B. Ableitung von Streckenhöhenprofilen) Referent: Georges Audry; Ansprechpartner: PD Dr. Schoppmeyer 4. Urheberrecht und Nutzungsrechte an Geodaten Was ist geschützt? (UrhG und EU-Datenbankrichtlinie) Wie erfolgt die Nutzungsgenehmigung? (Bundesland und länderübergreifend) Welche Kosten entstehen für die Nutzer? ATKIS-Vertriebskonzept Probleme bei der Benutzung der Daten im Internet Referent: Jens Stenger; Ansprechpartner: PD Dr. Schoppmeyer 5. Datenintegration mit Support-GIS Konzepte und Modelle von Support-GIS Schemagenerator Datenimport und -export Integration von DGM- und DTK-Daten Referentin: Annette Eicker; Ansprechpartner: PD Dr. Averdung 6. Verkehrsnetze in GIS Geometrisch-topologische Datenstrukturen Spezifische Attribute für die Routenplanung (Einbahnstraßen, Abbiegeverbote, Straßenbelag etc.) Amtliche Daten GDF (Verkehrsdaten zur Routenplanung) Geometrische Netze in Arc/Info Referent: Mathias Thelker; Ansprechpartner: Dr. Kolbe 7. Routen- und Tourenplanung Dijkstra-Algorithmus Travelling-Salesman-Problem Spezifische Anforderungen (Straßen- und Höhenprofil, 3 Fahrradwege) Systemfunktionen mit Arc/Info Referent: Thorsten Berka; Ansprechpartner: Dr. Kolbe 8. Kartographische Gestaltung: Einsatz multimedialer Variablen Semiotik Dynamik Farb- und Formwahrnehmung Schallereignisse Referent: Frank Weydert; Ansprechpartner: PD Dr. Averdung 9. Multimediale Kartographie Kognitive Aspekte: Wahrnehmung und mentale Modellbildung Erweiterung des kartographischen Variablen- und Zeichensystems Kommunikation und Interaktion Referentin: Alexandra Höfer; Ansprechpartner: PD Dr. Averdung 10. Bildschirmkarte Anforderungen Eigenschaften und Struktur einer Bildschirmkarte Kartographische Gestaltungsmittel Interaktionsmöglichkeiten Referent: Markus Kosbab; Ansprechpartner: PD Dr. Averdung 11. Arc/Map - Kartographische Möglichkeiten von Arc/Info Layer und Legenden Erzeugung von Symbolen und Signaturen Darstellung von Netzen Positionierung und Gestaltung von Schrift Erzeugung von Kartenobjekten aus Objekten der Geodatenbank Inwieweit ist Arc/Info - Arc/Map "objektorientiert"? Referentin: Ariane Middel; Ansprechpartner: Prof. Plümer 12. 3D-Darstellung räumlicher Daten 3D-Modellwelt DGM-Auflösung versus Texturqualität VRML für kartographische Darstellung Referent: Olaf Bromorzki; Ansprechpartner: PD Dr. Averdung 13. Internet-GIS Klassifizierung von Internet-GIS Technische Hintergründe von Internet-GIS Graphische Fähigkeiten von Java Internet Map Server (IMS) von Arc/Info 4 Referent: Ralf Müller; Ansprechpartner: Dr. Kolbe 14. Anfragesprachen für raumbezogene Daten SQL Raumbezogene Erweiterungen von SQL Graphische Unterstützung zur Formulierung von Anfragen Möglichkeiten und Grenzen von Arc/Info & Internet Map Server Referent: Sascha Rudolph; Ansprechpartner: Dr. Kolbe 15. Arc/Info: Geodatabase Geodatabase, Coverages, Shape-Files Das Datenbankkonzept von Arc/Info 8 Objektorientierung: Objekte, Domänen und Subtypen, Integrität, Methoden Spatial Database Engine (SDE) Grid: Zugriffspfad für räumliche Objekte Referent: Enrico Kurtenbach; Ansprechpartner: Prof. Plümer 16. Interaktive Karten im Internet - Technische Infrastruktur (2 Vorträge) Client-Server-Prinzip Grundlagen Web-Server Kopplung Web-Server - Map-Server - Datenbank IIS - IMS - MapObject - SDE - RDBMS Referenten: Christoph Schaefer, Markus Tondorf; Ansprechpartner: Dr. Kolbe 17. Web-Design und Multimedia im WWW HTML, XML Java, Flash und Plug-Ins Autorensysteme, Gestaltungswerkzeuge Anwendung kartographischer Gestaltungsregeln ("Vom Musterblatt zum Styleguide") Probleme bzgl. Interoperabilität Referentin: Kathrin Haverkamp; Ansprechpartner: Dipl.-Ing. Kneuper 18. Kultur und Sport mit GPS Westentaschenformat (Low-Cost Pocket Version) Automatische Erzeugung von Wegmarken Austauschformate Probleme und Perspektiven Referent: Helmut Jansen; Ansprechpartner: Prof. Plümer 5 19. Mobile Geoprocessing / Bildschirmkarten für unterwegs Bildschirmkarte im WAP-Handy? GPS und Handy, GPS und PDA Aktuelle Systeme und Anwendungen Referent: Heiko Stumm; Ansprechpartner: Dr. Kolbe 20. Die Präsentation der Stadt Bonn im Internet Bonn als Lebensraum aus stadtgeographischer Sicht Klassifikation und Bewertung des Kultur- und Freizeitangebots Präsentation einer Kommune im Internet (Recherche, Vergleich) Defizite der vorhandenen Präsentation Bedarfsanalyse Wie bewertet man Erfolg, Nutzungsmuster und Zugriffspfade eines Internet-Angebots? Referent: Carsten Szidzik; Ansprechpartner: PD Dr. Averdung 21. Freizeitradler und Fahrradkarten Untersuchung verschiedener Radwanderführer; Systematisierung; Klassifizierung Unterschiede zu Autostraßenkarten Welche Rolle spielt die Karte in bezug auf den beschreibenden Text? Feststellung des praktischen Nutzens der angebotenen Karten und Informationen Was läßt sich wie auf das Internet-Angebot übertragen? (gemeinsam mit Vortrag 22) Referent: Boris Giesen; Ansprechpartner: Prof. Plümer, Dr. Kolbe 22. Bildschirmkarten im Internet - Eine kritische Bestandsaufnahme aus der Sicht des Radfahrers Recherche; Systematisierung und Klassifizierung Identifikation von Defiziten; Verbesserungsmöglichkeiten Qualität der Bildschirm- und Druckausgabe Was läßt sich wie auf das Internet-Angebot übertragen? (gemeinsam mit Vortrag 21) Referent: Dirk Schröder; Ansprechpartner: Prof. Plümer, Dr. Kolbe 2.2. Planungsphase Im Anschluß an die Seminarphase fand die Planungsphase statt. In dieser Phase wurde darüber diskutiert, inwieweit man das „Gehörte“ umsetzten konnte. Mehrere Lösungsvorschläge, die während der Seminarphase vorgestellt oder erarbeitet wurden, mußten verworfen werden, da sich bei einer näheren Betrachtungsweise viele Nachteile einstellten. Zu Beginn des Seminars gingen wir z.B. davon aus, daß zur Datentransformation das Programm „SupportGIS“, welches an der Universität Bonn entwickelt wurde, verwendet werden kann. Aber es stellte sich dann heraus, daß dieses noch in der Entwicklung befindliche Programm nicht in der Lage war die relativ großen Datenmengen einzulesen. 6 In erster Linie fiel auf, daß die einzelnen Themenkomplexe so umfangreich waren, daß man die Teilnehmer des Vertieferseminars in einzelne Gruppen aufteilen mußte, so daß man sich intensiver mit den jeweiligen Problemen auseinandersetzen konnte: 2.3.1. Gruppe: Daten 2.3.2. Gruppe: Navigation 2.3.3. Gruppe: Technik 2.3.4. Gruppe: Gestaltung Jede dieser Gruppen wählte einen Gruppensprecher, dessen Aufgabe darin bestand, im weiteren Verlauf des Projektes die Ergebnisse und Fortschritte der jeweiligen Gruppe vorzustellen. Desweiteren wurde je ein Schnittstellenbeauftragter bestimmt, der für die Kommunikation mit den anderen Gruppen zuständig sein sollte. 2.3. Durchführungsphase Mit der Durchführungsphase begann die eigentliche Arbeit der Gruppen an ihrem Aufgabenbereich. Da die Gruppen jedoch nicht isoliert zu betrachten waren, wurden in wöchentlichem Abstand Treffen der gesamten Projektgruppe und der Betreuer durchgeführt. Dies ermöglichte es jedem Teilnehmer einen Überblick über die Arbeit der anderen Gruppen und den Fortschritt des Gesamtprojektes zu erhalten. Außerdem wurden die weiteren Vorgehensweisen der verschiedenen Gruppen geklärt um insbesondere Überlappungen der Zuständigkeiten der einzelnen Gruppen zu verhindern. Im folgenden wird die Arbeit der einzelnen Gruppen vorgestellt: 2.3.1 Gruppe Daten 2.3.1.1. Allgemeines: Die Gruppe Daten war im Gesamtprojekt „Fahrradkarte der Stadt Bonn“ für die Sammlung und Aufbereitung aller nötigen Daten verantwortlich. Dabei wurde versucht, die Anfragen und Ansprüche der anderen Gruppen zu erfüllen. Die Daten wurden dabei in unterschiedlichsten Formen und Formaten angenommen und in das Gesamtprojekt eingebracht. Dabei wurden einerseits Kartenbilder an die Gruppe „Gestaltung“ abgegeben (Vektor und Raster) und andererseits eine Datenbank aufgebaut, die die nötigen Hintergrundinformationen für die Topographie liefert. Diese wurde von den Gruppen „Gestaltung“ und „Navigation“ benötigt. Die Aufbereitung der Daten sollte unter anderem mit dem Programm ArcInfo erfolgen. 2.3.1.2.Historisches: Die Gruppe Daten erlebte während der Planung und Durchführung des Projekts eine ständige Wandlung aufgrund von Veränderungen der Datenquellen und –formate. Aus diesem Grund ist es auch schwierig, einen optimalen vollständigen Ablauf unserer Tätigkeit darzustellen. Oftmals wurden Umwege beschritten, die im Nachhinein einfacher zu bewerkstelligen waren. Ursprünglich gab es Diskussionen über die Quelle der Hauptdaten. Dabei fiel die Wahl auf ATKISDaten des Landesvermessungsamtes, die im Gegensatz zu den gdf-Daten der Firma TeleAtlas nicht nur die reinen Verkehrswege erfaßten, sondern auch zusätzliche Topographie. Beide Formate konnten jedoch nicht ohne weiteres in unser GIS importiert werden. Eine weitere Diskussion gab es im Bereich des GIS, das wir benutzen wollten. Die Entscheidung fiel auf ArcInfo, zu dem wir entsprechende Konvertierungstools der Firma CITRA erhielten. Die zusätzlichen Daten über die Wege und Straßen sollten von der Stadt Bonn kommen. Nach einem Besuch im Stadthaus stellte sich jedoch heraus, daß die Stadt bereits ein eigenes GIS besitzt und wir dieses nutzen könnten. Als Konsequenz wurden die ATKIS-Daten verworfen und die Daten der Stadt Bonn unsere neue Grundlage. Diese mußten jedoch noch aus dem SICADFormat nach ArcInfo importiert werden, was relativ reibungslos funktionierte. Bei der Wahl der Rasterkarte kamen wir auf die topographische Karte des Landesvermessungsamtes in Form von digitalen Daten auf der TOP10-CD. Die Gruppe Daten war damit in der Lage, auf sicherer Basis mit der Planung einer Datenbank und 7 sonstiger Bearbeitung, wie unten beschrieben, zu beginnen. 2.3.1.3. Übersicht über die Daten: Für unser Projekt wurden verschiedene Arten von Daten benötigt. Im Einzelnen brauchten wir dafür: Kartenmaterial, digital im Vektorformat: Für die Darstellung der Fahrradkarte auf einer Internetseite wurde eine Karte von Bonn benötigt, die durch Anbindung an eine Datenbank die nötigen Informationen bot. Dafür war eine Vektorkarte erforderlich. Ursprünglich gab es zwei verschiedene Datenquellen bzw. –formate, die zur Diskussion standen: Geographic Data Files (gdf), die in Autonavigationssystemen zum Einsatz kommen. Dieses Format hat den Vorteil, daß das Verkehrssystem für eine Routenplanung optimal aufbereitet ist. Es gibt Abbiegespuren, Einbahnstraßen usw. Nachteilig wirkt sich aber die fehlende Topographie aus. Schließlich mußten unsere Daten Grundlage für eine Karte sein. ATKIS, das geographische Informationssystem des Landesvermessungsamtes, hingegen bietet alle topographischen Strukturen, die wir benötigten. Als kleiner Nachteil ergab sich die fehlende Struktur der Verkehrswege (wie bei gdf) und ein etwas komplizierter Aufbau der Daten. Beide Formate ließen sich jedoch nicht ohne weiteres mit ArcInfo bearbeiten, das seine eigenen Datenformate benutzt. Von der Firma CITRA wurde uns daher ein Konvertierungsprogramm zur Verfügung gestellt, mit dem sich ATKIS-Daten (für diese hatten wir uns entschieden) in ArcInfo shape-Files konvertieren ließen. Letztendlich kam dann aber doch ein ganz anderes Format zum Einsatz, auf das wir mehr überraschend bei Gesprächen mit der Stadt Bonn trafen. Dieses hatte den Vorteil, daß die räumlichen Daten schon mit diversen Attributen verbunden waren, wir also einen Bezug zu unserer Datenbank herstellen konnten. Die Daten der Stadt Bonn wurden aus einer Informix bzw. SICAD-Datenbank in shape-Files konvertiert und uns zur Verfügung gestellt. Kartenmaterial, digital als Rasterkarte: Da die Karte auch in vergrößerter Form dargestellt werden sollte, mußte sie auch bei großen Maßstäben immer noch erkennbar sein. Um dies zu gewährleisten, wurde das Gebiet ebenfalls durch eine Rasterkarte dargestellt, die auch zur Verfügung gestellt wurde. Als Quelle für Rasterdaten wurde die TOP10 (TK 1:10.000) CD des Landesvermessungsamtes gewählt. Informationen über Straßen und Wege: Um eine Route zu planen, sollten gewisse Faktoren der Straßenbeschaffenheit, Steigung, Umwelt usw. berücksichtigt werden. Die meisten Daten wurden uns durch die Stadt Bonn zur Verfügung gestellt. Informationen über sonstige, für den Radfahrer interessante topographische Gegebenheiten: Als weiteren Zusatz zu unserer Fahrradkarte sollte der Nutzer auch Informationen erhalten, die nicht direkt mit der Routenplanung zusammenhingen. Dazu gehörten Positionen und Daten zu Fahrradgeschäften, Sehenswürdigkeiten, öffentlichen Gebäuden usw. Auch diese Informationen wurden gesammelt und an die Topographie angebunden. Höhenraster des Gebietes: Um Steigungen der Route zu beachten, wurden Höhen des Gebietes benötigt. Diese erhielten wir über das digitale Geländemodell (DGM) des Landesvermessungsamtes, das uns ein Raster (10 m Abstand) von Höhen in einem ASCII-Format lieferte. 8 2.3.1.4. Vorgehen bei der Bearbeitung: Vektordaten: Wir erhielten die Vektordaten im "shape"-File-Format der Firma ESRI, so daß sich die Einbindung in das Programm ArcInfo problemlos gestaltete. Die Daten waren aufgeteilt in mehrere einzelne Files: 4 Files deckten das Bonner Stadtgebiet ab (Bonn, Beuel, Godesberg und Rhein-SiegUmgebung), 1 File stellte noch zusätzliche Kartensymbole für das ganze Gebiet zur Verfügung. Außerdem erhielten wir noch Flächendaten, Polygone, die eine bestimmte Nutzung angaben. Diese nutzten wir nur zur grafischen Darstellung der Karte. Alle shape-Files wurden zunächst mit der ArcInfo-Toolbox in das Linien-coverage-Format überführt, da nur dieses den Aufbau einer Topologie erlaubt. Hier traten bereits die ersten Probleme auf: Die "beuel"-Coverage enthielt ein Kante mit den Koordinaten (0/0), die das Erscheinungsbild natürlich massiv verzerrte. Nach längeren Irrwegen konnten wir diese Kante schließlich mit Hilfe von ArcView aus dem Datenbestand löschen. Auf der "bonn"-Coverage war nichts zu sehen, ArcInfo zeigte keine Geometrie an. Dieses Problem löste sich beim Aufbau der Topologie. Außerdem fehlten einige Kanten (Autobahnstück). Die "godesberg"-Coverage zeigt im Zentrum von Bad-Godesberg einen weißen Fleck. Hier ist die Aufnahme der Daten bei der Stadt Bonn noch nicht vollständig. Anzumerken ist noch, daß in diesen coverages nicht nur Straßen, sondern auch Gemeindegrenzen, Bahnlinien etc. gespeichert waren. Alle Daten besaßen bereits Gauß-Krüger-Koordinaten, waren jedoch nicht georeferenziert. ArcInfo konnte die Koordinaten nicht automatisch einem System zuordnen. Die "25" im Rechtswert wurde also als volle Koordinate angenommen und nicht als Angabe eines Meridianstreifens. Dies wurde manuell von uns über ein Tool eingegeben. Wir führten jetzt erst einmal die Topologie bei allen 4 Gebietsfiles getrennt ein, nicht zuletzt um die "verschwundene" Bonn-coverage sichtbar zu machen, was auch gelang. Unter normalen Umständen ließe sich dieser Schritt sparen. Anschließend führten wir alle coverages zu einer einzigen zusammen und erzeugten erneut eine Topologie über das gesamte Stadtgebiet. ArcInfo stellt zwei Befehle zur Verfügung, "build" und "clean", wobei "clean" eine Toleranzentfernung von Kanten anbietet. Wir wählten "clean" mit einer Fehlertoleranz von 0,1 m. Zwischenstand: In diesem Stadium der Bearbeitung lagen die Vektordaten mit "erster" Topologie (ohne Überführungsproblematik) georeferenziert vor. Die einzigen Attribute der Daten waren bisher nur ihre räumliche Struktur (Kanten mit Knoten). Inhaltliche Angaben, wie Straßenname, Steigung etc. waren noch nicht mit den Coverages verknüpft. Attributdaten: Von der Stadt Bonn erhielten wir allgemeine Daten wie Straßenname, Tempolimit (teilweise) usw. Die Daten waren in einer MS Access Datenbank gespeichert und über eine ObjektNr (Stadt Bonn intern), z.B. L10005_6 mit den räumlichen Daten, die in ihren Attributen diese Nummer ebenfalls enthielten, verbunden. Um unsere Karte mit weiteren Information zu füllen (Radwege) war die Beschaffung von weiteren externen Daten nötig. Während im Dezember 2000 noch unsicher war, ob Support-GIS, ArcInfo, SICAD oder doch Intergraphs Geomedia für unsere ATKIS-Daten der Stadt Bonn geeignet ist und welche Abgrenzung unser Arbeitsgebiet besitzt, wurde Kontakt mit dem Bund Deutscher Radfahrer (BDR), dem Allgemeiner Deutschen Fahrrad Club (ADFC) Sektion Bonn und der Bundesstadt Bonn aufgenommen. 9 Die zur Verfügung oder zum Kauf angebotenen Unterlagen unterschieden sich erheblich in Aktualität, Qualität und Quantität: BDR: Deutsche Rad-Tourenkarte Nr.26, 1: 100 000, Stand 2000 ADFC: Regionalkarte, 1: 75 000, Stand 2000 ADFC: Fahrradstadtplan, 1: 20 000, Stand 1998 Bundesstadt Bonn: Routenvorschläge, Stand 2000. Gleichzeitig wurde nach ähnlichen, schon verwirklichten und verfügbaren Projekten oder Informationssystemen recherchiert, Vergleichbares in Umfang und Ausführung aber nicht gefunden! Es entstand eine 20-seitige (100 KB) Klassifikation des Bonner Radwegenetzes nach der Befahrbarkeit: Verkehrsaufkommen, Beschaffenheit und Zustand. Um diese Daten zusammenzubringen, verwendeten wir zunächst die Funktionen von MS-Access. Durch diverse Abfragen ließen sich erst einmal die Objektnummern mit Straßennamen (Stadt Bonn) mit den Straßennamen und Radwegen (ADFC) verbinden. Dabei war zu beachten, daß die Straßennamen erst an die jeweilige Schreibweise angepaßt werden mußten. Dies geschah auch mehr oder weniger in Handarbeit und stellte uns vor Probleme: Hinsichtlich der Straßennamen lieferte die Datenbank der Stadt fehlerhafte und lückenhafte Daten, d.h., die gesuchte Straße war zwar geographisch in den Stadtdaten an der richtigen Stelle vorhanden, aber nicht jede Kante der Straße enthielt den gesuchten Straßennamen, sondern die Bezeichnung „nicht mehr vorhanden“. Zudem befanden sich vereinzelte Kanten willkürlich in dem Stadtgebiet verteilt, deren Straßennamen falsch waren. Wir erhielten also jetzt eine MS Access Datenbank in der folgenden Form: Stadt Bonn – Attributdaten: ObjektNr Straßenname ... L1002_23 Nußallee ... L2434_1 Endenicher Allee ... ... ADFC-Radweg – Attributdaten: Straßenname Radweg: Nussallee 12 Endenicher Allee 23 ... Attributdaten: ObjektNr Straßenname L1002_23 Nußallee L2434_1 Endenicher Allee ... Radweg: 12 23 ... ... ... Wir konnten jetzt jedem Objekt = jeder Kante ein Radweg-Attribut zuordnen (soweit vorhanden). Über die ObjektNr hatten die Daten einen Bezug zur Coverage der räumlichen Daten. Um die Steigung der Kanten zu gewinnen, mußte viel experimentiert und ausprobiert werden, und der letztendlich eingeschlagene Weg zeugt von der Benutzerfeindlichkeit ArcInfos in manchen Teilbereichen der Arbeiten. Um die Abfolge unserer Arbeit einzuhalten, wenden wir uns jetzt erst den Daten des DGM zu: Höhenraster: Datengrundlage bei der Erstellung des Digitalen Höhenmodells, das später zum Beispiel für die Berechnung der Steigungen der Straßen benötigt wurde, war das DGM 5, das uns vom Landesvermessungsamt zur Verfügung gestellt wurde. Hierbei handelt es sich um ein Höhenraster mit der Rasterbreite 10m, das in einer einfachen ASCII-Datei abgelegt ist. Die einzelnen Höhenpunkte sind in der Datei in der Form „Rechtswert ... Hochwert ... Höhe“ abgelegt. Die Sortierung erfolgte hierbei spaltenweise (aufsteigende Rechtswerte) und mit aufsteigenden Hochwerten. Man hat in ArcInfo die Möglichkeit, ein DGM aus einer ASCII-Datei einzulesen, das Datenformat unterscheidet sich allerdings von den zur Verfügung gestellten DGM-Daten. 10 Abbildung 1 DGM-Daten des LvermA Abbildung 2 Von ArcInfo benötigtes DGM-Format Die vom LVermA erhaltenen Daten mußten daher in ein ArcInfo-konformes Datenformat konvertiert werden. Eine weitere Schwierigkeit war, daß die DGM 5-Daten aus Kacheln mit einer Größe von 2 x 2 Km² bestehen. Neben einer Umsortierung der Höhendaten aus den *.ras-Dateien mußten diese auch in einer großen Eingabedatei zusammengefaßt werden. Dies geschah durch Implementierung eines kleinen C-Programms. Zu diesem Zeitpunkt erschien uns dieser Weg als der einfachste, da wir noch wenig Erfahrung mit ArcInfo hatten. Heute sind wir schlauer: ein Zusammenfassen mehrerer Einzelkacheln ist auch direkt mit ArcInfo möglich. Ein kleines Problem tauchte dennoch auf: Die letzte Kachel im Südosten unseres „Einsatzgebietes“ lag leider in Rheinland-Pfalz, so daß sie bei den Daten des LVermA NRW nicht mitgeliefert wurde. Wir halfen uns damit, in der fehlenden Kachel alle Höhen auf einen mittleren Wert von 50,00 m zu setzen, ohne dabei außer acht zu lassen, daß es bei der späteren Berechnung der Steigungen zu problematischen (weil unrealistischen) Werten kommen könnte. Dies nahmen wir aber in Kauf, da die Anzahl dieser Problemfälle verschwindend gering war. Nach der Konvertierung und Zusammenfassung der Einzelkacheln konnte das DGM in ArcInfo eingelesen werden, und stand somit als Datengrundlage für eine Weiterverarbeitung zur Verfügung. Nach Abschluß der Arbeiten am DGM konnte mit der Bearbeitung des Netzwerkes begonnen werden. Hierbei waren im einzelnen folgende Probleme zu lösen: Zum einen die Bestimmung der Steigung der einzelnen Kanten im Netzwerk und zum anderen die Berücksichtigung der Brücken, die bei der Erstellung der Topologie noch unberücksichtigt geblieben waren. Das Netzwerk der Straßen lag in einer Linien-Coverage vor. Hierbei sind die Kreuzungspunkte die Knoten und die Straßen sind Kanten des Netzwerks. Um die Steigung der Kanten bestimmen zu können, mußte man die Höhen der einzelnen Knoten kennen. Diese ließen sich aus dem DGM ableiten. Hierzu wurde in einem ersten Schritt aus der Linien-Coverage eine Punkt-Coverage erzeugt, die nur noch die Knotenpunkte des Netzwerks enthielt. Der hierzu verwendete Befehl lautet: NODEPOINT <in_cover> <out_cover>1 Aus der Punkt-Coverage ließen sich jetzt einfach unter Zuhilfenahme des DGM die Höhen der Punkte ermitteln und in einem neuen Attribut "Höhe" ablegen. Hierzu verwendeten wir die Funktion LATTICESPOT <in_lattice> <in_cover> {spot_item} {z_factor} Die Punkt-Coverage konnte jetzt mit ArcCatalog in eine vorher mit MS Access angelegte leere Datenbank exportiert (Export to Geodatabase) werden. Das gleiche geschah mit der Linien1 Ich führe hier die einzelnen Befehle auf, da die Suche nach den richtigen Funktionen recht mühsam war. Dies will ich dem interessierten Leser, der vor ähnliche Probleme gestellt ist, ersparen. Alle Befehle müssen im Kommando-Fenster manuell eingeben werden. Eine Menü-Steuerung ist nicht vorgesehen. 11 Coverage, die als Ausgangspunkt für die Ableitung der Höhen verwendet wurde. Mit MS Access konnten wir dann auf einfache Weise für die einzelnen Kanten, deren "Knoten-Höhe" wir bestimmt hatten, die Steigung berechnen. Ohne MS-Access, also ein externes Programm, wäre dies kaum möglich gewesen. Zwischenstand: Wir hatten jetzt räumliche Daten, Attributdaten mit ObjektID-Stadt Bonn und Attributdaten mit ObjektID-Arc Info: Coverage-Table FID: Object: 1 line 2 line ... Attributdaten: ObjektNr Straßenname L1002_23 Nußallee L2434_1 Endenicher Allee ... Radweg: 12 23 Length: 12,56 25,76 ObjektNr L1002_23 L2434_1 ... ... ... ... ... ... Steigungs-Attributdaten: FID: Steigung: 1 1,672 2 -0,567 ... ... ... ... Um die Daten nun endgültig zu verknüpfen, wurden die Datenbanken in ein dbase-Format konvertiert. Mit dem Programm ArcView ließen sich dann Tabellen und räumliche Daten verbinden. Dabei kam ein neuer shape-File mit den räumlichen Daten und deren Attributen heraus: Neuer shapeFile: FID: Object: 1 line 2 line ... Length: 12,56 25,76 ObjektNr L1002_23 L2434_1 Straßenname: Radweg: Nußallee 12 Endenicher Allee 23 Steigung: 1,672 -0,567 ... ... ... Ein shape-File hatte nun jedoch den Nachteil, daß keine Topologie vorlag, d.h., die ersten Schritte der Topologie-Erzeugung mußten wiederholt werden. Da wir in unserer Bearbeitung nicht alles so klar durchführen konnten, wie hier beschrieben, mußten wir die Vorgänge jedesmal wiederholen, wenn neue Attributdaten anzuhängen waren! Zwischenstand: Nach erneuter Topologieerzeugung hatten wir nun die Daten fast so, wie sie sein sollten. An allen Kanten hingen die nötigen Attribute und der räumliche Bezug war vorhanden. Die Topologie war vorhanden. Topologie-Verfeinerung: Ein Problem bei der Erzeugung der Topologie ergab sich naturgemäß bei Kreuzungen von Kanten, die in der Natur keine Kreuzungen, sondern Überführungen sind. An diesen Punkten kann man nicht, wie die einfache Topologie es vorgibt, "abbiegen". Um dieses Problems Herr zu werden, wurden alle Brücken gesucht und die entsprechenden Kanten bearbeitet. Uns war und ist jedoch nicht bekannt, ob bzw. wie man Kanten einer coverage verändern kann. Wichtig war auch, daß sich nicht nur das "Bild" ändert, sondern auch die Topologischen Daten und Attribute (Knoten Anfang, Ende, Länge) geändert werden. Aus diesem Grund wurde die coverage erst einmal in eine Geodatabase von ArcInfo importiert. Diese ließ sich dann bearbeiten. Ein weiterer Nebeneffekt zeigte sich darin, daß hier in der Datenbank die überflüssigen Gemeindegrenzen herausgefiltert werden konnten. Es befanden sich jetzt tatsächlich nur noch Straßen und Wege in unserem Netz. Glücklicherweise waren in dem fünften shape-File Brückensymbole verzeichnet. Die Aufgabe bestand nun darin, dieses shape-File über unsere "Datenbank"-coverage zu legen und die entsprechenden Kanten zu verändern. Das shape-File mit den Brückensymbolen diente nur zur Orientierungshilfe. Autobahnen und deren Zu- und Abfahrten sind im Vergleich mit dem interaktiven Stadtplan der Stadt Bonn lokalisiert worden. Die Änderung der Knoten-Kanten-Beziehungen in der Geodatabase erfolgte grafisch mit ArcMap. Der Editor wird gestartet aus der Symbolleiste Editor unter „Edit à Start Editing“. Nach Auswahl einer Kante werden im Attribut-Fenster der Name der Kante, die Attribute und deren Werte angegeben. Die Werte, z.B. #FNODE und #TNODE (Anfangs- und Endknoten) können nun per 12 Hand verändert werden. Das Verschmelzen mehrerer Kanten zu einer erfolgt mit der Funktion „merge“. Dabei ist aber zu beachten, daß die Attribute und Daten der im Attribut-Fenster oben stehenden Kante übernommen werden und die restlichen ausgewählten Kanten darunter samt Inhalte gelöscht werden, d.h., die Änderung von Anfangs- und Endknoten erfolgt nur an der in der Liste oben stehenden Kante (siehe Bilder: links: vor Verschmelzung, rechts: danach). Dagegen wird aber das Attribut „shape-length“ neu berechnet, (hier nicht mit aufgelistet). Abbildung 3: Situation vor der Bereinigung: Die Brücke besteht aus zwei Kanten. Abbildung 4: Situation nach der Bereinigung: Die Brücke besteht nun nur noch aus einer Kante. Ein Abbiegen ist auf der Brücke nicht mehr möglich. Die Speicherung der Editierung hatte zur Folge, daß in der Geodatabase einzelne Attribute ausgewählter Kanten verändert bzw. ganz gelöscht wurden. Dies alles geschah in mühsamer Handarbeit. Hier zeigte sich hier eines der größeren Probleme: Da sich durch die Brücken die Länge von Kanten verändert hat, müßte auch die Steigung neu gerechnet werden. Dies würde aber nur in Access funktionieren. Dann hätten wir aber wieder eine Tabelle/Datenbank, die wir an räumliche Daten heften müßten. Dies würde nur mit ArcView möglich sein, das unsere Topologie wieder zerstört, womit die Brücken wieder falsch dargestellt würden ... Es gab also gewissermaßen kein Zurück mehr. Die Änderung von Attributen war mit normalem Aufwand nicht möglich. Es ist aber durchaus möglich, daß ArcInfo in seinen tiefen Regionen noch irgendwo diverse Funktionen bereithält. Diese sind aber dann, wie vieles, gut versteckt. Da wir mittlerweile ein gewaltiges Arbeitspensum zu bewältigen hatten, ließen wir die Steigungsungenauigkeiten im Brückenbereich zu, ohne uns weitere Tage in das Problem zu vertiefen. Auch der Problematik von Einbahnstraßen haben wir uns aufgrund des Zweckes des Projekts (Fahrradkarte) nicht gewidmet. Nachdem wir die Topologie nun richtiggestellt hatten, wurden die coverages in die endgültige Geodatenbank importiert. Die weiteren Schritte werden später erläutert. Rasterdaten: Da die Gestaltungsgruppe im Bereich der großmaßstäbigen Karten mit Rasterdaten arbeiten wollte, war es nötig, entsprechende Daten zur Verfügung zu stellen: Neben den Vektordaten wurden uns vom Landesvermessungsamt NRW auch Rasterdaten zur Verfügung gestellt. Die Rasterdaten lagen in Form der CD-ROM „TOP 10 NRW/Südwest“ vor. Für Aufbereitung und Bildschirmdarstellung der Karten ist das patentrechtlich geschützte Verfahren GEOGRID® for Windows der Firma DORNIER GmbH eingesetzt worden. (Die Daten liegen nicht in einem gängigen Bildformat vor.) Um die Rasterdaten als Hintergrundinformationen in unserem Projekt verwenden zu können, mußten diese als gängiges Bildformat, wie GIF, TIFF, JPEG oder BMP vorliegen. 13 Dazu wurde aus der TOP 10 für den Bereich Bonn und Umgebung das Kartenbild „kachelweise“ mit mehreren Hundert Screenshots nach CorelDRAW exportiert. Abbildung 5: Rasterkartenausschnitt Hier konnten die einzelnen Screenshots pixelgenau aneinandergefügt werden, so daß schließlich ein komplettes Bild des uns interessierenden Bereiches entstand, welches im BMP Format abgespeichert werden konnte. Die Rasterkarte wurde als Hintergrundinformation benötigt, sie sollte im GIS hinterlegt werden. Dazu mußte das Bild einen räumlichen Bezug zu anderen (Vektor-) Daten haben, es mußte georeferenziert werden. Das Bild lag zunächst in Form von Rasterdaten vor, d.h., jede Rasterzelle hatte eine Bildkoordinate aus Zeilen- und Spaltennummern. Um das Bild zusammen mit shape-Files, die in Weltkoordinaten abgespeichert sind, anzuzeigen, benötigte man eine Transformationsvorschrift zur Umrechnung der Bildkoordinaten in Weltkoordinaten. Die Transformationsvorschrift wird dann üblicherweise mit dem Bild vorgehalten. Einige Bildformate, wie z.B. ERDAS, IMAGINE und GeoTIFF speichern die Georeferenzinformation im headerfile der Rasterbilddatei. Bei anderen Bildformaten, wie GIF, TIFF, JPEG oder BMP wird die Transformationsvorschrift in einer separaten ASCII-Datei abgelegt, welche als “world“-Datei bezeichnet wird, da sie die Umrechnung in Weltkoordinaten enthält. Die Bilddatei und der worldfile haben den gleichen Namen, der worldfile erhält ein “w“ am Ende der Kennung. Durch diese Konvention kann die Transformationsvorschrift dem Bild zugeordnet werden. Der worldfile wird jedesmal benutzt, wenn das Bild angezeigt wird, so daß eine georeferenzierte Darstellung möglich ist. Konkret enthält der worldfile Informationen über eine affine Transformation (6 Parameter Transformation). Der worldfile kann mit dem Arc/Info-Kommando REGISTER erzeugt werden. Beim Georeferenzieren sind wir folgendermaßen vorgegangen: Zunächst wurde das zu georeferenzierende Bild geladen (die BMP von Bonn und Umgebung), anschließend wurde ein bereits georeferenzierter shape-File geladen. Im nächsten Schritt mußten die Paßpunkte gesetzt werden, und zwar zuerst im Bild, dann im shape-File. Bei der Auswahl der Paßpunkte haben wir eine gleichmäßige Verteilung über das Bild angestrebt und nur solche Objekte gewählt, die relativ eindeutig zu identifizieren waren (Autobahnauffahrten und Straßenkreuzungen). Insgesamt haben wir etwa 15 Paßpunkte gesetzt. In einer Paßpunkttabelle werden die sich bei der Transformation ergebenden Standardabweichungen der Punkte angezeigt. Hier fiel uns auf, daß einige Punkte eine recht große Standardabweichung aufwi esen. Es bestand jedoch die Möglichkeit, die schlechten Paßpunkte auf „OFF“ zu setzen und die Transformation erneut zu bestimmen. Nach Akzeptanz der Standardabweichungen wurde der worldfile in das Verzeichnis des Bildes geschrieben. Die Rasterkarte konnte nun als Ganzes an die Gruppe Gestaltung abgegeben werden. 14 Interessante Punkte ("points of interest"): Da wir in unserer Karte nicht nur Wege und Straßen, sondern auch Sehenswürdigkeiten und Informationsmöglichkeiten darstellen wollten, war es auch nötig, Daten über diese Punkte zu sammeln. Einen großen Teil der Daten bekamen wir hier wiederum von der Stadt Bonn. Diese Daten hatten den großen Vorteil, daß die Punkte, obwohl sie in einer Access-Datenbank gespeichert, bereits koordiniert waren. Mit ArcView läßt sich eine dbase-Tabelle über Angabe der Koordinatenspalten in ein Punkt-shapeFile umwandeln. Nach der Transformation MS Access -> dbase erhielten wir nun also ein shapeFile, daß wir in eine coverage umwandelten und georeferenzierten. Da uns der Umfang der Daten nicht ausreichend erschien und wir die Daten um einige Attribute ergänzen wollten, gingen wir dazu über, eigene Informationen zu sammeln. Diese wurden dann mit den Daten der Stadt Bonn mit dem ATKIS-Katalog, TK 50 & TOP 50, allgemeinen und privaten (Generalanzeiger) Branchenverzeichnissen, VRS-Fahr- und Schiffahrtsplänen verglichen und gegebenenfalls ergänzt. Es entstand nun eine 30-seitige (120 KB starke) Datensammlung mit Adressen, Telefon-Nummern, Öffnungszeiten, Eintrittspreise über: - Info & Hilfe: Fahrradgeschäfte, Krankenhäuser, Notdienste, Bibliotheken, Zeitungen - Kulturelles: Kinos, Museen, Theater - Sehenswertes: Sehenswürdigkeiten, Aussichtspunkte, Grün- und Parkanlagen - Sport & Kinder: Bademöglichkeiten, KinderSpecials - Parkplätze und Verkehrsverbindungen von Deutscher Bahn AG, U- und S-Bahnen, Fährverbindungen und Schiffahrtslinien (Köln-Düsseldorfer, BonnerPersonenSchifffahrt, Siebengebirgslinie). Mit Access wurden die Stadtdaten erst ergänzt und dann noch einmal transformiert. Leider war es uns nicht so ohne weiteres möglich, zu den sonstigen Informationen Koordinaten zu erhalten. Es besteht zwar Hoffnung, daß die Stadt uns Koordinaten zu abgegeben Punkten zukommen läßt, doch scheint dies noch eine Weile in Anspruch zu nehmen. Letztendlich können wir jedoch mit einer großen Menge von Punkten, von Schulen, Behörden, Sehenswürdigkeiten bis hin zu Notfallzentren aufwarten. Alle Daten wurden schließlich in die Geodatenbank integriert. Aufbau der Geodatenbank: Zur letztendlichen Speicherung und Verwaltung aller Daten wurde eine Geodatenbank aufgebaut. Dieser letzte Schritt war mühsamer, als es zunächst schien. Das Arbeiten mit einer großen Zahl von Daten (Kanten) erfordert viel Zeit und Vertrauen. Während ArcInfo mit bis zu 60.000 Kanten arbeitet, kann es vorkommen, daß der Rechner bis zu ¼ Stunde keine Reaktionen zeigt. Lange Versuche zeigten erst, daß keine Fehlfunktion vorliegt. Ein weiterer fataler Nachteil von ArcInfo zeigte sich im Verhalten nach einem programmtechnischen Abbruch (Prozeß-Beendung) während des Arbeitens in der Datenbank. Diese war danach oft zerstört und ließ sich nicht mehr öffnen. Es ist daher zu empfehlen, mit einer ausreichenden Zahl von Sicherheitskopien zu arbeiten. Die Geodatenbank gliedert sich grob in die verschiedenen topologischen Elemente ("feature datasets"). Im ersten dataset wurden die Flächen abgelegt, sortiert nach Art der Fläche, je nach Anforderung der Gestaltungsgruppe (="feature classes") Im zweiten Bereich wurden einmal alle Linien zusammen abgelegt und alle Linien, sortiert nach Straßenart, ebenfalls je nach Anforderung der Gestaltungsgruppe. Der Teil mit allen Straßen wurde für die Navigationsgruppe angelegt. Im dritten Bereich befinden sich alle Punktobjekte, auch hier getrennt nach Art. 15 Jeder dieser einzelnen "feature-classes" läßt sich problemlos als shape-File exportieren. Die exportierten shape-Files erhielt die Gestaltungsgruppe. Sie sind grafische Grundlage der Karte und beinhalten zwar keine Topologie, aber alle Attribute. Abbildung 7: Die einzelnen feature-classes mit ihren Attributen. Abbildung 6: Die einzelnen feature classes in der Übersicht 2.3.1.5. Ergebnisse Die Gruppe Gestaltung erhielt von uns: Flächen = Nutzungsarten als shape-Files Linien = Straßen als shape-Files Punkte = points of interest als shape-Files Die Attribute sind direkt an das Objekt gebunden und können so aufgerufen werden. Außerdem erhält die Gruppe Gestaltung eine Rasterkarte des Stadtgebietes in Form eines Bitmaps. Die Gruppe Navigation erhält von uns: Eine Datenbank in MS-Access Format, in der alle Kanten mit vollständigen Attributen gespeichert sind. Eine Liste aller Knoten mit ihren Koordinaten für das GPS-System. Für die weitere Bearbeitung und Fortführung sind alle Vektordaten in einer Geodatenbank abgelegt und können von dort aus leicht bearbeitet oder in andere Formate transformiert werden. 16 2.3.1.6. Resümee: Das Arbeiten im Bereich der Datenaufbereitung stellte uns vor eine Vielzahl von Herausforderungen und forderte viel Flexibilität. Dies hängt einmal mit der Vielzahl der verschiedenen Daten und Formaten zusammen, die im Laufe des Projekts auch einem ständigen Wechsel unterlagen. So kamen wir mit Datenformaten von ATKIS bis EXCEL in Berührung. Der Umgang und der sinnvolle Einsatz von diesen erfordert viel Experimentieren. Der Wandel der Daten (ATKIS, gdf, Informix) führte auch zu einem ständigen Neubeginn des Arbeitens bei jedem Wechsel. Dies war sehr zeitaufwendig und forderte nicht zuletzt viel Geduld. Ein ähnliches Bild ergibt sich im Bereich der eingesetzten Software. Auch hier waren mußten wir sehr flexibel reagieren. Während wir uns mit einem Programm befaßten (SupportGIS + Visual Basic), wurde schon der Einsatz eines neuen sichtbar (ArcInfo). Für jeden Teilbereich unseres Arbeitens mußte erst ein Weg gefunden werden um mit den spezifischen Daten umzugehen: Zum Beispiel mußte für die Rasterkarte die TOP10-CD gefunden werden. Mit CorelDraw wurden die Bilder aneinandergefügt, mit ArcInfo georeferenziert. Die Daten für unsere Sehenswürdigkeiten wurden mit Excel gesammelt, als dbase-File gespeichert, mit ArcView transformiert, um sie in ArcInfo abzulegen. Dies fordert viel Arbeitsaufwand (Ausprobieren) und Geduld. Das Arbeiten mit ArcInfo, so gut das Programm auch ist, hat einige Tücken. Die Dokumentationen zu den Funktionen des Programms sind äußerst dürftig. Der Umgang erfordert einige Erfahrung und Abstürze (s. Datenbank) können verheerende Auswirkungen haben. Der Umgang mit Topologien (s. ArcView) macht es dem Benutzer auch nicht leicht. Unsere Arbeit im Bereich der Datenaufbereitung hat gezeigt wie vielschichtig und schwierig der Umgang mit verschiedenen Datenformaten sein kann. In einem perfekt geplanten Projekt hätte auch die Struktur der Datenbank und die Vorgehensweise bekannt sein müssen, denn das Arbeiten mit Topologien in ArcInfo erfordert eine bestimmte Reihenfolge. Da die Art und der Umfang der Daten jedoch nicht bekannt war, war dies nicht möglich. Trotzdem hat das Projekt gerade durch die diversen Schwierigkeiten und die Vielzahl von Programmen und Daten, mit denen wir gearbeitet haben, die Gruppe motiviert und einen Einblick in die Problematik geöffnet. 2.3.1.7. Die Gruppenmitglieder und ihre Aufgabenfelder: Olaf Bromorzki: Suche von externen Informationen (Sehenswürdigkeiten) DGM-Konvertierung und Import Aufbereitung der Radweg-Daten Straßennamen-Angleichung Erweiterte Topologie der Vektordaten ("Brückenproblematik") Enrico Kurtenbach: grundsätzliche Planung und Vorgehen ArcInfo-Bearbeitung der Daten DGM-Konvertierung, Impor t, Steigungsberechnungen Erweiterte Topologie der Vektordaten ("Brückenproblematik") (GPS-Koordinaten) Andreas Neuenhausen: DGM-Konvertierung und Import Bestimmung von Steigungen Erweiterte Topologie der Vektordaten ("Brückenproblematik") Jens Stenger: Rasterdaten (Screenshots & Bearbeitung) Rasterdaten Georeferenzierung Rasterdaten-Import 17 Carsten Szidzik: Suche von externen Informationen (Sehenswürdigkeiten) Aufbereitung der Punkt-Daten Suche von externen Informationen (Radwege) Aufbereitung der Radweg-Daten Mathias Thelker: grundsätzliche Planung und Vorgehen Vektordaten Geodatenbank ArcInfo-Bearbeitung der Daten Kontakt zu Stadt Bonn 18 2.3.2. Gruppe Navigation 2.3.2.1. Allgemeine Ziele, Gruppenzusammensetzung, Arbeitsaufteilung Die Arbeitsgruppe Navigation hatte zur Aufgabe, die eigentliche Routenplanung, die GPS-Anbindung und die Generierung der Höhenprofile zu analysieren, zu entwickeln und zu programmieren. Die notwendigen Daten wurden uns im gewünschten Format von der Gruppe Daten zur Verfügung gestellt, die Gruppe Technik hat unsere Entwicklungen in das Gesamtkonzept integriert und alle technischen Probleme gelöst. Zur Realisierung dieser Ziele haben wir uns die Arbeit folgendermaßen aufgeteilt: Georges Audry:interne Koordination, Höhenprofil Thorsten Berka: Kantengewichtungsfunktion, Travelling-Salesman-Problem Sascha Rudolph: Programmierung der Routenplanung und aller Nebenprodukte Heiko Stumm: GPS-Anbindung Frank Weydert: GPS-Anbindung Es folgen die Berichte der einzelnen Arbeitsbereiche. 2.3.2.2. Programmierung Von den ersten Ideen zur konkreten Umsetzung Zunächst haben wir uns Gedanken über den Ablauf der Wegsuche inkl. der Interaktionsmöglichkeiten des Nutzers gemacht, um daraus Anforderungen an den zu entwickelnden Algorithmus, sowie an die benötigte Datengrundlage, formulieren zu können. Wir waren uns sehr schnell einig darüber, dass wir die Wegsuche nicht auf eine einfache Bestimmung des kürzesten Weges zwischen 2 Punkten beschränken wollten, sondern dem Nutzer die Gelegenheit dazu geben möchten, eine Route mit mehreren Stützpunkten berechnen zu lassen, wobei dieser die Gewichtung der einzelnen Strassen je nach ihren Attributen bei der Routensuche beeinflussen können sollte. Dies führte dazu, dass es die ersten intensiven Gespräche mit der Datengruppe gab, um die Möglichkeiten zu eruieren, über die Weglänge hinausgehende Informationen zu den einzelnen Strassen bekommen zu können. Dabei haben wir uns bereits auf das RDBMS MS Access als Datenbank für das Wegenetz und die Attribute der Strassen festgelegt, da es universell via ODBC von sämtlichen zur Diskussion stehenden GIS – Systeme angefragt werden kann. Weiterhin haben wir uns bereits auf ein schlichtes Kanten-Knoten Modell zur Speicherung des gerichteten Weggraphen festgelegt. Bei der Auswahl eines zweckmäßigen Algorithmus haben wir uns letztlich für den allgemein bekannten Algorithmus von Danzig & Dijkstra entschieden, da ein näherungsweise optimal arbeitender TSP – Algorithmus zu zu langen Rechenzeiten geführt hätte und uns für eine erste Version zu aufwändig zu programmieren erschien. Der Danzig & Dijkstra Algorithmus stellt an den Nutzer allerdings die Anforderung, die einzelnen Wegpunkte seiner Route in der gewünschten Reihenfolge auszuwählen, zwischen denen im Anschluss jeweils der kürzeste Weg berechnet wird. In der Folge wurden eine Reihe von programmtechnischen Lösungen realisiert, wobei allen gemein ist, dass zunächst bei Start des Programms der gesamte Graph aus einer Access – Datenbank in den Arbeitsspeicher geladen wird. Zur Demonstration der zu erwartenden Rechenzeiten und zu ersten Prüfungen, ob unser Vorhaben zügig zu realisieren ist, haben wir zunächst eine Applikation in AutoCAD implementiert. Erster Lösungsansatz: VBA – Programm als Applikation in AutoCAD Die implementierte Oberfläche lässt sich direkt aus einem von uns erzeugten, zusätzlichen Pull-DownMenü aufrufen. Anschließend wird das gesamte Wegenetz aus der zuvor auszuwählenden Datenbank ausgelesen und in AutoCAD dargestellt. Der Datenbankzugriff erfolgt bei dieser Lösung via ADO 2.5 und zeichnet sich durch eine hohe Performance aus. Anschließend befindet sich der gesamte Graph im Arbeitsspeicher. Nach Auswahl von Anfangs- und Endknoten lässt sich der kürzeste Weg berechnen und in der Graphik highlighten. 19 Bei dieser Erstlösung bestand noch keine Möglichkeit, eine Route mehrerer Punkte zu errechnen. Um die Wegsuche universell einsetzbar zu machen, haben wir uns zu einer ersten Weiterentwicklung entschieden und haben eine ActiveX - DLL programmiert, die in sämtliche VB - Programme aber auch in ASP- Seiten eingebunden werden kann. Zweiter Lösungsansatz: VB – ActiveX - DLL (Dynamic Link Library) Die Umstellung der zunächst in VBA in der VBA- Umgebung in AutoCAD programmierten Lösung auf eine VB – DLL ist technisch zwar ein großer Schritt, jedoch sind die beiden Sprachen weitestgehend identisch, so dass der Quellcode nicht stark verändert werden musste. In diese Lösung wurde erstmals auch die Gewichtsfunktion zur benutzerspezifischen Errechnung der Kantengewichte implementiert. Das bedeutet, dass es dem Nutzer möglich ist z.B. bevorzugt Strecken großer oder geringer Steigung wählen, oder besonderen Wert auf die Existenz von Radwegen entlang der Route legen kann. Folge ist, dass die Minimierungsaufgabe, die mit dem Algorithmus gelöst werden soll, sich nicht ausschließlich auf die Distanz, sondern auf ein Kantengewicht beschränkt. Dieses wird mit Hilfe einer individuell vom Nutzer in gewissen Schranken vorzugebenden Funktion, die auf die Attribute der einzelnen Kanten angewendet wird, errechnet. Nachdem die Entscheidung für das zu verwendende GIS-System endgültig zu Gunsten von ArcInfo gefallen war, hat uns die Gruppe Technik zunehmend gedrängt, eine Java – Lösung zu programmieren, da sie nur so eine Möglichkeit zur Erstellung eines lauffähigen Gesamtsystems in Verbindung mit dem ArcIMS sah. Unterstützt wurde Sie dabei von Prof. Plümer, dem es schon aus didaktischen Gründen wichtig war, eine rein Java – basierte Lösung zu entwickeln. Da niemand in unserer Gruppe jemals objektorientiert, geschweige denn in Java programmiert hatte, bedurfte es zunächst einer Einarbeitung, um ein halbwegs performantes Programm erstellen zu können. Lösung: Java – Klassen zur Wegsuche Konzeptionell hat sich durch die Umstellung auf Java nicht viel geändert. Es wurde eine Klasse „Wegsuche“ erstellt, in der sowohl die Daten der Access – Datenbank via JDBC geladen werden, als auch die Wegberechnungen durchgeführt werden. Dabei greift diese Klasse auf die ebenfalls von uns programmierten Kanten- und Knoten - Klasse zu, in denen, möglichst optimal, der Graph vorgehalten wird und in die einige Methoden zur Unterstützung der Wegsuche implementiert wurden. Die Wegsuche - Klasse liefert, nachdem eine Punktliste und die Parameter für die Gewichtsfunktion an sie übergeben worden sind, den optimalen Weg in Form einer geordneten Liste von KantenID´s an das aufrufende Servlet zurück. Weiterhin ist es möglich eine Punktliste mit Koordinaten aller Knoten, die auf dem Weg liegen, im NMEA und im PCX5 – Format in Form eines String – Arrays zurückzugeben, der mit Hilfe des von der Gruppe Technik entwickelten Servlets in einer Datei abgelegt wird, die der Nutzer herunterladen und in einen GPS – Empfänger einlesen kann (vgl. 5). Des Weiteren wird ein Java Script - String mit den Knotenkoordinaten erzeugt, der direkt in die ebenfalls von der Gruppe Technik erzeugte HTML – Seite geschrieben werden kann. Dieser String enthält den Aufruf des Java - Applets, das zur Darstellung eines Steigungsdiagramms verwendet wird (vgl. 4). Dabei wird die Größe des Applets in Abhängigkeit der Routenlänge und des Höhenunterschieds dynamisch festgelegt. 2.3.2.3. Kantengewichtungsfunktion, Travelling-Salesman-Problem Vorgehensweise: 1.) Sammlung der benötigten Attribute 2.) Aufstellung der Bedingungen, welche die Funktion erfüllen soll. 3.) Ermittlung einer Einstiegsfunktion (Nicht wichtig, nur der Vollständigkeit halber) 4.) Vorläufig endgültige Funktion 5.) Probleme 6.) Überlegung zum TSP 20 Sammlung der benötigten Attribute Hierbei werden die Eigenschaften gesammelt, nach denen Radfahrer gewöhnlich ihre Fahrtroute aussuchen: Bereich Anstrengung: Streckenlänge, Steigungen Bereich Sicherheit: Beleuchtung, Verkehrsdichte, Straßenbelag Bereich Umgebung: Gewässer, Natur Aufstellung der Bedingungen, welche die Funktion erfüllen soll Diese Bedingungen sind notwendig, um die Effizienz einer Funktion beschreiben zu können. Wichtig ist das in erster Linie bei dem Vergleich zweier Alternativen: Bereich Komplexität: Anzahl der notwendigen Berechnungen, Übersichtlichkeit, Segmentbildung (Jedes einzelnes Attribute kann dadurch entfernt werden bzw. neue können später hinzugefügt werden.) Bereich Ergebnisgüte: Möglichkeit der Gewichteverteilung, gleicher Einflußbereich aller Attribute, anschaulich gute Ergebnisse (erst bei Laufen des Planers möglich) Ermittlung einer Einstiegsfunktion Kosten = A * B * C * D * E * F * G Segmente: A = Entfernung => Entfernung * Bewertungskoeffizient B = Verkehrsaufkommen (siehe C) C = Natur =>vTypzahl^Bewertungszahl (<= Bewertungskoeffizient) D = Fluß (siehe C) E = Beleuchtung (siehe C) F = Straßenzustand (siehe C) G = Steigung => (0,00005 * Steigung(%)^3 + 0,005 * Steigung(%)^2 + 0,05 * Steigung(%)^1 + 1) * Bewertungskoeffizient wobei die Bewertungszahl vom Benutzer als Maß seines persönlichen Interesses an bestimmten Eigenschaften, welche die Route haben sollte, ist. 4 3 2 1 0,5 und Tabellen werden, z. B. für Straßenbelag: : darauf legt man sehr viel Wert : darauf legt man viel Wert : darauf legt man Wert : das ist einem egal : lege Wert auf Gegenteil Typzahlen: Belagtyp: Skala 1: Asphalt (gut) 1 wassergebunden (gut) 1,5 Asphalt (mittel) 2 Asphalt (schlecht) 2,5 wassergeb. (schlecht) 3 Skala 2 (Alternative): 1 2 2 3 3 Typzahlenaus zugeordnet den 21 Vorläufig endgültige Funktion Kostenfunktion: Typzahlen Alternativ-Typz. Verkehrsdichte Natur Gewässer Beleuchtung Straßenbelag Steigung 1 1 Keine(Fahrradweg abgetrennt) Wald See/Fluß(naturbelassen) gute Asphalt(gut) Betrag<5% 1,5 1 gering Wiese See/Fluß(künstlich) - wassergebunden(gut) Betrag<10% Betrag<15% 2 2 mittel Acker Bach(naturbelassen) schlechte Asphalt(mittel) 2,5 3 hoch Urban Bach(künstlich) - wassergebunden(schlecht) Betrag<20% 3 3 gewaltig Industrie kein Gewässer keine Asphalt(schlecht) Betrag>=20% Bew.-zahlen Alternativ-Bewer.-z. Bewertungsangabe Formel: -0,5 - eher andersrum wäre mir lieb Summe[Typzahl(i) * Bewertungszahl(i)] * Strecke * Steigungskoeffizient 0 0 ist mir egal 1 1 wäre schon ganz nett Steigungskoeffizient: 2 - fänd ich schon gut 0,0000005*-Stei.^4 + 0,00003*-Stei.^3 + 0,001*-Stei.^2 + 0,04*-Stei. + 1 4 3 auf jeden Fall Spezielles: 1.) Fahrradweg auf Straße => Eine Verkehrsdichtestufe weniger. 2.) Asphalt(mittel) = wassergebunden(mittel) = Kopfsteinpflaster 3.) schlechte Beleuchtung ist auch Beleutung, die nur temporär eingeschaltet ist. 4.) Fähre zählt wegen durchschnittlicher Warte- und Fahrzeit als fünffache Strecke der Flußbreite, und ist in allen Eigenschaften als optimal zu bezeichnen. Probleme Das große Problem liegt darin, den Steigungen passende Gewichtungen in der Formel zuzuordnen. Die Bewertung, wie sehr man Wert auf flache Strecken legt, bleibt dabei genauso wie bei den anderen Eigenschaften. Dazu kommt aber noch der physikalische Teil. Die Schwi erigkeit resultiert nun aus der Komplexität der anzuwendenden physikalischen Formel. Dazu benötigt man nämlich die Kraftarbeit, die der Fahrer leistet, sein Gewicht, das Gewicht des Rades, u.s.w.. Da aber kaum ein Fahrer alle diese Eigenschaften kennt, und die Funktion dadurch auch noch übertriebener Maßen komplexer würde, bleibt nun nichts anderes übrig, als eine gute Approximation zu finden. (=> Steigungkoeffizient) Diese hat selbst auch noch einige logische Bedingungen zu erfüllen, wie z.B.: Eine Strecke über einen „flachen“ Berg ist der gleichen über einen höheren Berg bei selben Anfangs- und Endpunkt vorzuziehen, u.s.w.. Traveling Salesman Problem Wurde nach dem Brainstorming nicht mehr weiter vertieft, da die Einführung eines Algorithmus zum TSP in den Routen-Planer auf Grund der schon bestehenden Probleme unrealistisch geworden ist. 2.3.2.4. Höhenprofil verfolgtes Ziel, Aufbau, zu beachtende Punkte Ziel war es, von der jeweils berechneten Route ein Höhenprofil zu generieren, anhand dessen der Nutzer eine Vorstellung über die Steigungsverhältnisse in der vorgeschlagenen Route gewinnen kann. Das Aussehen solcher Höhenprofile ist den Radsportbegeisterten wohlbekannt, wie z.B. bei der Tourde-France: 22 Der eigentliche Aufbau so eines Profils ist sehr einfach und läßt sich mit einigen Schritten implementieren: - Während der Routenberechnung eine Liste der besuchten Punkte anlegen: - 1. Spalte: Distanz vom Anfangspunkt aus: di = di-1 + Kantenlänge - 2. Spalte: Höhe des Punktes Diese Liste muß dann an ein geeignetes Programm zur Grafik-Erzeugung übergeben werden. Dabei muß sichergestellt werden, daß das Profil immer mit der gleichen Überhöhung dargestellt wird. Kartographisch hat sich die Skalierung 1:10 für das x:y-Verhältnis bewährt. Wird dies nicht konsequent eingehalten, kann es vorkommen, daß eine flache Route durch ungünstige Darstellung profilreicher wirkt als eine Route mit viel Steigung und Gefälle. Es wurden zwei Lösungsansätze entwickelt. Erster Lösungsansatz: mit Hilfe von MS EXCEL Der erste Ansatz beruht darauf, daß dem Nutzer eine Datei übergeben wird, mit der er sich das Profil selbst erstellen kann: Durch Anklicken des entsprechenden Links wird MS Excel automatisch gestartet und öffnet die ASCII-Datei, welche die weiteren Anleitungen sowie die zur Route passenden Zahlenwerte enthält. Vorteile: - viele Möglichkeiten der graphischen Detailverarbeitung - Nutzer kann das Aussehen selbst beeinflussen - schneller und geringer Datentransfer, auch bei langsamer Modem-Verbindung Nachteile: - Nutzer muß MS WINDOWS und MS EXCEL installiert haben - Nutzer muß mehrere Anleitungen befolgen, bevor er ein Resultat erhält - Probleme bei unterschiedlichen Browsern: automatisches Datei-Öffnen bei NETSCAPE durch teilweise anderen Befehl als bei MS EXPLORER Das Resultat könnte folgendes Aussehen haben: 23 Aufgrund der gravierenden Nachteile wurde diese Lösung nicht realisiert. Zweiter Lösungsansatz: Gebrauch einer existierenden Klasse Beim Stöbern im Internet wurde eine bereits existierende Klasse gefunden, die das verfolgte Ziel realisiert: die Darstellung eines Profils aufgrund einer Liste von Abszissen- und Ordinatenwerte. Vorteile: - automatische Generierung des Profils - unabhängig vom Betriebssystem und von den Programmen des Nutzers - Profil wird gleich neben der Karte angezeigt Nachteile: - geringe graphische Möglichkeiten, daher immer spärliches Aussehen - keine Punkt- oder Kantenbeschriftungen möglich - aufwendiger Einfluß auf Skalierung der Achsen - überdimensionales Pop-Up-Fenster Ein Nachteil dieser Klasse ist, daß die Größe des Profils in Pixelwerten absolut festgesetzt werden muß. Ein Einfluß auf die Skalierung hat man somit nur über die Länge und Breite des Pop-UpFensters. Demnach müssen während der Routenberechnung die Werte Gesamtstrecke und maximale Höhe ermittelt werden, je nach Skalierung in Pixelwerte umgerechnet werden und der Klasse zusätzlich übergeben werden. Da im Gebiet dieses Routenplaners vorwiegend flache Strecken vorkommen, werden sich die Profile über mehrere Bildschirmbreiten ausdehnen. Es wäre aber ungünstig, durch die Skalierung der Strecke das Profil auf einen Bildschirm zu begrenzen, da sonst bei langen Strecken nur noch ein mehrmals leicht geknickter fast horizontaler Strich zu erkennen ist. Die Generierung eines Höhenprofils für eine recht kurze Strecke liefert folgendes Resultat: Diese Lösung wurde nach den beschriebenen Vorschriften ohne größere Probleme implementiert. 24 2.3.2.5. GPS-Anbindung GPS-Handempfänger erfreuen sich heute immer größerer Beliebtheit. Deshalb ist in diesem Projekt ebenfalls eine Anbindung an solche Systeme angestrebt worden. Dies hat den großen Vorteil, dass der Nutzer Punkt für Punkt durch die berechnete Route navigiert werden kann. Zu Beginn unserer Arbeit musste ein geeignetes, einheitliches Format (Protokoll) gewählt werden. Es soll möglichst alle auf dem Markt befindlichen GPS-Handempfänger unterstützen. Dabei legten wir uns zunächst auf das NMEA-Protokoll 0183 (National Marine Electronics Association) fest. NMEA-Format NMEA wurde zum Datenaustausch zwischen elektronischen Marine-Mess- und Auswertungsgeräten entworfen und ist inzwischen ein Standardprotokoll für das Interface vielseitiger Meß- und Datengeräte, das auf der seriellen Schnittstelle (RS232) aufsetzt. NMEA Informationen sind unterteilt in Sätze aus jeweils maximal 80 Zeichen. Jeder Satz beginnt mit dem Zeichen '$'. Beispiel-Datei: $GPWPL,5043.32,N,0705.28,E,KARTOINSTITUT*2F $GPWPL,5043.43,N,0705.07,E,NUSSALLEE*21 $GPWPL,5043.39,N,0704.57,E,MENSA*26 $GPWPL,5043.31,N,0705.03,E,SCHUPPEN*7C $GPWPL,5043.27,N,0705.13,E,CARL-TROLL-STR*7C $GPWPL,5043.32,N,0705.21,E,KATZENBURGWEG*21 $GPWPL,5043.30,N,0705.27,E,BOTGARTEN*2F $GPWPL,5043.32,N,0705.28,E,KARTOINSTITUT*2F Die ersten 5 Zeichen nach dem $ bezeichnet man als Adressfeld. Danach folgen (jeweils durch Komma abgegrenzt) die Datenfelder. Die ersten 2 Zeichen des Adressfeldes sind die so genannte Talker-ID, die den Typ des Senders kennzeichnen (hier GP = GPS-Device). Die folgenden 3 Buchstaben kennzeichnen den Typ (das Format) des Satzes, d.h. welche Informationen in diesem Satz übermittelt werden (hier WPL = Waypoint List). Darauf folgen die Datenfelder, welche geographische Koordinaten in die Nord- und Ostrichtung (N, bzw. E) enthalten und durch Komma getrennt werden. Danach folgt noch eine Identifizierung des Koordinatensatzes. Optional kann eine Check-Summe angehängt sein. Diese ist durch '*' vom Satz getrennt und entspricht der hexadezimalen Darstellung der XOR-Verknüpfung aller Zeichen zwischen '$' und '*'. Diese kann mit Freeware-Programmen (z.B.: NMEATool, www.nmeatool.de) für unser Beispiel berechnet und eingesetzt werden. Hierdurch ist gewährleistet, dass die Daten fehlerfrei an den GPSEmpfänger gesendet wurden, da der Empfänger ein weiteres Mal die Check-Summe berechnet und bei eventueller Nichtübereinstimmung eine Wiederholung der Datenübertragung fordert. Mit Hilfe des oben genannten Programms kann schließlich die Datei an den GPS-Empfänger überspielt werden. Nach den theoretischen Überlegungen und dem Erstellen eines Probeprotokolls traten jedoch die ersten Probleme auf! Das Übertragen der Datei mit verschiedenen Programmen (u.a. Waypoint+, NMEATool, ...) auf die institutseigenen Garmin-Empfänger (eMap, etrex Summit) war nicht möglich. Diese Garmin-Empfänger unterstützen nur die NMEA-Ausgabe, nicht aber den NMEA-Import. Daher war es uns nicht möglich, unsere Probedatei zu testen. Da wir uns aber bereits stark mit diesem Format beschäftigt hatten und es allgemein als Standardprotokoll angesehen ist, geben wir zusätzlich die Möglichkeit die Route in diesem Format auszugeben. Bei der weiteren Recherche fiel unser Augenmerk vor allem auf das PCX5-Format, das auch die Garmin-Empfänger zum Import unterstützen. 25 PCX5-Format Dieses Format erlaubt das Austauschen von Waypoints, Routen und Tracks zwischen PC und GPSHandempfänger. Die wichtigsten Informationen wie Name, Koordinaten, Datum, Höhe und WaypointBeschreibung sind enthalten. Vorteile dieses Formates sind, dass es als Textdatei vorliegt und von vielen GPS-Programmen unterstützt wird. Für die Weiterverarbeitung der von uns erzeugten Testdateien (für Routen: *.rte) verwendeten wir das Programm MapSource der Fa. Garmin. Die Dateien können ebenfalls von anderer PCX5-kompatibler Software genutzt werden. Beispiel-Datei: H SOFTWARE NAME I Fahrradroutenplaner Bonn H R DATUM M E WGS 84 IDX DA DF DX DY DZ 100 +0.000000e+00 +0.000000e+00 +0.000000e+00 +0.000000e+00 +0.000000e+00 H COORDINATE SYSTEM U LAT LON DM R TESTROUTEinhdddmm.mmm H IDNT LATITUDE LONGITUDE DATE TIME ALT DESCRIPTION W 111111 N5045.985 E00708.001 17-AUG-01 09:34:08 -9999 XXXXXXXXX W 211111 N5046.101 E00707.832 17-AUG-01 09:34:08 -9999 XXXXXXXXX W 311111 N5046.073 E00707.820 17-AUG-01 09:34:08 -9999 XXXXXXXXX W 411111 N5045.956 E00707.745 17-AUG-01 09:34:08 -9999 XXXXXXXXX Jede Zeile beginnt mit einer speziellen Kennung: H = Header Record (enthält keine Daten, sondern dient nur als Überschrift) I = Identifikation der Software M = Map Datum (Datum der Karte) U = Koordinatensystem R = Route W = Wegepunkt Die Festlegung des benutzten Kartendatums (Zeile 5 im Beispiel) erfolgt durch eine vordefinierte Identifikationszeile (Zeile 4 im Beispiel). In unserem Beispiel liegt als Referenzsystem R ein Ellipsoid E im WGS84-Datum vor. Des Weiteren legen IDX die Indexnummer des Kartendatums fest, DA (? Erdradius), DF (? Abplattung), DX, DY und DZ (? der Ursprungskoordinaten) beschreiben die Abweichung vom Referenzdatum (WGS84). Danach erfolgt die Definition des Koordinatensystems (Zeilen 7 und 8). In unserem Fall liegen geographische Koordinaten mit Länge LON, Breite LAT in Dezimalminuten DM vor. Ab Zeile 9 beginnt die eigentliche Ausgabe der berechneten Routen. Hierbei werden die einzelnen Daten jeweils durch ein Leerzeichen getrennt. Es kann neben einer Identifikationsnummer IDNT (immer 6 Zeichen!) noch das Datum DATE, die Zeit TIME, die Höhe ALT und eine Beschreibung DESCRIPTION der Wegepunkte festgelegt werden. Bei der Höhe bedeutet der Wert –9999, dass keine Höhe vorhanden ist. Trotz der oben genannten Festlegungen können in verschiedenen Software-Programmen Probleme auftreten, da jede Software sich nicht an die exakt definierten Formate hält. Gegebenfalls muss der Nutzer selbst kleine Änderungen an der Datei vornehmen. Dies sollte allerdings keine Schwierigkeiten darstellen, da die Datei im Texteditor gelesen und bearbeitet werden kann. Beschränkung der Anzahl der Wegepunkte in einer Route Ein weiters Problem besteht darin, dass bei der Routenberechnung meist sehr viele Wegepunkte eine Route ergeben. Unnötiger Weise werden neben Richtungswechseln auch auf Geraden alle 26 vorhandenen Knotenpunkte ausgegeben. GPS-Handempfänger können jedoch nur eine begrenzte Anzahl von Wegepunkten (25 bzw. 50) als Route verarbeiten. Aus diesem Grund, muss eine Punktreduzierung implementiert werden, wobei die Navigation auf der Route erhalten bleiben muss. Dazu wird die Knotenliste von Anfang bis Ende durchlaufen und jeweils die Differenz der i +1 Richtungswinkel t i i +2 und t i gebildet. Unterschreitet diese Differenz einen festgelegten Schwellwert, so kann der mittlere Knoten ( K i +1 ) gelöscht werden. Dabei darf allerdings die Strecke K i Ki +1 nicht größer als ein vorgegebener Schwellwert (100 m) sein. Ist nach einem vollständigen Knotenlistendurchlauf die maximal mögliche Anzahl von Wegepunkten überschritten, so werden die beiden Schwellwerte erhöht und eine erneute Punktreduzierung gestartet. Dieses Verfahren hat sich nach etlichen Testläufen (mit Anpassen der Schwellwerte zueinander) als brauchbar erwiesen. Nur bei sehr langen Routen, muss der Benutzer eventuell den Reiseweg in Teilstrecken unterteilen und mehrere Anfragen starten. Eine Automatisierung dieser Aufgabe konnte nicht implementiert werden, da die Ausgabe von nur einer Datei vorgesehen ist. 27 .3.3 Gruppe Technik 2.3.3.1 Aufgaben der Gruppe Technik: Die Aufgabe der Gruppe Technik bestand in der Bereitstellung der Infrastruktur (ArcIMS, Webserver, Servlet-Engine) und in der Realisierung der Kommunikation zwischen den verschiedenen Komponenten. Im folgenden soll zunächst ein knapper Überblick über den Aufbau und die Funktionsweise des ArcIMS gegeben werden, welcher zum Verständnis der darauf folgenden Beschreibung unserer Tätigkeiten hilfreich ist. 2.3.3.2 Überblick ArcIMS Komponenten auf Serverseite: • ArcIMS Application Server Connectors o Servlet Connector o ColdFusion Connector o ActiveX Connector • ArcIMS Application Server • ArcIMS Spatial Server • ArcIMS Manager Connectors Stellen die Verbindung zwischen WebServer und ArcIMS-Server her. Diese Komponenten leisten beim ArcIMS reine Übersetzerdienste. Sie wandeln die Anfrage des Clients in ein für den ArcIMS verständliches Format (AXL=ArcXML) • Servlet Connector Standard-Programm zur Verbindung von ArcIMS mit dem Web-Server. Nutzt die JavaPlattform-Technologie. ArcXML-Anfragen werden unmittelbar an den ArcIMS-Server weitergeleitet, d.h. es ist keine zusätzliche Übersetzung notwendig. Unter einem Servlet versteht man generell ein auf dem Server laufendes Javaprogramm, das über den Webserver angesprochen wird. • ActiveX Connector COM-DLL für alle COM-Programme z.B. ASP. Zus. Programme können z.B. in Visual Basic, C++, Delphi usw. geschrieben werden. Anweisungen werden in ArcXML übersetzt • ColdFusion Connector ColdFusion Anweisungen werden in ArcXML übersetzt Spatial Server Die Spatial Server sind die eigentlichen „Arbeitstiere“ des ArcIMS. Sie beinhalten die grundlegenden Funktionen für die Erstellung und den Zugriff auf Karten. XML-Parser Diese Komponente parst das AXL-Document, nachdem es vom ServletConnector an den Application-Server übergeben worden ist und wandelt es in ein vom Computer bearbeitbares Format um. Informationen eines AXL-Dokumentes lassen sich vom Computer einerseits als DOM (Document Object Modell) [einer Baumartigen Datenstruktur] speichern. Dies ist ein genaues Abbild des AXLDomumentes. Es besteht jedoch auch die Möglichkeit den Inhalt des AXLDocumentes in die Anwendungslogik des Programms zu übersetzen. 28 Data Access Manager Verbindung zwischen dem Spatial Server und einer Datenquelle Map-Services haben folgende Möglichkeiten Daten zu beschaffen: o Image Rendering (Image MapService) § JPEG, PNG oder GIF zum Web-Server § Generiert aus • Shapefiles • ArcSDE Datenquellen • Unterstützte Bildformate: ADRG, ASRP, BIL, BIP, BMP, GeoTiff, GIF, Tiff, Jpeg, usw. § Karte wird im Spatial Server generiert und Link auf die Karte an den Client gesendet. o Feature Streaming § Shapefiles und ArcSDE-Datensätze zum Java Applet (komprimiert) § Karte wird vom Client generiert o Query § Liefert Daten aus Datenquellen § Notwendig bei der Nutzung von Attributen o Geocoding § Findet Adressen auf Karten basierend auf Informationen aus Shapefiles oder ArcSDE-Datenquellen. o Data Extraction § Liefert einen Auschnitt der Daten als Shapefiles § Wird aus Shapefiles oder ArcSDE-Datenquellen generiert § ZIP-Format ArcIMS Manager Hierbei handelt es sich um eine gemeinsame Oberfläche von Author, Designer und Administrator. Sie ist browserbasiert und läuft nur im Internetexplorer ab Version 5 ArcIMS Author Hierbei handelt es sich um eine graphische Oberfläche zur Erstellung von Karten. Der Author bietet die Möglichkeit Daten auszuwählen und Gestaltungsrichtlinien festzulegen. Die Daten können hierbei aus Shapefiles, ArcSDE Datenquellen oder aus georeferenzierten Rasterdaten bestehen. Das Ergebnis ist eine AXL Datei, die das Aussehen der Karte bestimmt. Es hat sich jedoch gezeigt, dass das Tool momentan noch nicht ausreichend gut funktioniert. Es eignet sich um das Grundgerüst einer Karte festzulegen. Das Feintuning muss jedoch per Hand geschehen. Unsere Einschätzung der mangelnden Stabilität und Funktionalität wurde uns auch von Mitarbeitern von Esri auf der Intergeo 2001 bestätigt. ArcIMS Designer Mit diese Komponente lassen sich einfach Webseiten gestalten. Es lassen sich die benötigten Kontrollelemente und der Mapservice bestimmen. Es wird dann automatisch die Webseite erstellt. Hierbei lassen sich HTML- und JAVA-Viewer generieren. Wir haben uns für einen HTML-Viewer entschieden, weil somit der Nutzer kein Java 1.2 Plugin benötigt. ArcIMS Clients Bezeichnen Möglichkeiten auf den ArcIMS zuzugreifen Funktionen: • Pan und Zoom • Räumliche und thematische Anfragen • Pufferung um Objekte • Distanzen auf der Karte messen • Annotation o Text und Bilder hinzufügen o Wird zum Server gesandt, aber nicht direkt integriert 29 • • Geometrie o Editieren und ergänzen o Wird zum Server gesandt, aber nicht direkt integriert Adressen auffinden Einige Beispiele für ArcIMS Clients sind: ArcExplorer: • Eigenständiger Viewer. Muss nicht über Webbrowser gestartet werden, sondern ist ein eigenständiges in Java geschriebenes Programm, welches vom Nutzer installiert werden muss. HTML/DHTML Viewer: • Wird im Webbrowser gestartet • Nutzt Java-Script zur Übersetzung der ArcXML-Befehle • Nur Image MapService • Nur ein MapService gleichzeitig • Alle Berechnungen auf dem Server • Sourcen sind vorhanden • Ausgangspunkt für eigene Anpassungen Java Viewers: • Wird im Webbrowser gestartet • Feature Streaming und Image MapServices • Kombination mehrerer MapServices • Java 2 Applet • Client führt einen Teil der Berechnungen durch • 2 Downloads notwendig o Java Run-time Enviroment o ArcIMS Viewer Applet Java Standard Viewer: • Netscape und Internet Explorer ab 4.0 • Vordefinierte Tools und Funktionen • Geschwindigkeitstuning beiUmfangreichen Karten notwendig. Java Custom Viewer: • Nur Internet Explorer 4.0 und 5.0 • Viewer Object Model API: Individuelle Anpassung des Viewers 2.3.3.3 Schnittstelle für Routenplanung Eine der Aufgaben der Gruppe Technik bestand in der Realisierung der Schnittstelle zwischen der von der Gruppe Navigation entwickelten Routenplanung und der durch die Gruppe Gestaltung realisierten Darstellung. Für die Schnittstelle wurden verschiedene Möglichkeiten exploriert, aus denen schließlich das getrennte Servlet für die Routenplanung ausgewählt wurde. Anbindung im ArcIMS Die erste Möglichkeit, die uns in den Sinn kam, setzt Modifikationen am ArcIMS Webserver voraus. Dort sollten Anfragen, die im Zusammenhang mit der Routenplanung stehen an ein eigenständiges Programm weitergeleitet werden. Hierbei bieten sich folgende Möglichkeiten an: • Anbindung über o Servlet Connector o ColdFusion Connector o ActiveX Connector • Erstellung eines eigenen „Spatial Server“ • Servlet in die Kommunikation zwischen Webserver und ArcIMS einschalten 30 Bei den „Connectors“ handelt es sich um Programmschnittstellen, mit deren Hilfe von außen auf den ArcIMS zugegriffen werden kann. Leider haben wir keine Möglichkeit gefunden, von Seiten des ArcIMS über die „Connectors“ auf externe Programme zuzugreifen. Die einzige Möglichkeit, die wir gefunden haben, besteht in der Möglichkeit eigene Clients für den ArcIMS zu schreiben. Die „Spatial Server“ sind die eigentlichen Arbeitstiere des ArcIMS. Daher bietet es sich an, einen eigenen Server zu entwickeln, der für die Routenplanung zuständig ist. Leider haben wir keine Informationen gefunden, die für die Entwicklung und Anbindung eines solchen Servers benötigt werden. Die dritte angedachte Möglichkeit besteht aus einem Servlet, das zwischen den Webserver und den ArcIMS geschaltet werden sollte. Die gesamte Kommunikation wird abgefangen. Befehle, die für den ArcIMS bestimmt sind, werden durchgeschleust und Befehle für die Routenplanung werden abgefangen. Auch hier lagen uns recht wenig Informationen über den Aufbau und die Schnittstellen vor. Daher wurde auch diese Möglichkeit verworfen. Der komplette ArcIMS-Server auf Server-Seite stellt eine recht abgeschlossene Einheit dar. Die Clients hingegen sind relativ offen ausgelegt. Für den HTML-Client liegen sämtliche Source-Codes vor. Aus diesem Grund haben wir uns dazu entschlossen, den Server auf Seiten des Clients einzubinden. Anbindung auf Clientseite Die Anbindung der Routenplanung auf Clientseite setzt die geringsten Veränderungen am ArcIMS Gesamtsystem voraus. Aus diesem Grund haben wir uns auch für diese Variante entschieden. Nach längeren Überlegungen haben wir uns zu folgenden Modifizierungen am HTML-Client entschlossen: Der HTML-Client wurde um einen zusätzlichen Frame ergänzt, der aus der Ausgabe des zu entwickelnden Servlets besteht. Über diesen Frame (Vom Servlet generiert und ausgelesen. Siehe Abbildung) wird die Kommunikation zwischen den Bedienelementen der Gruppe Gestaltung und der Klasse Routenplanung der Gruppe Navigation realisiert. Kommunikation zwischen Client und Servlet Die erste Idee zur Kommunikation waren AXL-Kommandos, wie sie auch zwischen HTML-Client und ArcIMS-Server verwendet werden. Erste Tests brachten aber diverse Probleme mit sich. Diese hingen mit den Sun Java-Klassen für AXL zusammen. In normalen Applets funktionieren diese Klassen einwandfrei, aber in Servlets kam es zu diversen Fehlermeldung zur Laufzeit, die sich nicht nachvollziehen ließen und zu denen auch keine Lösung gefunden wurde. Ein weiteres Problem stellt die Codierung der AXL-Befehle auf ClientSeite dar. Hier wären auch diverse neue Programmroutinen zu erstellen gewesen, um die Benutzereingaben im entsprechende AXLKommandos umzusetzen. Daher wurde diese Idee verworfen. Stattdessen werden die Benutzereingaben in verschiedene „Textareas“ (Eingabefelder in HTMLSeiten) geschrieben und diese Einträge vom Servlet ausgewertet. Aufbau des Frames Sämtliche für die Steuerung des Servlets notwendigen Angaben werden über visuelle Elemente (HTML Forms) übermittelt. Man hätte ebenso Variablen im HTML-Code implementieren können. Der Vorteil von visuellen Elementen liegt in der besseren Überprüfbarkeit der Einträge und Ergebnisse in der Entwicklungsphase des Gesamtprojektes. Alle Elemente sind von der Webseite aus zugänglich und ermöglichen somit zum Beispiel das Setzen der Route und Starten der Routenplanung. Da der Frame (PostFrame) später nur mit der Höhe 1 angezeigt wird, sind diese Elemente für den Benutzer nicht sichtbar und stören somit auch nicht weiter. Im oberen Teil befinden sich Radio-Buttons über die dem Servlet mitgeteilt wird, welche Funktion als nächstes ausgeführt werden soll. 31 • Route berechnen: Hiermit wird das Servlet aufgefordert, beim nächsten Aufruf die Route zu berechnen und das Ergebnis an den Client zu übermitteln. • GPS berechnen: Servlet berechnet anhand der zuvor erstellten Route eine GPS-Datei mit den entsprechenden Wegpunkten. • Steigungsdiagramm: Anhand der zuletzt berechneten Route wird ein Steigungsdiagramm berechnet. Unterhalb der Radio-Buttons sind mehrere Schalter angeordnet. Diese dienen nur zum Test des Servlets außerhalb des Gesamtprojektes. Die Buttons sind mit Java-Script Funktionen verknüpft, die auch von den Bedienelementen der Gruppe Gestaltung genutzt werden. Die sechs Eingabefelder unterhalb der Buttons sind für die einzelnen Gewichtungsfaktoren vorgesehen. Der Inhalt wird direkt an die Klasse Routenplanung weitergeleitet. Darunter befindet sich ein größeres Eingabefeld, in dem die einzelnen Wegpunkte für die Routenplanung eingetragen werden. Die Ergebnisse der Routenplanung werden dann in das darunter liegende Feld eingetragen. Das Ergebnisfeld wird immer mit einem „Dummy“-Eintrag gefüllt, da bei jedem Aufruf des ArcIMS automatisch das Ergebnisfeld ausgelesen wird und die dort eingetragene Route hervorgehoben wird. Der Dummy-Eintrag ist notwendig, da der ArcIMS sonst alle Elemente highlightet . Über die Radio-Buttons „NMEA Format“ und „PCX5 Format“ wird das Datenformat der zu erstellenden GPS-Datei festgelegt. Über das nächste Eingabefeld kann die max. Anzahl von Zeilen der GPS-Datei festgelegt werden, dieser Wert wird auch direkt an die Klasse Routenplanung weitergeleitet. Das letzte Eingabefeld dient der Zwischenspeicherung der Wegpunkte. Bei der Routenplanung wird eine Liste der Zwischenpunkte für eine spätere Generierung einer GPS-Datei erstellt, die zwischengespeichert werden muss. Der Inhalt wird bei der Generierung der GPS-Datei dann wieder vom Servlet ausgelesen und an die Klasse Routenplanung übergeben. Durch die Zwischenspeicherung aller Ergebnisse im Frame des Clients ersparen wir uns die Arbeit mit Cookies bzw. eines Sessionmanagments. Dadurch werden auch Probleme mit Browsern vermieden, bei denen Cookies deaktiviert sind. Entwicklung des Servlets Entwicklungsumgebung Mit den kostenlos erhältlichen Versionen der Java-Entwicklungsumgebungen ist es zumeist nicht möglich Servlets zu entwickeln. Borland bietet nur in der Enterprise Version seines JBuilders entsprechende Möglichkeiten an. Mit Hilfe einer Testversion des Programms (60 Tage Laufzeit) wurden die ersten Entwicklungsschritte für das Servlet durchgeführt. In die Borland Entwicklungsumgebung ist der Apache-Tomcat-Server integriert, so dass sich Servlets auf eine recht einfache und unkomplizierte Weise entwickeln und debuggen lassen. 32 Um das Problem der 60-Tage Beschränkung zu umgehen, haben wir uns auch mit der kostenlos erhältlichen Netbeans Entwicklungsumgebung beschäftigt. Von Sun wird ebenfalls eine, auf Netbeans basierende, Entwicklungsumgebung für Servlets angeboten, die aber leider auch nicht kostenlos ist. Zu unserem Glück befand sich die Version 3 der Forté-Entwicklungsumgebung im Teststadium, so dass man sich eine Testversion herunterladen konnte, mit der dann auch alle weiteren Änderungen am Servlet durchgeführt wurden. Die Integration der Servlet-Engine und das anlegen eines neuen Projektes sind zwar nicht ganz so komfortabel realisiert wie im Borland JBuilder, aber dafür bietet der Editor weitaus mehr Funktionalität. Aufbau des Servlets In der Funktion „Init“ wird die Klasse für die Routenplanung erzeugt und in dieser dann die Funktion zum laden der Daten aufgerufen. Diese Funktion wird durch die Generierung des Servlets in der Servlet-Engine beim ersten Aufruf ausgelöst. Wird das Servlet von einer Web-Seite aus angesprochen, so wird automatisch die Funktionen „doGet()“ ausgeführt. In dieser Funktion wird ein HTML-Code erzeugt, der dann auf dem Web-Client dargestellt wird. In unserem Fall stellen die Ausgaben das oben beschriebene Frame-Routenplanung dar. Für die Generierung des HTML-Codes ist man als Programmierer selbst verantwortlich. Der Code wird mit „print“-Anweisungen in einen Stream (vergleichbar mit Dateiausgaben z.B. in C) geschrieben, der dann an den HTML-Client zurückgeschickt wird. Werden vom Benutzer Eingaben im Frame gemacht und dieser dann an das Servlet zurückgeschickt, so wird automatisch die Funktion „doPost()“ ausgelöst. Auf die einzelnen Elemente des Frames kann dann mit Hilfe der Funktion „getParameter“ wie auf Variablen zugegriffen werden. Entsprechend den Einstellungen werden dann auch die drei verschiedenen Teilaufgaben (Routenplanung, GPS-Datei, Steigungsdiagramm) ausgeführt. Die Inhalte der Eingabefelder (z.B. Liste der Wegpunkte) wird in eine sogenannte „ArrayList“ überführt. Der Vorteil dieser Listen ist, dass sie mit beliebigen Variablentypen (in unserem Fall zumeist Strings) gefüllt werden können und dass die einzelnen Elemente einfach ansprechbar sind. Diese ArrayList wird dann an die Klasse Routenplanung übergeben, deren Ergebnisse auch wieder als ArrayList zurückgeliefert werden. Die Ergebnisse werden dann bei der Generierung des HTML-Codes in die Seite eingebaut. Die Funktion „doPost“ erstellt genau wie „doGet“ eine neue HTML-Seite, in der aber jetzt auch die Ergebnisse enthalten sind. Um den Client zu veranlassen, nach der Routenplanung auch die berechnete Route anzuzeigen, wurde eine JavaScript Startup-Funktion in die HTML-Seite integriert. In dieser Funktion werden in Abhängigkeit der durchgeführten Aufgabe verschiedene Aktionen ausgelöst. Nach der Routenplanung wird z.B. veranlasst, dass die Karte neu gezeichnet wird. Bei der Generierung des Steigungsdiagramms wird in dieser Funktion der HTML-Code für ein neues Fenster integriert, damit das Steigungsdiagramm nicht in dem unsichtbaren Frame erscheint, sondern in einem Popup-Fenster. Der HTML-Code für dieser Fenster wird dabei in einer JS-Variablen abgelegt und diese Variable dann in der Funktion „window.open“ verarbeitet. Wenn eine GPS-Datei erzeugt wird, liefert das Servlet keinen HTML-Code , sondern eine Text-Datei. Da dies dem HTML-Client über den sogenannten „contenttype“ mitgeteilt werden kann, reagiert dieser entsprechend darauf und zeigt eine Dialogbox zur Eingabe eines Dateinamens an. Probleme bei der Einbindung Die eigentliche Integration des Servlets auf dem Server stellte sich als absolut Problemlos heraus. Die größten Probleme betrafen den Zugriff auf die Datenquellen nach dem Schritt aus der Entwicklungsumgebung auf den Server. In der Entwicklungsumgebung funktionierte das Laden der Daten aus der ODBC-Datenquelle (Access-DB) einwandfrei. Auf dem Server kam es aber immer zu einer nichtssagenden Fehlermeldung. Erste Recherchen im Internet ließen die Vermutung aufkommen, dass es Probleme mit der verwendeten Servlet-Engine (JServ) geben könnte. Daraufhin wurde Testweise die Tomcat-Engine auf einem anderen Rechner installiert. Leider trat auch dort der gleiche Fehler auf. Nach weiteren Recherchen und Versuchen haben wir dann festgestellt, dass ODBC-Datenquellen für Servlets nicht als „Benutzer-DSN“ angelegt werden dürfen sondern als „System-DSN“ definiert werden müssen, da auch die Servlet-Engine als Systemprozess läuft und somit unabhängig vom angemeldeten Benutzer ist. Die ersten Versuche mit den kompletten Navigationsdaten erbrachten Ladezeiten von fast einer Stunde beim ersten Aufruf. Zusammen mit der Gruppe Navigation konnte aber eine Lösung gefunden werden, mit der die komplette Datenbank innerhalb weniger Sekunden komplett eingelesen werden kann. Da dieser Schritt auch nur beim ersten Aufruf des Servlets notwendig ist, kommt es für die Benutzer zu keiner Verzögerung bei der Routenplanung. Ein weiteres Problem trat im Zusammenhang mit dem Speichern der GPS-Dateien auf. 33 Der InternetExplorer und Netscape verhalten sich recht unterschiedlich im Zusammenhang mit zurückgelieferten Textdateien. Der IE zeigt diese sofort im Browser-Fenster an, womit die Bedienelemente des Servlets gelöscht würden. Aus diesem Grund musste der „ContentType“ von „text/plain“ auf „application/octet-stream“ umgestellt werden. Damit geht der Browser dann davon aus, dass ein unbekanntes Binärformat folgt, das in eine Datei gespeichert wird. Anzeige der gehighlighteten Route in der Karte Nach Berechnen der Route wird eine Liste von Kanten an den Client übergeben. Damit die Kante in der Karte angezeigt wird, sind einige Modifikationen am ArcIMS notwendig. Der ArcIMS unterstützt werksseitig keine Möglichkeit zur Routenplanung. Esri hat hierfür ein eigenes Produkt, den RoadMapIMS, entwickelt. Unser Ansatz beruht darauf, dass man im ArcIMS Anfragen erstellen kann und das Ergebnis der Abfrage gehighlightet wird. Zur Verwirklichung der Anfragen haben wir die Javascriptfunktion, die die ArcXML Anfragen für den Server generiert, geändert, so dass hier standardmäßig eine Anfrage der Form: Erstelle neues Layer, Zeige in diesem Layer Elemente aus Shapefile x an, und zwar jene mit der ID y oder ID z ... Diese Lösung arbeitet bei einer geringen Anzahl von hervorzuhebenden Kanten recht gut und schnell. Jedoch besteht eine Beschränkung bei der Abfrage auf ca. 40 Elemente. Werden mehr als diese Anzahl von Elementen angefragt, ignoriert der ArcIMS die Anfrage einfach. Dies lässt sich jedoch durch eine Aufteilung der Anfrage in mehrere Teilanfragen umgehen. Nachteil dieser Lösung ist jedoch, dass die Bearbeitungszeit linear zur Anzahl der Anfragen steigt. Im Falle unseres Projektes übersteigt deswegen die Zeit, die der ArcIMS zum Highligting der Route braucht, die Zeit zur Routenberechnung um ein Vielfaches. Demzufolge ist diese Lösung eigentlich als nicht geeignet einzustufen. 2.3.3.4 Anbindung der Webseite an den ArcIMS Neben der Routenplanung war es ebenfalls Aufgabe der Gruppe Technik, die Infrastruktur für die „normale“ Kommunikation der Webseite mit dem ArcIMS zur Verfügung zu stellen. Diese Aufgabe beinhaltet die Installation der einzelnen Komponenten. Für die Auswahl der Komponenten waren vor allem auch Kostengründe entscheidend. Obwohl wir uns bei Webserver und Servlet-Engine auf Open-Source Produkte gestützt haben, die laut eigenen Angaben unter Windows noch Fehler aufweisen, haben sie sich im Einsatz als stabiler als der ArcIMS erwiesen. Als Webserver verwendeten wir den Apache Webserver in der Windows Version, dieser Webserver ist unter www.apache.org verfügbar und als Windows-Version erhältlich. Die Installation dieser Komponente ist als problemlos einzustufen. Als Servlet-Engine wird Tomcat 3.x eingesetzt. Diese ist auch unter der Apache License auf www.apache.org erhältlich. Bei Tomcat handelt es sich um die Referenzimplementation des Servlet Standards 2.2 Tomcat ist komplett in Java geschrieben und deswegen plattformunabhängig. Tomcat kann als standalone Lösung mit minimaler Konfiguration als Webserver mit integrierter Servlet-Engine benutzt werden. Wir haben uns jedoch zur Integration von Tomcat in den Apache Web-Server entschlossen. Die Einbindung erfordert einige Konfigurationsarbeiten, die jedoch in der Dokumentation von Tomcat recht gut beschrieben sind. Damit der ArcIMS unabhängig vom Benutzer des PC’s erreichbar ist werden sowohl der Apache als auch Tomcat als Dienst gestartet. Aufgrund eines Fehlers in WindowsNT funktionierte dies bei Tomcat nicht richtig. Überraschenderweise behob das updaten des Internet Explorers auf Version 5.5 dieses Problem. Anbindung des ArcIMS Die normale Anbindung des ArcIMS an den Client funktioniert sehr ähnlich zu der oben beschriebenen Anbindung des Clients an das Routenplanungsservlet. Der ArcIMS benutzt einen nicht sichtbaren Frame. Wenn der Client eine Anfrage stellen will, wird diese auf dem Client mittels JavaScript generiert und in die HTML_Form geschrieben. Danach wird diese Form an den Servlet-Connector von Esri geschickt. 34 Hierbei handelt es sich um ein Servlet, das den AXL Code aus der Form ausliest und an den Applicationserver weiterleitet. Die Anwort des Applicationservers wird in die neugenerierte HTML Seite codiert und an den Client zurückgesendet. Nach der übertragung an den Client wird mittels der JavaScript Funktion onLoad() die Verarbeitung der Antwort auf dem Client angestoßen. Dieser decodiert die in AXL codierte Antwort und zeigt die generierte Karte an. Der hier von ESRI gewählte Weg das AXL auf Clientseite zu erzeugen und zu parsen, ist für die recht schlechte Performance des HTML-Clients verantwortlich. Die zur Erzeugung und Verarbeitung des AXL benötigten Funktionen machen den Clienten sehr groß und unübersichtlich. Übersicht über die Kommunikation von Client und Server 2.3.3.5 Schlussbetrachtung Zusammenfassend kann man sagen, dass die Erstellung eines Routenplaners mit den von ESRI standardmäßig zur Verfügung gestellten Tools aus Performancegründen nur eine suboptimale Lösung sein kann. Die Erzeugung von AXLCode und das Zwischenspeichern der kompletten SessionInformationen in diesem AXLCode auf dem Client sind aufgrund der gewählten Lösung in Javascript 35 sowohl recht sperrig als auch langsam. Aufgrund der schlechten Code-Qualität des von ESRI gelieferten Javascriptcodes (z.B. gleichlautende Funktionen, die an verschiedenen Stellen eingebunden werden) ist eine Erweiterung und Optimierung nur mit vergleichsweise hohem Aufwand zu bewerkstelligen. Als besonders nachteilig hat sich herausgestellt, dass der ArcIMS nicht in der Lage ist, Datenbankanfragen mit vielen Elementen schnell zu verarbeiten. Auch sonstige Unzulänglichkeiten des ArcIMS machen die Arbeit mit diesem Programmsystem recht schwierig, und oftmals muss man getrennte Testszenarien erzeugen, um den Fehlern des ArcIMS auf die Spur zu kommen. So ist zum Beispiel zu beobachten, dass eine Anfrage nach Features auf einem Shapefile eigenartigerweise nicht auf der ersten Spalte und dann nur bis zu einer bestimmten Anzahl von Spalten funktioniert. Die restlichen Spalten werden einfach ignoriert und die Anfrage liefert kein Ergebnis. 2.3.3.6 Zusammensetzung der Gruppe Markus Tondorf: Ralf Müller: Ariane Middel: Annette Eicker: Exploration verschiedener Kommunikationsmöglichkeiten zwischen Client und Server, Realisierung Anbindung Routenplanung Infrastruktur, Installation und Wartung ArcIMS, Anpassung HTML-Viewer Skripte Anpassung HTML-Viewer Skripte, Schnittstellenbeauftragte, Graphisches Konzept Webseite. Pflichtenheft, Projektdokumentation, Exploration Kartographische Möglichkeiten ArcIMS 36 2.3.4. Gruppe Gestaltung 2.3.4.1. Allgemeines Die Aufgabe der Gruppe „Gestaltung“ umfaßte im wesentlichen zwei Aufgaben. Zum einen mußten die Karte mit den Symbolen für die verschiedenen Sehenswürdigkeiten erstellt werden und zum anderen die Website und die Kommunikation zwischen Client und Server. Um eine Übersicht über die vielen anstehenden Arbeiten zu erhalten, entschlossen wir uns, eine Graphik zu erstellen, welche die Funktionsweise und die Möglichkeiten der zukünftigen Website aufzeigen sollte. Die Graphik ist nachfolgend dargestellt: Startseite Bericht über das Projekt Hauptseite Bedienungsanleitung Route berechnen Logo von Bonn Bedienelemente Auswahl Unterpunkte Auswahl Oberpunkte Layer aus / ein Auflistung Sehenswürdigkeiten Karte 2.3.4.2. Gruppenaufteilung Anhand der Graphik konnte man recht gut erkennen, welche Aufgaben im Verlauf der Durchführungsphase zu erledigen waren. Die verschiedenen Themenbereiche wurden wie folgt aufgeteilt: Kathrin Haverkamp: - Erstellung der Karte mit ArcMap und ArcIMS - Sonstige Arbeiten mit ArcIMS - Gruppensprecherin 37 Markus Kosbab: - Programmierung der JavaScripts - Bearbeitung des Quell – HTML- Codes Dirk Schröder: - Programmierung der JavaScripts Alexandra Höfer: - Gestaltung der Website - Arbeiten mit Macromedia Fireworks und Dreamweaver Thomas Krompholz: - Erstellung der Signaturen mit Macromedia Fireworks Boris Giesen: - Bedienungsanleitung 2.3.4.3. Durchführung Karte Bei der Gestaltung der Karte gingen wir wie folgt vor: Die Grundlage der Karte bildet zum einen eine Rasterkarte im Maßstab 1:10.000 sowie die Shapefiles. Die von uns ab einem Maßstab von 1:10.000 oder kleiner verwendete Rasterkarte wurde aus Bildschirmfotos (Screenshots) der TK10 erstellt und anschließend georeferenziert. Mit ArcMap legten wir zunächst die Optik der Karte fest, da ArcIMS zu Beginn noch nicht zur Verfügung stand. Diese ArcMap Vorlage wurde dann farblich an die Rasterkarte angepaßt, damit der Übergang von den Vektor- zu den Rasterdaten harmonisch abläuft. Weiterhin waren noch die verschiedenen Linienbreiten und Strichstärken sowie die Größen der Signaturen für die unterschiedlichen Zoomstufen zu ermitteln und umzusetzen. Linienförmigen Darstellungen: Bundesautobahn Die Art der Linie ändert sich während der Zoomvorgänge nicht, lediglich die Breite wird in den einzelnen Maßstäben verändert. Die Vektordaten werden vom Maßstab 1:10000 – 1:1000000 dargestellt. Dabei ist die Linie im größten Maßstabsbereich 1:10000 – 1:15000 mit 7 Pt am breitesten und im kleinsten Bereich 1:100000-1:1000000 mit 3 Pt am Schmalsten. Schnellstrassen Die Liniendarstellung ist vom Maßstab 1:10000 – 1:50000 zweifarbig und wird bei den kleineren Maßstäben aufgrund der geringen Linienbreite nur noch einfarbig angezeigt. Der Shapefile der Schnellstrassen wird wie die BAB vom Maßstab 1:10000 – 1:1000000 dargestellt. Linienbreiten variieren von 7 Pt im größten Maßstabsbereich bis zu 2 Pt im kleinsten. Durchgangsstrassen Die Liniendarstellung ist bis zum Maßstab 1:25000 zweifarbig und wird anschließend aufgrund der geringen Linienbreite einfarbig angezeigt. Die Durchgangsstrassen werden nur bis zu einem Maßstab von 1:100000 dargestellt. Linienbreiten variieren von 6 Pt im größten Maßstabbereich bis zu 2 Pt im kleinsten. Nebenstrassen Die Nebenstrassen werden nur bis zu einem Maßstab von 1:75000 dargestellt. Eine zweifarbige Darstellung erfolgt dabei in dem Maßstabsbereich 1:10000 – 1:50000 und wechselt danach auf eine einfarbige Darstellung. Linienbreiten variieren von 6 Pt im größten Maßstabbereich bis zu 1 Pt im kleinsten. Fußgängerzonen Die Fußgängerzonen werden wie die Nebenstrassen nur bis zu einem Maßstab von 1:75000 angezeigt. Eine zweifarbige Darstellung findet bis zu einem Maßstab von 1:25000 statt. Im Maßstabsbereich von 1:25000 – 1:75000 werden die Vektordaten einfarbig präsentiert. Die Linienbreiten variieren von 6 Pt im größten bis zu 1Pt im kleinsten. 38 Fuß-, Feld- und Waldwege Die Fuß-, Feld- und Waldwege werden ab einem Maßstab von 1.50000 dargestellt. Eisenbahnlinien Eisenbahnlinien werden immer in der Karte dargestellt Signaturen Für die Darstellung in der Karte sollten Signaturen verwendet werden, die 1.) 2.) 3.) 4.) 5.) eindeutig die darzustellende Begebenheit anzeigen einfach strukturiert sind farblich voneinander zu unterscheiden sind sich optisch in das Bild der Karte eingliedern und dennoch leicht aus ihr heraustreten eine geringe Größe haben, damit es wenig zu Überschneidungen kommt und das Umfeld um die Begebenheit sichtbar bleibt. Beispiele für solche Signaturen haben wir aus Fahrradkarten und verwandten Projekten wie Routenplanern verwendet. Alle Signaturen wurden neu erstellt oder überarbeitet und auf das Fahrradprojekt abgestimmt. Dazu musste jeweils der Nutzen und die Notwendigkeit für die Zielgruppe im Vordergrund stehen. Wir haben für jede einzelne Signatur 2 verschiedene Größen entworfen, die nach der Implementierung in die Karte je nach Maßstab, bzw. Zoomstufe unterschiedlich groß angezeigt werden. Stufe 1: Signaturgröße 30*30 Pixel im Maßstab >1:10000 Stufe 2: Signaturgröße 16*16 Pixel im Maßstab 1:10000 – 1:25000 Folgende Signaturen wurden verwendet: Schwimmbäder Zeltplätze Fähren Friedhöfe Sport und Freizeit Denkmäler Hotel Jugendherbergen Kirchen und Burgen Krankenhäuser Museen 39 Park- und Grünanlagen Polizei Taxistände Theater Als die Karte mit ArcMap dann komplett erstellt war, mußte das Ergebnis noch in ArcXML übertragen werden. Dies bedeutete, daß wir die komplette Karte mit dem ArcIms Author noch einmal gestalten mussten, da es keine Möglichkeit gab die mit ArcMap erzeugte mxd-Datei in den ArcIms Author zu importieren. Zur Neuerstellung benutzten wir den ArcIms Author. Die Shapefiles konnten über den ArcCatalog, wie auch bei ArcMap, in den Author importiert werden. Anschließend wurden die Daten in gleicher Weise wie zuvor in ArcMap bearbeitet. Es kam dann aber zu massiven Problemen bei der Darstellung der georeferenzierten Rasterkarte und bei den Signaturen, die als Image für die Punkte eingeführt werden sollten. Die einzige uns bekannte Möglichkeit zur Lösung dieses Problems war die Editierung des AXL-Files per Hand. Dies führte aber zu einem weiteren großen Problem, denn nach der Editierung von Hand war die Datei mit dem Author nicht mehr zu lesen. Dieses Problem hat uns dann auch sehr lange aufgehalten, da wir zunächst davon ausgingen, daß das Problem durch einen Fehler in der editierten AXL-Datei hervorgerufen wurde. Es stellte sich aber heraus, daß die Datei korrekt war und das Problem beim Author lag. Damit wir uns nun die überarbeitete Datei überhaupt ansehen konnten, mußte ein MapService eingerichtet und gestartet werden. Wir hatten somit nun die Möglichkeit die Karte mit einem konventionellen Browser zu betrachten. Es bedeutete aber auch, daß bei jeder kleinsten Änderung der Karte der MapService neu gestartet werden mußte, was jeweils ca. fünf Minuten in Anspruch nahm und auf die Dauer sehr nervte. Website Bevor mit dem Kreieren des Layouts für die Internetsite begonnen werden konnte, mußten wir prüfen, welche Komponenten der ArcIms benötigt, damit die Funktionsfähigkeit der Karte und aller anderen Funktionen gesichert ist. Aus diesem Grund haben wir als ersten Schritt zunächst ein Testprojekt mit einer „Dummy Karte“ erstellt. Der ArcIms Designer bot uns die Möglichkeit, bei Projekten zwischen verschiedenen Layouts und Funktionalitäten zu wählen. Wir haben nun eine für uns am besten geeignete Struktur ausgesucht und uns das zugehörige Frameset vom Designer erstellen lassen. Dieses vorgegebene Frameset haben wir nun eingehend analysiert. Wir kamen zu dem Schluss, dass nur zwei Frames des vorgegebenen Framesets wirklich für unser Projekt notwendig waren (im Schaubild in pink). Somit hatten wir nun die Möglichkeit, unser eigenes Frameset zu entwerfen und mussten lediglich die beiden ArcIms-Frames integrieren. Das von uns verwendete Frameset hat folgende Struktur: 40 Logoframe Toolframe Layerframe Topics Mapframe Listenframe Postframe Unsichtbar für den User Route Es werden im Folgenden kurz die einzelnen Frames und Ihre Funktionen erläutert. Logoframe: Vordergründig wird dieser Frame benutzt um das Logo unseres Projektes darzustellen. Da sich dieser Frame aber während der ganzen Nutzungsphase des Users nicht verändert und in jeder Projektphase vorhanden ist, wird er intern von uns benutzt, um die verschiedensten Variablen und auch die Punktliste für die Routenplanung zwischenzuspeichern. Toolframe: In diesem Frame liegt ein großer Teil der Programmierarbeit, da hier die Bedienelemente angeordnet sind und ein Hauptteil der Javascripte untergebracht ist. Man könnte ihn als eine Art Zentrale bezeichnen, in dem die meisten Verknüpfungen unserer Seiten zusammen laufen. Hinter den Bedienelementen verbergen sich direkt von ArcIms übernommene Funktionen, wie z.B. zoomen, verschieben etc., aber auch selbst entwickelte Funktionen (Punkt in Route aufnehmen, letzten Routenpunkt löschen, Route berechnen). Topics: Im Frame Topics können die verschiedenen Layer ausgewählt werden. Bei Klick auf einen der hier aufgeführten Oberpunkte öffnet sich im Layerframe eine dem Oberpunkt entsprechende HTML-Seite mit den jeweiligen Unterpunkten. So stehen unter dem Oberpunkt Sport/Freizeit z.B. die Unterpunkte Bäder, Parks und Sportplätze zur Verfügung. Durch einen Klick z.B. auf Bäder erscheint im Listenframe eine namentliche Auflistung aller in der Karte vorhandenen Bäder unter Punkt Listenframe. Oberhalb dieser Liste befinden sich noch zwei Buttons, mit denen der zuvor gewählte Layer oder geschaltet werden kann. Drückt man den EIN Button, wird eine von uns geschriebene Javascriptfunktion aufgerufen, welche aber im Grunde nur die von ArcIms vorgegebenen Funktionen „Set active Layer() und Set Layer visible() aufruft .Mit diesen beiden Funktionen werden der Layer aktiv gesetzt und die Signaturen, in diesem Fall die Bäder, eingeschaltet. Ein Druck auf AUS bewirkt, dass die Symbole mit einer weiteren Javascriptfunktion wieder ausgeschaltet werden, der Layer bleibt jedoch aktiv. Layerframe: In diesem Frame werden, wie oben schon erwähnt, die jeweiligen Unterpunkte zu einem Oberpunkt angezeigt. Hier trifft man die Auswahl, welcher Layer aktiviert werden soll. 41 Listenframe: Der Listenframe hat momentan nur zwei Aufgaben. Zum einen befinden sich die Buttons zum Ein- und Ausschalten der Layer in diesem Frame, des weiteren werden die im Kartenbild dargestellten Objekte hier namentlich aufgeführt. Hinter den Objekten liegt eine Javascriptfunktion, durch die das entsprechende Objekt beim Anklicken in der Mitte des Kartenausschnitts angezeigt wird. Der angezeigte Kartenausschnitt stellt eine Fläche von 1 km² dar. Routeframe: Im Routenframe ist das Applet der Routenplanung eingebunden. Dieser Frame ist für den User nicht sichtbar. Mapframe, Wir haben von ArcIms lediglich den Mapframe, der zur Darstellung der Karte benötigt wird, und den Postframe, der zum zwischenspeichern interner Variabeln dient, übernommen. Postframe: Der Postframe ist ebenso wie der Routeframe nicht für den Anwender sichtbar. Bei der Integrierung der ArcIMS Frames war es sehr wichtig, die von ArcIMS vorgegebenen Framebezeichnungen beizubehalten. ArcIMS wäre sonst nicht in der Lage gewesen, die internen Informationen korrekt abzulegen bzw. wiederzufinden. Zur Erstellung unserer Framesets und zur weiteren Bearbeitung unserer Seite benutzten wir die Programme Macromedia Dreamweaver, Macromedia Fireworks sowie Corel Draw und Corel PhotoPaint. Diese Programme haben uns gerade bei der Gestaltung der Website viel Arbeit erspart. Macromedia Dreamweaver ist einem Grafikprogramm sehr ähnlich ist, und man die Möglichkeit hat, HTML-Seiten nach der Methode WYSIWYG (What You See Is What You Get) zu erstellen. Die Seiten werden auf einer grafischen Oberfläche gestaltet und Dreamweaver erstellt den entsprechenden HTML-Code, sowie benötigte Standart Javascripte. Die Nachbearbeitung der Frames und der Quelltexte musste jedoch von Hand erfolgen, da gewisse Feinheiten oder unsere speziellen Javascriptfunktionen anders nicht zu realisieren waren. Kommunikation zwischen Client und Server Beim Einstieg in das Projekt hat man zunächst zwei Hauptbedienelemente, zum einen die Toolbar, mit der man Kartenfunktionalitäten und die Routenplanung steuern kann, zum anderen die Topics, mit denen man die verschiedenen Layer ein und aus schalten kann. Zu den Layern: Die Layer haben wir wie bereits erwähnt unter‚Topics zu vier Hauptthemenbereichen zusammengefasst. Beim Klick auf einen der Unterpunkte, wie z.B. Krankenhäuser (unter Informationen) wird auf drei verschiedene Grundfunktionalitäten von ArcIMS zugegriffen. Zunächst wird ein bestimmter ArcIMS Layer aktuell und anschießend auf visible, also sichtbar, gesetzt. Zum Schluss wird die Karte noch aktualisiert. Das aktuell setzen wird benötigt, um Aktionen die im Kartenbild stattfinden, wie z.B. einen Punkt auswählen, erfassen zu können. Das visible setzen des Layers bewirkt, dass die Symbole des gewählten Unterpunktes, hier ein rotes Kreutz, in die Karte eingeblendet werden. Zusätzlich wird eine Liste aller Krankenhäuser im Listenframe angezeigt. Zur Toolbar: Im folgenden wird eine Übersicht über die Toolbar aufgezeigt und die verschiedenen Buttons erläutert Grundfunktionalitäten: Zu den von uns verwendeten Grundfunktionalitäten von ArcIMS zählen: Gesamtübersicht: Diese Funktion blendet eine kleine Übersichtskarte in der linken oberen Ecke des Kartenfensters ein. 42 Zoom in: Wird dieser Button angeklickt, hat man die Möglichkeit in der Karte ein Rechteck aufzuziehen, dessen Inhalt dann vergrößert dargestellt wird. Man Zoomt sich also in die Karte. Zoom out: Diese Funktion bewirkt das Gegenteil der zuvor beschriebenen Funktion. Hier wird schrittweise die Zoomstufe verkleinert. Letzte Zoomstufe: Mit diesem Button wird die zuvor eingestellte Zoomstufe wiederhergestellt. Pan: Mit dieser Funktion hat man die Möglichkeit, das Kartenbild „anzufassen“ und nach Belieben zu verschieben. Man kann so z.B. einer Route folgen, indem das Kartenbild nachgeschoben wird, wenn der Weg der Route aus dem Kartenfenster herausläuft. Informationen zu einem Punkt: Die Funktion Identify zählt zwar zu den Grundfunktionen von ArcIMS, war für unsere Zwecke jedoch so nicht zu verwenden. Die identify Funktion liefert alle Informationen, die zu einem Kartenpunkt abgelegt worden sind. Da dies zum Teil sehr viele Informationen waren, welche zudem noch ohne jegliche Formatierung vorhanden waren, konnten wir identify so nicht verwenden. Zur Funktionsweise: Ist ein Layer aktiviert, so werden die betreffende Symbole in der Karte angezeigt. Klickt man nun den „I Informationen zu einem Punkt“ Button an, und anschließend auf eine Signatur in der Karte, so werden die zu diesem Objekt vorhandenen Informationen angezeigt. Da wir jedoch nicht an allen Informationen interessiert waren, haben wir nur die für uns interessanten herausgefiltert. Diese geben wir dann mit dem „Alert-Befehl“ an den Anwender weiter. Sind z.B. Museen ausgewählt, so kann man sich nun beispielsweise Informationen zu Öffnungszeiten, Eintrittspreisen oder Telefonnummern ansehen. Kleinste Zoomstufe: Diese Funktion setzt den Zoomfaktor auf die kleinste Stufe. Somit erhält man eine Gesamtübersicht unserer kompletten Karte im Kartenfenster. Im folgenden wir kurz am Beispiel „Kleinste Zoomstufe“ beschrieben, wie diese von ArcIms gebotenen Grundfunktionalitäten aufgerufen werden. Es handelt sich lediglich um eine Zeile: „ href="javascript:parent.MapFrame.clickFunction('fullextent')" “ Von unserer Seite Aus wurden dann noch die zwei Funktionen „Legende“ und „Bedienungsanleitung“ hinzugefügt: Legende: Erklärung der verschiedenen Signaturen und Layer Bedienungsanleitung: Hier kann sich der User über die Benutzung des Karthographie-Projektes informieren. Es werden die Schritte vom Einstieg in die Seite bis zur fertigen Route, sowie alle möglichen Einstellungen erläutert. Diese beiden Buttons führen jeweils in ein Popup Fenster, welches dann den jeweils betreffenden Inhalt anzeigt. 43 Als drittes haben wir noch die Buttons für die Routenplanung. Hinter diesen verbirgt sich dann der Hauptteil der Javascriptprogrammierung: Punkt in Route aufnehmen: Hier haben wir unter anderem wieder die von uns modifizierter Funktion identify verwendet. Wird der „In Route aufnehmen“ Button betätigt, startet eine Javascriptfunktion, welche zunächst überprüft, welcher Layer momentan aktiviert ist. Diese Information wird festgehalten und anschließend der Layer mit allen Knoten aktiv gesetzt. Nun startet die selbe Funktion, die auch bei den „Informationen zu einem Punkt“ verwendet wurde. Wenn der Nutzer nun in die Karte klickt, wird aus den Informationen die uns die identify Funktion zurücksendet die Punkt ID herausgesucht. Diese wird dann als Variable im Logoframe zwischengespeichert. Nun geht ein Popupfenster auf, in welchem man angeben muß, ob der Punkt Startpunkt, Endpunkt oder ein Zwischenpunkt werden soll. Wird „Startpunkt“ angewählt, so überprüfen wir zunächst, ob schon ein Startpunkt existiert. Ist dies nicht der Fall, wird die Punkt ID des gewählten Punktes im Logoframe als Startpunktvariable abgespeichert. Existiert bereits ein Startpunkt, wird der Benutzer gefragt, ob er den alten Startpunkt durch den neuen ersetzen möchte. Analog geschieht dies auch beim Endpunkt. Zwischenpunkte werden in einem Array abgelegt, welches sich ebenfalls im Logoframe befindet. Zwischenpunkte werden einfach nur an das bestehende, zunächst leere Array angefügt. Eine Route muß also mindestens aus einem Start- und einem Endpunkt bestehen. Zwischenpunkte sind optional. Als letzter Schritt wird der zuvor aktivierte Layer wieder aktiv gesetzt. Route verwerfen: Wie gerade beschrieben, werden die Zwischenpunkte in einem Array abgelegt. Wird nun die 44 Funktion „Route verwerfen“ angeklickt, erscheint ein Popupfenster, worin man die Wahl zwischen „ganze Route verwerfen“ oder „letzten Routenpunkt löschen“ hat. Route Berechnen: Hier geht zunächst ein Popup Fenster auf, in welchem die Einstellungen für die Kostenfunktionen getätigt werden können. Diese Einstellungen werden ebenfalls im Logoframe zwischengespeichert. Beim Klick auf BERECHNEN werden sämtliche Daten die sich inzwischen im Logoframe angesammelt haben, an das Servelet übergeben und an den Server versendet. 2.3.4.4. Resümee der Gruppe Gestaltung Das Arbeiten in der Gruppe Gestaltung erwies sich gerade in den ersten Wochen der Durchführungsphase als nicht besonders einfach. Die Kommunikation zwischen den einzelnen Gruppenmitgliedern war sehr schlecht, wodurch anstehende Arbeiten oft doppelt getätigt wurden oder gar nicht. Erst nachdem wir auf Anraten der Betreuer eine Übersicht über die Website gefertigt hatten, wurden die Aufgabenfelder klar und die Arbeiten konnten besser verteilt werden. Als sehr störend empfanden wir die Instabilität des ArcIMS. Gerade gegen Ende des Projektes wurden wir durch diese Softwareschwäche immer wieder aufgehalten, so dass einige Gruppenmitglieder tagelang im Gislabor verbringen mussten. 45 3. Resümee: Zunächst finden wir es sehr erfreulich, feststellen zu können, dass das Ziel, welches wir uns am Anfang des Projektes gesetzt hatten zum größten Teil erreicht werden konnte. Auch wenn nicht alle anfangs geplanten Ideen verwirklicht wurden, so sind wir von studentischer Seite aus durchaus zufrieden mit dem erzielten Ergebnis. Es ist uns gelungen, eine lauffähige Version eines Fahrradroutenplaners für die Stadt Bonn zu erstellen, welche in eine Webseite eingebunden ist und demnächst im Internet für die Allgemeinheit zugänglich gemacht werden kann. Der Lernerfolg dieses Projektes ist aus unserer Sicht ebenfalls als gut zu bewerten. Besonders die schon unter Punkt 1.2 erwähnten Schlüsselqualifikationen wie Team- und Organisationsfähigkeit wurden im Laufe der Zeit gesteigert. Zu Beginn der Durchführungsphase war die Kommunikation innerhalb der einzelnen Gruppen und zwischen den verschiedenen Gruppen noch relativ dürftig. Dies änderte sich jedoch mit zunehmendem Verlauf deutlich, so dass zum Ende hin von einer guten Zusammenarbeit geredet werden konnte. Allerdings können diese Aussagen nicht verallgemeinert werden, denn es stellte sich schnell heraus, dass sich nicht alle Teilnehmer mit gleichem Engagement beteiligten. Dies führte zu einer sehr unterschiedlichen Verteilung des Arbeitsaufwandes (und somit auch des Lernerfolges) zwischen den einzelnen Teilnehmern. Trotzdem fanden wir im Nachhinein die Aufteilung in selbständig arbeitende Einzelgruppen sinnvoll, da bei einer so großen Gesamtgruppe das Projekt vermutlich gar nicht anders hätte bewerkstelligt werden können. Eine Verbesserungsmöglichkeit hätte vielleicht darin bestehen können, die Anzahl der Projektteilnehmer zu reduzieren, da ein effektives Arbeiten mit einer Gruppenstärke von über 20 Personen sehr schwierig und unübersichtlich ist. Auch innerhalb der Einzelgruppen hätte eine Reduzierung eventuell die Motivation der einzelnen Mitglieder verstärken können und die Kommunikation wäre dadurch wesentlich erleichtert worden. Ein Problem, welches unsere Arbeit an dem Projekt wesentlich behinderte, war die Tatsache, dass die softwarebezogenen Randbedingungen oft nicht optimal waren. In diesem Zusammenhang ist besonders die Instabilität des ArcIMS zu nennen, welche bis zum Ende des Projektes immer wieder zu Verzögerungen führte. Gerade Gruppen, die für ihr Fortkommen auf die Lauffähigkeit des ArcIMS angewiesen waren, hatten mit großen Nachteilen zu kämpfen. Ein weiterer Punkt den wir noch ansprechen möchten, ist die Vorbereitung und Betreuung des Projektes. In diesem Zusammenhang ist zunächst die große Motivation und Hilfsbereitschaft von seiten der Projektleiter sehr positiv hervorzuheben. Man konnte ihnen zu jeder Zeit ihren Enthusiasmus für dieses Projekt anmerken, welcher auch förderlich für die Motivation der gesamten Gruppe war. Allerdings hatten wir manchmal das Gefühl, dass die Erwartungen, die in uns gesetzt wurden oft zu hoch angesetzt und der Arbeitsumfang von den Betreuern oft unterschätzt wurde. Ein Ansatz, der bei zukünftigen Projekten eventuell zu einem effektiveren Arbeiten führen könnte, wäre eine optimalere Nutzung der Seminarphase. Es ist zwar vorteilhaft, dass durch Vorträge ein einheitliches Grundwissen geschaffen wurde, unserer Meinung nach wäre es jedoch sinnvoll gewesen, die Einteilung der Einzelgruppen schon vor Beginn der Seminarphase vorzunehmen und die Vorträge dann mehr auf die Problematik der einzelnen Gruppen zuzuschneiden. Dies hätte ein vorzeitiges Einarbeiten der Gruppen ermöglicht. Insgesamt lässt sich sagen, dass das Projekt „Fahrradroutenplaner“ für uns als Studenten eine interessante und reizvolle Aufgabe dargestellt hat, welche uns auch einige Erfahrungen und Erkenntnisse ermöglicht hat, die für uns bei späteren Tätigkeiten mit Sicherheit sehr wertvoll werden können. Auf der anderen Seite bleibt jedoch auch die Einsicht, dass ein solches Projekt mit sehr viel Arbeit verbunden ist, denn zumindest für die unter uns, die sich sehr engagiert haben, lag der Arbeitsaufwand ein Vielfaches höher als dies bei anderen Vertiefungsfächern der Fall war. Dies führt dann auch zu einer etwas gespaltenen Meinung der einzelnen Teilnehmer, wenn es um die Frage geht, ob sie ein zweites Mal an solch einem Vertieferprojekt teilnehmen würden Last but not least möchten wir uns noch bei allen Projektbetreuern für ihre Bemühungen und die gute Zusammenarbeit bedanken! 46 Persönliche Stellungnahmen der Projektbetreuer Liebe Mitstreiter, das nunmehr fast hinter Euch liegende Vertieferseminar hat allen eine Vielzahl von Eindrücken und Erfahrungen gebracht. Eigenverantwortliches Handeln im Rahmen dieses Projektes zu erlernen, sich und seine Umgebung dabei fortfährend zu motivieren sowie die Unzulänglichkeiten der GIS-Technologie als Herausforderung der kommenden Software-Generationen zu erkennen, waren aus meiner Sicht die Gründe, ein derartiges Projekt durchgeführt zu haben. Am Ende eines derartigen Projektes die positiven oder negativen Erlebnisse individuell gewichten zu wollen, wird dem von Euch erzielten Ergebnis nicht gerecht. Arbeitseinsatz und Motivation vieler Teilnehmer haben sich im Verlauf des Projektes zunehmend gesteigert und zu einem meine Erwartungen übertreffenden Projektergebnis geführt. Die teilweise im vergangenen Sommersemster zu beobachtende Eigendynamik hatte schon etwas Verblüffendes an sich. Sie vermittelte dann den sich am Ende wohl zu bestätigenden Eindruck, dass dieses Projekt zu einem erfolgreichen Abschluß kommen würde. Meine aus diesem Projekt gewonnene Erfahrung ist, dass auch etablierte und marktverfügbare Softwareprodukte mit ihren Schwächen einen ganzen Jahrgang von Vertieferstudent/en/innen für Tage und Wochen aushebeln und an der Weiterarbeit hindern können. Auch an dieser Stelle wieder einmal diesbezüglich darauf hingewiesen worden zu sein, betont den weitreichenden Bedarf an Forschungsaktivitäten im Umfeld der GIS. Am Ende des Vertieferseminars angekommen wünsche ich allen einen weiteren, positiven Verlauf des Studiums und bedanke mich herzlich für das faire und offene Miteinander in den vergangenen 12 Monaten. Christoph Averdung 47