Konzeption und Entwicklung einer GPS
Transcription
Konzeption und Entwicklung einer GPS
DIPLOMARBEIT Konzeption und Entwicklung einer GPS-gestützten mobilen GIS-Anwendung auf einem PDA zum Einsatz für Umweltaufgaben vorgelegt von Sandra Exner Glümerstraße 14 76185 Karlsruhe Matr.-Nr.: 012562 FH Karlsruhe – Hochschule für Technik – Fachbereich Geoinformationswesen Studiengang Kartographie & Geomatik Studienschwerpunkt Geoinformatik Wintersemester 2004/2005 unter Leitung von Prof. Dr.-Ing. G. Schweinfurth Erklärung Hiermit erkläre ich an Eides Statt, • dass ich die vorliegende Studienarbeit selbstständig angefertigt, • keine anderen als die angebebenen Quellen benutzt, • die wörtlich oder dem Inhalt nach aus fremden Arbeiten entnommenen Stellen, bildlichen Darstellungen und dergleichen als solche genau kenntlich gemacht und • keine unerlaubte fremde Hilfe in Anspruch genommen habe. Karlsruhe, 16. März 2005 Sandra Exner I Diese Arbeit widme ich meinem Sohn Luca Pascal Exner. II Danksagung An dieser Stelle möchte ich mich bei allen bedanken, die mich während der Zeit des Studiums unterstützt und zum Gelingen dieser Arbeit beigetragen haben. Der größte Dank geht an meinen Sohn Luca. Er hat auch in den schwereren Zeiten des Studiums immer gut mitgemacht. Desweiteren geht mein besonderer Dank an • Antje Gerdes die mich auf die Idee gebracht hat zu studieren. • meine beiden Schwestern Andrea und Nicola Exner, die mich in allen Lagen immer bestmöglichst unterstützt haben. • Britta Feierstein, die immer für mich da war, wenn ich sie brauchte. • Petra Noè, die stets ein offenes Ohr für mich hatte und die Arbeit korrigiert hat. • Sabine Alesius fürs Korrekturlesen. • Herrn Prof. Dr.-Ing. G. Schweinfurth für die Leitung dieser Arbeit seitens der FH Karlsruhe. • Heinz-Georg Pankow für die Betreuung dieser Arbeit im ITZ. • den Sachgebietsleiter des Referats 53.2 der LFU (ITZ) Manfred Müller und Wolfgang Schillinger für die fachliche Unterstützung. • meinen Zimmerkollegen Vicente Aguayo für die Unterstützung bei der Anfertigung dieser Ausarbeitung und die nette Aufnahme in seinem Büro. • alle Mitarbeiter der LFU des Referats 53.2 (ITZ). Besonders auch an Ulrich Hönig fürs Korrekturlesen, an Falk Welker, der immer versucht hat mich moralisch zu unterstützen und an Heiko Luginsland für die Hilfe bei der Anfertigung dieser Ausarbeitung. Es hat wirklich viel Spaß bei Euch gemacht ! III Inhaltsverzeichnis 1 Einleitung ...................................................................................................... 1 1.1 Die Naturschutzverwaltung in Baden-Württemberg.................................. 1 1.2 Das Umweltinformationssystem Baden-Württemberg (UIS) ...................... 2 1.3 Das Räumliche Informations- und Planungssystem (RIPS).......................... 2 1.4 Das Projekt PaUla ..................................................................................... 5 2 Aufgabenstellung und Zielsetzung ............................................................. 7 3 Technische Grundlagen ................................................................................ 8 3.1 Mobile Hardware ..................................................................................... 8 3.1.1 Anforderungen an die Hardware ................................................... 8 3.1.2 PDA-Vergleich................................................................................ 8 3.1.3 GPS - Empfänger ......................................................................... 10 3.1.4 Prozessortypen............................................................................. 11 3.2 Das Betriebssystem Windows CE ............................................................ 11 3.2.1 Windows Mobile für Pocket PC.................................................... 12 3.2.2 Historischer Rückblick .................................................................. 13 3.2.3 Kurzer Ausblick auf Windows CE 5.0 ........................................... 14 4 Vorgehensweise.......................................................................................... 16 4.1 Untersuchung vorhandener Viewer ........................................................ 16 4.1.1 RIPS Viewer.................................................................................. 16 4.1.2 Esri ArcPad................................................................................... 23 4.2 Konzeption des geplanten Viewers RIPSPad ........................................... 30 4.2.1 Daten und Datenstruktur ............................................................. 30 4.2.2 Welche Funktionalitäten sind erforderlich ?.................................. 32 4.3 Technische Realisierung.......................................................................... 34 4.3.1 Untersuchung möglicher Bausteine.............................................. 34 4.3.2 Auswertung und Ergebnis der Untersuchung ............................... 43 4.3.3 Umsetzung .................................................................................. 44 4.3.4 Programmierung.......................................................................... 57 5 Ergebnis ....................................................................................................... 94 5.1 Bereitstellung der Geodaten................................................................... 94 5.2 Die Installation von RIPSPad.................................................................... 94 5.3 RIPSPad starten ...................................................................................... 94 5.4 Die Bedienung von RIPSPad (Benutzerführung)....................................... 95 5.4.1 Das Menü Projekt ........................................................................ 95 5.4.2 Das Menü Ansicht...................................................................... 101 5.4.3 Das Menü Thema....................................................................... 103 5.4.4 Das Menü Kommunikation ........................................................ 106 5.4.5 Das Menü Objekt....................................................................... 109 5.4.6 Das Menü Werkzeuge................................................................ 111 5.4.7 Das Menü Information ............................................................... 119 6 Ausblick und Zusammenfassung ............................................................. 120 7 Anhang ...................................................................................................... 122 IV 7.1 Glossar................................................................................................. 122 7.2 Literaturverzeichnis .............................................................................. 127 7.3 Internet-Quellenverzeichnis .................................................................. 128 7.4 Tabellenverzeichnis .............................................................................. 129 7.5 Abbildungsverzeichnis.......................................................................... 130 7.6 Beilagen ............................................................................................... 132 V Vorwort Aufgaben im Umweltbereich können nicht immer einfach und bequem im Büro vom Schreibtisch aus erledigt werden. Gerade hier ist der direkte Kontakt mit der Natur unerlässlich. Nur so ist es möglich die Zusammenhänge der Geofaktoren bestimmter Situationen besser einzuschätzen und zu verstehen. Sachbearbeiter der Umweltverwaltungen müssen bei ihrer Arbeit ein hohes Maß an Mobilität und Flexibilität mitbringen. Sie müssen sich schnell auf neue, oft auch unerwartete Gegebenheiten einstellen können. Diese Diplomarbeit soll dazu beitragen, dass Umweltaufgaben zukünftig einfacher gelöst werden können. Es soll eine einfache und kostengünstige Möglichkeit gegeben werden, mit Hilfe neuster Technik direkt vor Ort die Lage einzuschätzen und Entscheidungen treffen zu können. Karlsruhe, im März 2005 Sandra Exner VI Einleitung 1 Einleitung Zur besseren Einordnung dieser Untersuchung in ihren Gesamtzusammenhang sollen hier kurz die Grundlagen erläutert werden, die dazu geführt haben, dieses Thema als Diplomarbeit ins Leben zu rufen. 1.1 Die Naturschutzverwaltung in Baden-Württemberg Die Organisation der Naturschutzverwaltung Baden-Württembergs lässt sich in drei Ebenen unterteilen, die den drei Verwaltungsstufen des Landes entsprechen. Dies sind: Landes-, Regierungsbezirks- und Kreisebene (inkl. kreisfreie Städte). Nach dieser Hierarchie gliedert sich die Naturschutzverwaltung in das Ministerium für Ernährung und Ländlichen Raum, das Ministerium für Umwelt und Verkehr (Land), vier Regierungspräsidien (Reg.-Bezirk) sowie 35 Landratsämter und 9 Bürgermeisterämter der Stadtkreise (Kreisebene). In dieser Reihenfolge werden sie auch als Oberste, Höhere und Untere Naturschutzbehörden bezeichnet. Die Festlegung der Organisation und der Zuständigkeit im Naturschutz ist im Naturschutzgesetz (NatSchG) von Baden-Württemberg verankert. Dort heißt es im §58, Abs. 2: „Die Rechtsverordnungen nach §21 werden von den höheren Naturschutzbehörden erlassen, geändert oder aufgehoben“ (NatSchG, 1995, S.36). Der §21 beinhaltet die Zuständigkeit für Naturschutzgebiete. Zu den Verwaltungsebenen gesellen sich die fachlichen Beratungsebenen. Dies sind Behörden, oder im Falle von Naturschutzbeauftragten, Personen, die den entsprechenden Geschäftsstellen auf der Verwaltungsseite beratend zur Seite stehen. Dem Ministerium für Ernährung und Ländlichen Raum (MLR) steht die Landesanstalt für Umweltschutz (LfU) gegenüber, bei den Regierungspräsidien (RP) sind es die Bezirksstellen für Naturschutz und Landespflege (BNL) und bei den Unteren Naturschutzbehörden Naturschutzbeauftragte (ehrenamtliche, nicht weisungsgebundene Berater) (siehe Abb.1-1). Verwaltungsebene und fachliche Beratungsebene ergänzen sich. Die eine Seite kann ohne die andere nicht auskommen. Die Behörden der fachlichen Beratungsebene können aufgrund ihrer beratenden Funktion keine Verordnungen erlassen oder Rechtsbescheide erteilen, aber ihr Veto gegen Entscheidungen der Verwaltungsbehörden einlegen. Alleine bei der Aufsichtsfunktion wird das Ebenenschema verlassen. Das heißt, in verwaltungstechnischen Fragen unterstehen einzelne Behörden nicht den im Schema übergeordneten Stellen. Im vorliegenden Fall unterstehen die BNL sowie die Regierungspräsidien dem Ministerium für Ernährung und Ländlichen Raum. Das Ministerium hat also sowohl die Direktaufsicht (Recht und Ordnungsmäßigkeit) als auch die Fachaufsicht. Auch die LfU untersteht dem MLR, allerdings nur in fachlicher, nicht aber in dienstlicher Hinsicht. Dort ist sie dem Ministerium für Umwelt und Verkehr 1 Einleitung unterstellt (§48 Naturschutzbehörden und Fachbehörden, NatSchG 1995, S.31 ) (Becker, 1999). Abbildung 1-1: Gliederung der Naturschutzverwaltung Quelle: Becker, 1999 1.2 Das Umweltinformationssystem Baden-Württemberg (UIS) Um Umweltprobleme zu lösen, bedarf es der engen Zusammenarbeit und des stetigen Austauschs der unterschiedlichen Umweltbehörden. Die Geofaktoren, welche unsere Umwelt beeinflussen, stehen in einem ständigen Wechselspiel, deshalb können diese auch nur in ihrem Zusammenhang betrachtet und verstanden werden. Das Umweltinformationssystem Baden-Württemberg (UIS) hat die Aufgabe die Erkenntnisse, Messwerte und Daten vieler Experten aus den unterschiedlichen Fachabteilungen der Umweltbehörden zusammenzuführen. Dank der modernen Computertechnik wird diese Vernetzung möglich. Alle Landesbehörden haben, je nach datenschutzrechtlichen Vorgaben, direkten Zugriff auf die Daten des UIS. Daneben kann das UIS auch durch die Öffentlichkeit, wie z.B. Umweltverbände oder Bürger und Bürgerinnen genutzt werden. 1.3 Das Räumliche Informations- und Planungssystem (RIPS) Die raumbezogene Datenverarbeitung im UIS wird durch das Räumliche Informations- und Planungssystem (RIPS) realisiert. Dabei handelt es sich um eine Komponente des ressortübergreifenden Umweltinformationssystems (UIS) Baden-Württemberg. Hauptaufgabe des RIPS ist die Koordination aller Aktivitäten zum GISEinsatz sowie zur Nutzung und zum Austausch von Geodaten im Umweltbereich. Neben der Bereitstellung raumbezogener Daten bietet es ein Angebot verschiedenster Geodatendienste an. Zu den GIS-Werkzeugen, die bereits für RIPS entwickelt wurden, zählen z.B. ein Meta-Auskunftssystem für Geodaten sowie Benutzeroberflächen zur Geodatenerfassung, Auswertung und spezielle Viewer für Prä2 Einleitung sentationen. Betreiber des Informationssystems ist die Landesanstalt für Umweltschutz (LfU), Referat 53.2, Sachgebiet „Räumliche Informationssysteme“. Der RIPSPool dient darüber hinaus als Geo-Datenhaltungssystem für raumbezogene Fachund Basisdaten (siehe 1.3). Dort werden die Daten nach entsprechender Qualitätssicherung den verschiedenen Nutzergruppen verfügbar gemacht. Die Landesanstalt für Umweltschutz (LfU), die Gewässerdirektionen und –bereiche (GwD/B) sowie die Gewerbeaufsichtsämter (GAA) stellen dabei den engeren Nutzerkreis von RIPS dar. Daneben wird RIPS auch durch das Ministerium für Ernährung und Ländlichen Raum (MLR) mit den Fachreferaten für Gebiets- und Artenschutz und den Bezirkstellen für Naturschutz- und Landespflege genutzt. Als weitere Nutzergruppe sind alle Bürger, Verbände, Planungsbüros usw. anzusehen, auch wenn hier, bedingt durch die technische Machbarkeit oder aufgrund von Nutzungsrechts- und Datenschutzauflagen, Einschränkungen gegeben sind. Daten im RIPS-Pool Die Datenbestände können in Geo- und Sachdaten eingeteilt werden. Die Geodaten setzen sich zusammen aus Fach- und Basisdaten. Als Basisdaten werden alle von der Vermessungsverwaltung geführten geometrischen Daten verstanden (Tab. 1-1). Basisdaten Maßstab Digitales Landschaftsmodell (ATKIS DLM 25 BW) 1:10.000 Digitales Landschaftsmodell (ATKIS DLM 1000) 1:1.000.000 Digitales Höhenmodell (DHM 50) Auflösung 50 m Digitale Topographische Karten (TK25, TK50, TK100) 1:25.000 1:50.000 1:100.000 Digitale Topographische Übersichtskarten (TÜK200) 1:500.000 Digitale Übersichtskarte (ÜK 500) 1:500.000 Digitale Übersichtskarte (ÜK 10) 1:1.000.000 Digitale Orthophotos (DOP) 1:10.000 ALK (Amtliches Liegenschaftskataster) 1:500 bis 1:2500 Tabelle 1-1: Basisdaten im RIPS-Pool Geometrische Fachdaten sind z.B. Fließgewässer, Wasser- und Naturschutzgebiete in Form von Vektor- und Rasterdaten. Einige dieser Datenbestände sind im Informationstechnischen Zentrum (ITZ) der LfU aufgenommen und digitalisiert worden. 3 Einleitung Die Fachdaten werden dabei in die zwei großen Bereiche Naturschutz und Landschaftsökologie (Tab. 1-2) sowie Technosphäre, Wasser, Boden und Luft (Tab. 1-3) eingeteilt. Naturschutz und Landschaftsökologie Maßstab Biotopkartierung nach §24a 1:25.000 NATURA 2000-Gebiete 1:25.000 Waldschutzgebiete (Bann- und Schonwälder) 1:25.000 Natur- und Landschaftsschutzgebiete 1:25.000 1:250.000 Landschaftszerschneidung 1:25.000 Naturräumliche Gliederung 1:200.000 Tabelle 1-2: Daten aus Natur und Landschaft im RIPS-Pool (Auszug) Technosphäre, Wasser, Boden und Luft Maßstab Gewässernetz 1:10.000 1:50.000 1:200.000 Flussgebiete (Gewässereinzugsgebiete) 1:50.000 Wasser- und Quellschutzgebiete 1:25.000 Grundwasserlandschaften 1:200.000 Wasser- und Bodenatlas BW 1:200.000 Bodenübersichtskarte (BÜK200) 1:200.000 Geotope, Bodendenkmale 1:25.000 Verkehr (Straßen- und Schienennetz) 1:150.000 Schallimmissionspläne 1:1.500 Tabelle 1-3: Daten zu Technosphäre, Wasser, Boden, Luft im RIPS-Pool (Auszug) Wie werden die Daten des RIPS-Pool zur Verfügung gestellt ? Die Bereitstellung der Daten erfolgt je nach Verwendungszweck über einen Datenträger (CD / DVD-ROM,Festplatten) oder online über den RIPSPool, d.h. z.B. über verteilte Datenbanken oder Webservices. Die auf Datenträgern bereitgestellten „RIPS-Daten“ sind im sogenannten GIS_DATA-Verzeichnis in einer fest definierten Struktur abgelegt. Daneben wird das GIS-Werkzeug „RIPS-Viewer“ ausgeliefert, das der Visualisierung dieser Geodaten dient. Der RIPS-Viewer kann als leicht zu bedienendes Pro4 Einleitung gramm lizenzfrei an die Dienststellen der Umweltverwaltungen und die Umweltbeauftragten weitergegeben werden. Eine Evaluierung des Programms erfolgt in Kapitel 4.1.1. 1.4 Das Projekt PaUla Leider ist der mobile Zugriff auf Informationssysteme mit digitalem Kartenmaterial und Sachdaten bisher nicht oder nur mit hohem technischen Aufwand möglich (PAULA_2005). Doch gerade im Außendienst der Bereiche Ökologie, Boden- und Naturschutz ist der Zugriff auf aktuelle Fachinformationen und ortsbezogenen Daten (Karten und Sachdaten) unerlässlich. Um diesen Anforderungen gerecht zu werden, wurde das Projekt PaUla als Gemeinschaftsprojekt der Landesanstalt für Umweltschutz (LfU) Baden-Württemberg mit dem Forschungszentrum Karlsruhe und der Stadt Pforzheim ins Leben gerufen. „PaUla“ steht für „Portal für mobile Umwelt-Assistenten“ und hat das vorrangige Ziel Sachbearbeiter der Umweltverwaltung im Außendienst durch ein mobiles, im Feld verwendbares Datenendgerät zu unterstützen. Dieses soll den Online-Zugriff auf Informationssysteme der Umweltverwaltung Baden-Württemberg und Internet-Angebote Dritter erlauben und zusätzlich weitere Funktionen einer einfachen Bürokommunikation wie Email und Textbearbeitung anbieten. In der Planungsphase des Projektes PaUla wurde, in enger Zusammenarbeit mit im Außendienst tätigen Sachbearbeitern, der Bedarf und potentielle Nutzen des Einsatzes eines mobilen Endgerätes hinterfragt. Dabei wurden realistische Anwendungsszenarien erarbeitet. Eines dieser Szenarien soll hier kurz umschrieben werden: Szenario Unfallmanagement Die grundsätzliche Anforderung dieses Szenarios ist, Sachbearbeiter während ihres Vor-Ort-Einsatzes bei der Abwehr von Gefahren bei Unfällen zu unterstützen. Passiert ein Unfall, bei dem es z.B. zum Auslaufen von Gefahrenstoffen kommt, wird durch die Polizei ein Naturschutzbeauftragter kontaktiert, der die Situation einschätzen und gegebenenfalls Maßnahmen zur Gefahrenabwehr anordnen soll. Zur genauen Abwägung der Lage benötigt der Sachbearbeiter z.B. aktuelle Karten und Objektdaten sowie Informationen zu unterschiedlichen Stoffen und Kontaktadressen. Welche Karten benötigt werden ist abhängig von der jeweiligen Situation und vom Sachbearbeiter. Derzeit werden dabei die wichtigsten Unterlagen durch den Sachbearbeiter überwiegend in Papierform mitgeführt. Nur vereinzelt findet sich die 5 Einleitung Nutzung des Programms ArcPad der Firma Esri (Kapitel 4.1.2), da nicht jede Umweltbehörde über ein mobiles Endgerät und die doch nicht ganz günstige Software verfügt. Durch PaUla soll der Umweltbeauftragte in seiner Arbeit unterstützt werden. Die Erleichterung seines Einsatzes soll schon bei der Ortsbestimmung des Unfallortes beginnen. Über die Angaben, die der Sachbearbeiter von der Polizei erhält, wie z.B. die Koordinaten, kann er den Unfallort mit seiner GIS-Software schnellstmöglich finden. Längerfristig können diese Angaben dazu genutzt werden, dass die für das Unfallmanagement erforderlichen Karten und Daten aktuell zugeschnitten und bereitgestellt werden. Eine genauere Ortsbestimmung soll über eine GPSSchnittstelle erfolgen. Diese erlaubt unter anderem die Navigation zum Unfallort, welche über eine kommerzielle Navigationssoftware erfolgen könnte. Vor Ort benötigt der Umweltbeauftragte je nach Situation Fach- und Basisdaten, die ihn bei seiner Arbeit unterstützen. Dabei soll er beliebige Karten aus dem lokalen RIPS-Pool auswählen können. Ein Auszug (Bereichsausschnitt) vom RIPSPool mit den gewünschten Karten, soll zum größten Teil lokal auf dem mobilen Gerät abgelegt sein, was mit den heute auf dem Markt verfügbaren Speicherkarten problemlos möglich ist. Da der Sachbearbeiter nie genau vor dieselbe Situation gestellt ist und dadurch auch nie genau abwägen kann, welche Karten und Informationen er in der jeweiligen Gefahrensituation benötigt, ist die Online-Anbindung des mobilen Gerätes unerlässlich. Es wird also ein Client auf dem Mobilgerät benötigt, der über GIS-Viewer Funktionalitäten zur Visualisierung der auf dem Gerät offline mitgeführten Kartendaten verfügt, aber gleichzeitig auch das Nachladen von Daten über Funk (GPRS) erlaubt. Zur weiteren Planung der Gefahrenabwehr benötigt der Sachbearbeiter vor Ort neben den Kartendaten auch Kontaktadressen. Diese könnten mittels der kommerziellen Software Microsoft Outlook verwaltet werden. Checklisten, wie Alarmpläne oder Meldelisten sowie Auskunft über Stoffe könnten entweder lokal auf dem Gerät mitgeführt werden oder online abrufbar sein. 6 Aufgabenstellung und Zielsetzung 2 Aufgabenstellung und Zielsetzung Im Projekt PaUla soll die Visualisierung der Kartendaten auf dem Personal Digital Assistent (PDA) mittels der Software ArcPad der Firma Esri erfolgen. Aufgabe dieser Untersuchung ist, eine GPS-gestützte mobile GIS-Lösung für den PDA zu konzipieren und entwickeln, die den Behörden lizenzfrei zur Verfügung gestellt und ganz auf die Bedürfnisse der Umweltverwaltung zugeschnitten werden kann. In erster Linie soll es sich dabei um ein mobiles Auskunftssystem handeln. Hierbei steht die Visualisierung der räumlichen Daten und deren Sachinformationen im Vordergrund. Da die Anwendung gleichzeitig über eine GPSSchnittstelle verfügen soll, die die Nutzung der aktuellen Position erlaubt, spricht man auch von einem ortsbezogenen Dienst (Location-Based Service, LBS). Dazu soll in einer vorausgehenden Konzeptionsphase ermittelt werden, welche Anforderungen sich hieraus für Hard- und Software ergeben und wie diesen technisch Rechnung getragen werden kann. Neben der GPS-Anbindung, die parallel in einer Diplomarbeit der FHT Stuttgart umgesetzt wird, soll die Möglichkeit geschaffen werden, auf die Datenbestände des Umweltinformationssystems (UIS) und insbesondere die Karten des RIPS zugreifen zu können. Um die Kompatibilität mit vorhandenen Anwendungen und Datenbeständen zu gewährleisten, soll die geplante Anwendung an die EsriProduktlandschaft angelehnt sein. Ziel dieser Arbeit ist somit die Konzeption und Entwicklung einer GPS-gestützten mobilen GIS-Anwendung auf einem PDA zum Einsatz für Umweltaufgaben. Als Vorgaben zur Erreichung des Ziels muss beachtet werden, dass die Anwendung möglichst lizenzfrei (Open Source) bleiben soll. Desweiteren soll im Hinblick auf die Wirtschaftlichkeit möglichst auf bereits bestehende GIS-Komponenten zurückgegriffen werden, um einer Mehrfachimplementierung entgegenzuwirken und die Wartung sicherzustellen. Innerhalb der Diplomarbeit besteht nicht der Anspruch eine produktreife Anwendung zu entwickeln. Vielmehr liegt die Zielsetzung darin, zu prüfen, mit welchen technischen Mitteln das Ziel erreicht werden kann, den Weg dorthin zu konzipieren und teilweise umzusetzen. 7 Technische Grundlagen 3 Technische Grundlagen 3.1 Mobile Hardware Bei der Konzeption des mobilen GIS-Viewers musste zunächst hinterfragt werden, welche Anforderungen an die Hardware bestehen. Dazu wurde ein Anforderungskatalog erstellt und ein Hardwarevergleich durchgeführt. 3.1.1 Anforderungen an die Hardware In Bezug auf Aufgabenstellung und Zielsetzung dieser Arbeit werden an die Hardware folgende Anforderungen gestellt: Aufgabe /Zielsetzung Daraus resultierende Anforderung Ohne große Investitionen nutzbar - gutes Preis-Leistungsverhältnis Mobile Nutzung im Gelände - gute Akkuleistung - transflektives Display - robustes Gerät, das gut gegen Feuchtigkeit und Staub geschützt ist. Hierbei bietet sich eine spezielle Schutzhülle für den PDA an. Anzeige von Karten mit großen - gute Rechen- und Speicherleistung Datenmengen Online-Zugriff auf Karten und Sachinformationen - Kommunikationsfähigkeit auf Basis von GPRS mittels SIM-Karte - Wireless LAN in Bereichen breitbandiger Funknetze - ggfls. Kommunikation über ein seperates Handy, welches über Bluetooth mit dem PDA kommunizieren kann Æ Bluetooth-Schnittstelle Offline - Zugriff auf Daten des UIS - Docking Station und USB-Schnittstelle oder Bluetooth zum Herunterladen der Daten vom PC - Speicherkartensteckplatz für Secure Digital (SD)-Karte mit mind. 1 GB Speichervolumen GPS-Anbindung - GPS-Empfänger Verbindung kann über Bluetooth, Kabel oder Steckkarte erfolgen. Tabelle 3-1: Anforderungen an die Hardware 3.1.2 PDA-Vergleich In Anlehnung an die beschriebenen Anforderungen an die Hardware wurde ein Hardwarevergleich durchgeführt, der zur Kaufentscheidung des PDA für die Diplomarbeit geführt hat. Tabelle 3-2 zeigt Auszüge der untersuchten PDAs und verdeutlicht gleichzeitig, welche Kriterien zum Vergleich herangezogen wurden. 8 Technische Grundlagen Kriterium T-Mobile MDAII HP iPAQ PocketPC H2210 Compaq iPAQ H3950 Prozessor Intel XScale 400 MHz Intel XScale 400MHz Intel XScale 400 MHz Speicher 128 MB RAM, 64 MB ROM 64 MB RAM, 56 MB ROM 64 MB RAM, 32 MB ROM Betriebssystem Microsoft WinMicrosoft WinMicrosoft Pocket dows Mobile 2003 dows Mobile 2003 PC 2002 Premium für Pocket PC Premium Edition Edition Phone Edition Display Transflektiv, TFT, Farbanzahl: 64K (65.536 Farben) Auflösung (B x H): 240 x 320 Transflektiv, TFT, Farbanzahl: 64K (65.536 Farben) Auflösung (B x H): 240 x 320 TFT, Farbanzahl: 64K (65.536 Farben) 240 x 320 Pixel SIM-Karte ja nein nein Wireless GPRS Class 10, EMail-Client, SMS, MMS-fähig, W-LAN - - Erweiterungssteckplatz Slot für SD und MMC-Karten SD-Steckplatz: SD ErweiterungsUnterstützung für steckplatz SD und MMC; Compact Flash (CF) Typ I und II InfrarotSchnittstelle ja ja ja Bluetooth ja ja nein Li-Ionen-Akku Laufzeit 12 Std. Lithium-Polymer, Laufzeit 14 Std. Stromversorgung Lithium-Polymer, Laufzeit 13 Std. Erweiterungen Kamera, Diktierfunktion, Telefonieren möglich Diktierfunktion Diktierfunktion Preis ab 419.- € (ohne Vertrag) ab 415.- € 598.- € (UVP) Bemerkung PreisVerfügt nicht über Leistungsverhältnis eine SIM-Karte. ist sehr gut. Betriebssystem ist nicht auf dem neusten Stand. Display ist nicht entspiegelt. Tabelle 3-2: Hardwarevergleich (Stand Februar 2005) Welcher PDA wurde in Anlehnung an die durchgeführte Recherche für die Entwicklung beschafft ? 9 Technische Grundlagen Nach genauer Abwägung fiel die Entscheidung auf den T-Mobile MDA II. Er überzeugt durch sein gutes Preis-Leistungsverhältnis. Dabei erfüllt das Gerät die wichtigen Kriterien, wie die Aktualität des Betriebssystems und die hohe Rechen- und Speicherleistung. Die zusätzlichen Erweiterungen sind für die Arbeit eines Sachbearbeiters der Umweltschutzverwaltung sehr nützlich. Mit Hilfe der integrierten Kamera kann er die Lage vor Ort photographisch festhalten. Anstatt schriftliche Notizen über die Lage aufzunehmen, kann der Bearbeiter über die Diktierfunktion einfach und schnell Bemerkungen aufnehmen. Zur Entscheidung für den MDAII trug in besonderem Maße auch das Vorhandensein einer SIM-Karte bei. Bei Abschluss eines Mobilfunkvertrages ermöglicht diese einen schnellen und unkomplizierten Zugang zu aktuellen Online-Informationen. Wie im Hardwarebereich üblich unterliegt auch die Entwicklung der PDAs einem raschen Fortschritt. Daher muss natürlich beachtet werden, dass die Angaben dieser Recherche nur bei deren Aufnahme aktuell waren. Inzwischen werden auf dem Markt bereits Geräte mit verbessertem Leistungsumfang angeboten. 3.1.3 GPS - Empfänger Auf dem Markt werden GPS-Empfänger in unterschiedlichen Technologien angeboten. Zur Überlegung, welche Technologie für die geplante Anwendung am besten geeignet ist, müssen deren Vor- und Nachteile gegenübergestellt werden. GPS-Empfänger Technologie Vorteile Nachteile Bluetooth - kein Kabelsalat - eigener Akku - sichere Verbindung ? - gleichzeitige Verbindung über Handy nicht möglich Kabel - sichere Verbindung - Kabelsalat Steckkarte - sichere Verbindung - kein Kabelsalat - Steckplatz belegt, PDA benötigt zusätzlichen Steckplatz für Speicherkarte ! - Stromverbrauch über PDA Tabelle 3-3: Gegenüberstellung der GPS-Empfänger Technologien Allgemeine Auswahlkriterien für den Kauf eines GPS-Empfängers sind 10 Technische Grundlagen • Anzahl der Kanäle • die Schnittstelle (Technologie) • Positionsgenauigkeit • Aktualisierungsrate des Signals • Temperaturbereich • Stromversorgung • Größe • Gewicht • Preis Im Rahmen dieser Arbeit fiel die Entscheidung auf die Beschaffung eines GPS– Empfängers mit Bluetooth–Technologie. Erfahrungen haben gezeigt, dass die Verbindung über diese Schnittstelle ohne Störungen möglich ist. Wichtig für die bequeme Arbeit im Gelände ist auch, dass der Benutzer freie Hand hat und er nicht durch das Mitführen eines Kabels behindert wird. Um eine möglichst lange Akkulaufzeit des PDAs zu gewährleisten ist die eigene Stromversorgung des GPS–Empfängers als wichtiges Kriterium anzusehen. 3.1.4 Prozessortypen Für die Entwicklung und das spätere Anwenden des GIS-Viewers muss der Prozessortyp des mobilen Gerätes beachtet werden. Nicht jede beliebige Anwendung ist kompatibel zu jedem Prozessor. Sie muss vielmehr speziell für diesen Typ erstellt werden. Dies wird z.B. innerhalb der Entwicklungsumgebungen für mobile Geräte ermöglicht. Heute gängige Prozessortypen für mobile Geräte sind • MIPS • ARM • SH • x86 • weitere Prozessorbezeichnungen, die auf den oben genannten basieren, z.B. Xscale, der auf ARM basiert. 3.2 Das Betriebssystem Windows CE „Windows CE is the smallest and arguably the most interesting of the Microsoft Windows Operating systems.“ (Boling, 2003, S. 23 ) 11 Technische Grundlagen Windows CE ist ein kleines ROM-basiertes Betriebssystem (OS), das die Windows API (Application Programming Interface) in das Umfeld der Märkte und Geräte trägt, welche mit dem Kernel der mächtigen Betriebssystemen, wie z.B. Windows XP nicht zurecht kommen. Es unterstützt somit alle Geräte und Maschinen, die über wenig Ressourcen, in Bezug auf Speicher und Performance verfügen. Solche Geräte reichen von industriellen Schalt- und Kommunikationseinheiten über Windows-basierte Clients, wie PDAs, bis hin zu kommerziellen Produkten wie z.B. Digitalkameras. Im Gegensatz zu Desktop Betriebssystemen ist Windows CE ein komponentenbasiertes Betriebssystem, welches es Entwicklern und Geräteherstellern erlaubt, maßgeschneiderte eingebettete Systeme zu entwickeln. Gemeinsam mit Windows XP Embedded gehört es zu den eingebetteten Betriebssystemen der MicrosoftFamilie. (WINCE_2005) Windows CE zeichnet sich aus durch • seine kleine Größe • seine Win32 subset API • die Unterstützung unterschiedlichster Plattformen • seine Multitask- und Multithread-Fähigkeit • seine optionale graphische Benutzeroberfläche 3.2.1 Windows Mobile für Pocket PC Als neue globale Marke für Microsoft Software für mobile Geräte, wie Pocket PCs und Smartphones, wurde von Microsoft das Label Windows Mobile™ herausgebracht. Windows Mobile für Pocket PC basiert auf Windows CE. Dies wurde durch das Hinzufügen neuer Funktionalitäten, einer graphischen Benutzeroberfläche und von Anwendungen zur Entwicklung optimierter mobiler Plattformen für HandheldGeräte erreicht. Während Windows Mobile 2003 auf Windows CE .NET 4.2 basiert, ist Windows CE 3.0 die Grundlage von Windows für Pocket PC 2002 (WINCE_2005). Windows Mobile 2003 bietet • eine Standardisierung der grundlegenden Hardware-Anforderungen • eine einheitliche Zusammenstellung von Programmierschnittstellen • eine einheitliche Entwicklungsumgebung für unterschiedliche Geräte 12 Technische Grundlagen 3.2.2 Historischer Rückblick Windows CE unterlag einer rasanten Entwicklung. Dadurch kam es zu vielen verschiedenen Bezeichnungen und Versionierungen des Betriebssystems, welche oft zur Verwirrung führen. Anhand des folgenden kurzen historischen Überblicks soll versucht werden, dieser Verwirrung entgegen zu treten und etwas mehr Klarheit zu schaffen. Die Übersicht beschreibt die zeitliche Entwicklung des Betriebssystems von seinem Entstehen im Jahre 1996 bis zur aktuellen Version .NET 4.2. Wesentliche Neuerungen Zeit Version 1996 Windows CE 1.0 einfaches OrganizerBetriebssystem Handheld “Organizer” Displaygröße 480 x 240 oder 640 x 240 1997 Windows CE 2.0 Handheld PC 2.0 netzwerkfähig, COM Unterstützung, Windows CE Embedded Toolkit (ETK) als Entwicklungstool Handheld PC Displaygröße 240 x 320, farbig Reduzierung der Größe des Betriebssystems und der Anwendungen Palm-size PC Palm-OS basierend Displaygröße 240 x 320 Auto PC Windows CE 2.11 “Microsoft CE Platform Builder” unterstützt Dateien von über 4 MB im Object Store unterstützt Fast IR (IRDA 4MB Infrarot Standard) H/PC Professional Mini-Laptop-Stil mit Pocket Office, integriertem Modem, Touchscreen Windows CE 2.12 Portierung des Microsoft Internet Explorers auf Windows CE Windows CE 3.0 Pocket PC Kernel mit 256 Prioritätsleveln (bisher 8) COM / DCOM Support Object Store mit 256 MB RAM, pro Datei 32 MB Anfang Windows CE 2.01 1998 Ende 1998 Mitte 2000 Anfang Windows CE .NET 4.0 2001 Hardware Pocket PC mit “Todayscreen” als Fortschritt zu Palm-size PC, Handheld PC 2000 unterstützt Bluetooth 802.11 u. 1394, trotz Bezeichnung NET 13 Technische Grundlagen keine Unterstützung der Entwicklungsumgebung .NET Compact Framework Anfang Windows CE .NET 4.1 2002 unterstützt .NET Compact Framework, WLAN-fähig Pocket PC 2002 und Smartphones basierend auf Windows CE 3.0, Pocket PC Phone Edition Windows CE .NET 4.2 unterstützt Pocket PC spezifische APIs, verbesserte Performance durch direkte Unterstützung vonHardware paging tables auf manchen CPUs Pocket PC 2003 Smartphones basierend auf Windows CE 4.2 integrierte .NET LaufzeitUmgebung 2003 Tabelle 3-4: historische Entwicklung von Windows CE 3.2.3 Kurzer Ausblick auf Windows CE 5.0 Ab Ende Juni 2005 wird Microsoft die Version 5.0 auf den Markt bringen. Auch wenn in dieser Version die Bezeichnung .NET nicht mehr Bestandteil des Namens sein wird, ist das Betriebssystem Teil der .NET–Strategie. Im Gegensatz zu den Vorgängerversionen, die seit Windows CE 3.0 nur auf dem ARM-Prozessor laufen, wird Windows CE die Prozessoren MIPS, ARM, SH und x86 unterstützen. Weitere Neuerungen sind • eine bessere Bluetooth- und WLAN-Unterstützung • das Vorhandensein von mehr Hardware-Treibern • das leichtere Umschalten zwischen graphischer Benutzeroberfläche (GUI) und der Befehlseingabe per Shell • eine höhere Datensicherheit durch standardmäßige Einstellung aller Sicherheitsoptionen auf die höchste Stufe • eine Erhöhung der Stabilität und Betriebssicherheit des Systems, dazu die Möglichkeit Betriebsfehler ähnlich wie bei Windows XP per Internet direkt an den Gerätehersteller zu übermitteln • das zur Verfügung stellen von Funktionen für die Internet-Telefonie Im Bereich der Entwicklung wird Windows CE 5.0 erstmals eine Programmierschnittstelle zur Verfügung stellen, die es ermöglicht Mobil-Graphikchips wie den 14 Technische Grundlagen ATI Imageon oder Nvidia Goforce inklusive 3D-Funktionen direkt anzusteuern (HEISE_2005). Zur Anwendungsentwicklung eignen sich folgende Umgebungen: • Visual Studio .NET 2003 mit.NET Compact Framework 1.0 (in Windows CE 5.0 enthalten).NET Compact Framework SP1 Developer Redistributable .NET Compact Framework SP1 • Embedded Visual C++ 4.0 SP4 • Platform Builder für Windows CE 5.0 (aus DevWinCE_2005) 15 Vorgehensweise 4 Vorgehensweise Die Organisation dieser Untersuchung gliedert sich in verschiedene, aufeinander aufbauende Bereiche. Die Anforderungen an einen GIS-Viewer im Umweltbereich sollen im Vorfeld in erster Linie durch die Überprüfung von Funktionen, Features etc. von bereits vorhandenen Viewern definiert werden. Darüber hinaus sollen Elementen und neue Funktionalitäten, die die Bedürfnisse der potentiellen User erfüllen übernommen oder geplant und teilweise realisiert werden. Daraufhin kann die technische Realisierung der Eigenentwicklung konzipiert und durchgeführt werden. 4.1 Untersuchung vorhandener Viewer Um einen Überblick darüber zu erhalten, welche Funktionalitäten einerseits vom Nutzer gefordert, aber andererseits auch bereits angeboten werden, wird eine Untersuchung vorhandener Viewer durchgeführt. Diese soll Aufschluss darüber geben, welche Funktionen auch für die Konzeption des mobilen GIS-Viewers in Betracht gezogen werden. 4.1.1 RIPS Viewer 4.1.1.1 Allgemeine Beschreibung Der RIPS-Viewer ist ein GIS-Werkzeug, das der Visualisierung und Abfrage dateibasierter Geodaten dient. Dabei ist er einfach gehalten und leicht zu bedienen. Das Programm wurde vom Informationstechnischen Zentrum (ITZ) der LfU entwickelt und kann lizenzfrei im Rahmen des UIS Baden-Württemberg eingesetzt werden. Bei der Entwicklung mit Visual Basic wurde das Softwarepaket MapObjects LT der Firma ESRI integriert. Dabei handelt es sich um eine lizenzfrei zu erwerbende ActiveX-Komponente, die Objekte und Methoden zur Entwicklung von Kartendiensten anbietet. Wie schon erwähnt, befinden sich die RIPS-Daten in dem sogenannten GIS_DATA Verzeichnis, welches auf einem zentralen Server eingerichtet ist. Die Daten sind in einer bestimmten festen Struktur angelegt, welche nicht verändert werden darf. 4.1.1.2 Systemvoraussetzungen Der RIPS-Viewer ist für den Desktop-Gebrauch konzipiert und unterstützt die Betriebssysteme Windows 98, Windows ME, Windows NT 4.0 (mit Service Pack 3 oder höher) sowie Windows 2000. Eine einfache Portierung auf Windows CE ist nicht möglich. 16 Vorgehensweise 4.1.1.3 Unterstützte Datenformate Unterstützt werden Vektordaten in Form von Esri-Shapefiles *.shp sowie Rasterdaten in Form von georeferenzierten *.tif, *.jpg und MrSid. 4.1.1.4 Funktionen Im Folgenden wird eine Evaluierung der Funktionalitäten des RIPS Viewer durchgeführt. Dabei soll der Schwerpunkt auf jene Funktionen gerichtet werden, die auch für eine mobile Anwendung sinnvoll erscheinen. Das Projektfenster Abbildung 4-1: RIPS Viewer Projektfenster Beim Starten des RIPS-Viewers öffnet sich das Projektfenster, welches unter anderem die Möglichkeit der Konfiguration des Viewers bietet. Es können z.B. die Pfade zu den RIPS- und ALK-Daten sowie zu den Flurkarten eingestellt werden. Neben der Konfiguration befindet sich im Startbild ein Hilfe-, Info- und BeendenButton sowie Schaltflächen zur Einstellung drei unterschiedlicher Ansichten der aufgelisteten Kartenthemen. Im linken Rahmen des Projektfensters werden die Themengruppen aufgelistet. Die zur jeweilig ausgewählten Themengruppe verfügbaren Kartenthemen werden im rechten Fenster angezeigt. Nach Doppelklick auf eines der Kartenthemen schließt sich das Projektfenster und das Kartenthema wird im sich öffnenden Viewfenster angezeigt. 17 Vorgehensweise Das Viewfenster 3 5 1 2 4 6 Abbildung 4-2: RIPS Viewer Viewfenster Das Viewfenster dient der Visualisierung der ausgewählten Kartenthemen. Es besteht aus dem Kartenfenster (1), der Themenliste (2), der Werkzeugleiste (3), dem Übersichtsfenster (4) und einem Fenster zur Anzeige der Sachattribute (5) eines in der Karte ausgewählten Objekts. Über Beenden (6) wird das aktuelle Projekt beendet, das Viewfenster geschlossen und das Projektfenster für eine neue Kartenauswahl geöffnet. 18 Vorgehensweise Die einzelnen Bestandteile des Viewfensters bieten u.a. die folgenden Funktionalitäten: Themenliste: Die Themenliste ist mit einer Legende vergleichbar, die alle Objektebenen ihrer Reihenfolge nach auflistet. Durch das Klicken auf ein Thema wird dieses aktiv. Nur wenn das Thema aktiv ist, ist dessen Bearbeitung möglich, z.B. die Anzeige der Sachattribute eines selektierten Objekts oder das Ändern der Darstellungsfarbe des Themas in der Karte. Die Reihenfolge der Themen kann durch Verschieben mit gedrückter Maustaste verändert werden. Damit ändert sich auch die Darstellungsreihenfolge der Ebenen in der Karte. Das jeweils oberste Thema in der Themenliste ist dabei auch immer das oberste Thema in der Karte. Durch aktivieren bzw. deaktivieren des Kontrollkästchens links neben der Themenbezeichnung kann das Thema Abbildung 4-3: RIPS Viewer Themenliste ein- bzw. ausgeblendet werden. Bei Rechtsklick auf einen Themenschalter öffnet sich ein Kontextmenü, das den Schnellstart themenabhängiger Funktionen erlaubt. Werkzeugleiste: Abbildung 4-4: RIPS Viewer Werkzeugleiste Die Werkzeugleiste stellt alle grundlegenden Funktionalitäten zur Verfügung und ermöglicht die Auswahl erweiterter Funktionen über den Aufruf des Werkzeugkastens. Grundlegende Funktionen sind hinein-, hinauszoomen, verschieben des Kartenausschnitts, zoomen auf die Gesamtansicht, Selektion von Objekten sowie Drucken des aktuellen Ausschnitts und der Aufruf einer Hilfe. Werkzeugkasten: Der Werkzeugkasten bietet dem Nutzer eine Zusammenstellung von Funktionalitäten, die er zur weiteren Informationsgewinnung aufrufen kann. Folgende Funktionen sind auch für die geplante mobile GIS-Lösung interessant: 19 Vorgehensweise Infobutton zur Identifikation von Objekten Wird bei aktiviertem Infobutton auf ein Objekt geklickt, öffnet sich ein Infofenster, welches die Attribute des Objektes anzeigt. Diese können in Word, Excel oder den Editor exportiert oder direkt ausgedruckt werden. Abfragemanager Mit dem Abfragemanager können komplexe Abfragen zum aktiven Thema generiert werden. Abbildung 4-5: RIPS Viewer Abfragemanager Objektauswahl aufheben Dieser Punkt dient dem Aufheben der Selektion von Objekten in der Karte. Beschriften von Geoobjekten Es können alle Geoobjekte eines aktiven Themas gleichzeitig beschriftet werden. Dabei können einzelne Parameter, wie z.B. die Textposition, der Font und die Farbe eingestellt werden. Messen Diese Funktion bietet, über ein Auswahlmenü, drei Varianten des Messens in der Karte an. Diese beinhalten 1. Entfernung messen, 2. Fläche messen und 3. Koordinate bestimmen. Anfangs- und Stützpunkte werden dabei durch Klick mit der linken Maustaste gesetzt, der Endpunkt mit Hilfe eines Doppelklicks. Daraufhin öffnet sich ein Meldungsfenster mit dem Ergebnis der Berechnung. 20 Vorgehensweise Zoomen auf alle Themen Zoomen auf das aktive Thema Zoomen auf alle selektierten Objekte Zoomen auf einzelne selektierte Objekte In einem sich öffnenden Fenster werden in einer Listbox die Nummern aller selektierten Objekte aufgelistet. Aus dieser Liste kann ein Objekt ausgewählt und auf dieses gezoomt werden. Zurück zum letzten Bildausschnitt Hierbei sind maximal 5 Rückwärtsschritte möglich. Sachdatentabelle aufrufen Der lesende Zugriff auf die Sachdaten des aktiven Themas wird über diese Funktion ermöglicht. Statistik Dieses Werkzeug dient der Berechnung von Statistischen Werten des aktiven Themas. Die Listbox „Feld“ stellt dabei alle numerischen Spalten der Sachdatentabelle zur Auswahl. Nach der Auswahl eines Feldes werden die statistischen Werte berechnet und angezeigt. Abbildung 4-6: RIPS Viewer Werkzeug Statistik Microsoft Word aufrufen Der aktuellen Ausschnitt wird in Microsoft Word exportiert und geöffnet. 21 Vorgehensweise Microsoft Excel aufrufen Die Sachdatentabelle der selektierten Objekte wird in Microsoft Excel exportiert und zur Bearbeitung geöffnet. Texteditor aufrufen Der Texteditor wird zum Festhalten von Notizen geöffnet. In der Datei sind bereits Informationen zu Datum und Uhrzeit, sowie die Bezeichnungen der Beschreibungsfelder des aktiven Themas eingetragen. Karte über Themenmanager laden Über den Themenmanager können einzelne Themen aus einem Themenbaum in die Karte geladen werden. Ein Symbol vor dem Thema gibt an, ob es sich um ein Punkt-, Linien-, Flächen- oder Rasterthema handelt. Über Shapefiles und Rasterkarten suchen ist auch die manuelle Auswahl über ein Datei- Auswahlfenster möglich. Abbildung 4-7: RIPS Viewer Themenmanager Themen manuell laden Der Standard Öffnen–Dialog zum manuellen Laden von Themen wird durch Klicken des Buttons Themen manuell laden geöffnet. 22 Vorgehensweise Übersichtsfenster: Das Übersichtsfenster dient der Orientierung. Die Lage des aktuell angezeigten Kartenausschnitts im Viewfenster wird als rotes Rechteck in einer Übersichtskarte angezeigt. Durch Verschieben oder neues Aufziehen des Rechtecks im Übersichtsfenster verändert sich auch der angezeigte Ausschnitt im Viewfenster. Im Hintergrund der Übersichtkarte befinden sich die Kreisgrenzen, bei kreisweise zuAbbildung 4-8: RIPS Viewer Übersichtsfenster geschnittenen Themen das TK25-Gitter und die Gemeindegrenzen. Durch Klick auf eine Gemeinde im Übersichtsfenster, wird die Ansicht im View- fenster auf die selektierte Gemeinde gezoomt. Neben der Übersichtskarte beinhaltet das Übersichtsfenster die Anzeige des aktuellen Maßstabs und der aktuelle Rechts- und Hochwert des Mauszeigers auf der Karte. 4.1.1.5 Was fehlt für den geplanten Viewer ? • Es ist keine GPS-Anbindung vorhanden. • Eine Online-Anbindung ist nicht integriert. • Die Portierung auf Windows CE ist nicht möglich. 4.1.2 4.1.2.1 Esri ArcPad Allgemeine Beschreibung Bei ArcPad handelt es sich um die GI-Software für den mobilen Einsatz der ESRIProduktfamilie. Grundlegend soll ArcPad der Erfassung und Fortführung geographischer Daten dienen. Dabei kann die Datenerfassung entweder durch direktes Zeichnen in der Karte oder mittels GPS-Signalen erfolgen. Neben der Bearbeitung von auf dem PDA lokal abgelegten Daten bietet ArcPad die Möglichkeit der Internet-Integration. Via Internetverbindung können, über einen Internet Mapserver (ArcIMS), zentral auf einem Server abgelegtes Datenmaterial und aktuelle Informationen abgerufen werden. Dabei agiert ArcPad als Client von ArcIMS. Die Daten werden über eine TCP/IP Verbindung, wie z.B. WLAN, auf das Gerät übertragen und können in ArcPad als eigene Ebene hinzugefügt werden. Zusätzlich besteht die Möglichkeit die Programmoberfläche den jeweiligen Anforderungen anzupassen. Diese Abstimmung erfolgt in ArcPad Studio unter Visual Basic for Application (VBA). 23 Vorgehensweise 4.1.2.2 Systemvoraussetzungen ArcPad unterstützt die folgenden Betriebssysteme: • Windows Mobile 2003 Second Edition for Pocket PC • Pocket PC, Pocket PC 2002, and Pocket PC 2003 (auch bekannt als Windows Mobile 2003 for Pocket PC) • Windows CE .NET (CE 4.1 and 4.2) • Windows CE 2.11, 2.12, and 3.0 • Windows 95/98/2000, Windows NT, and Windows XP Ferner läuft ArcPad auf den Mobilprozessoren ARM, Hitachi SH3 und SH4, MIPS und x86. Für die GPS-Anbindung werden alle GPS-Empfänger unterstützt, die mit den GPSProtokollen NMEA, TSIP (Trimble), Earthmate (deLorme) oder PLGR (Rockwell) arbeiten. Da die GPS-Anbindung in dieser Diplomarbeit nicht realisiert wird, soll auf die Protokolle jedoch nicht näher eingegangen werden. 4.1.2.3 Unterstützte Datenformate Neben dem Vektorformat ESRI Shapefiles (*.shp), unterstützt ArcPad die Rasterformate MrSid, JPEG, Windows Bitmaps und PNG sowie ArcIMS Image Services. 4.1.2.4 Funktionen Aufgrund des großen Funktionsumfangs von ArcPad soll hier nur kurz auf die wesentlichen Funktionalitäten eingegangen werden, die für die Konzeption des geplanten GIS-Viewers interessant erscheinen. Für eine ausführliche Beschreibung des Programms kann die arcpad_dokumentation.exe von der Seite http://www.esri.com/software/arcgis/arcpad/index.html (besucht im September 2004) heruntergeladen werden. Diese beinhaltet sowohl eine umfassende Beschreibung als auch eine Kurzreferenz im PDF-Format. Die Standardoberfläche: Wird ArcPad mit seinen Standardeinstellungen gestartet, öffnet sich die Standardoberfläche, bestehend aus zwei Menüleisten, dem Kartenfenster und einer Statusleiste. 24 Vorgehensweise Die oberste Menüleiste ist die Haupmenüleiste. Diese ist fest in der Oberfläche integriert und kann nicht ausgeblendet werden. Die Werkzeugleiste Durchsuchen ist standardmäßig als zweite Menüleiste eingeblendet, darf aber ausgeblendet werden. Innerhalb der Statusleiste können Informationen, wie z.B. der aktuelle Maßstab und die Koordinaten der Cursorposition angezeigt werden. Abbildung 4-9: ArcPad Standardoberfläche Hauptmenüleiste: Die Hauptmenüleiste enthält alle grundlegenden Funktionen und Werkzeuge, die zur Bedienung des Programms wichtig sind. Die wichtigsten werden nachfolgend näher betrachtet. Karte öffnen Dieser Menüpunkt ermöglicht im Wesentlichen das Erstellen einer neuen Karte oder eines neuen Layers sowie das Öffnen einer vorhandenenen Karte über einen Datei-Manager. Desweiteren kann die Karte gespeichert und das Programm beendet werden. Layer hinzufügen Über Layer hinzufügen wird ein Datei-Manager geöffnet. Es kann zum gewünschten Verzeichnis navigiert und ein Thema in die Karte geladen werden. Internet-Server hinzufügen Mit Hilfe dieses Werkzeugs kann ArcPad mit einem Internet-Server verbunden werden. 25 Vorgehensweise In dem sich öffnenden Fenster wird dazu die URL des ArcIMS Internet Servers eingegeben, mit dem man verbunden werden möchte. Über den AktualisierenButton rechts neben der URL werden alle verfügbaren Dienste aufgelistet. Der ausgewählte Service kann sofort oder zu einem späteren Zeitpunkt über den MeAbbildung 4-10: ArcPad InternetServer hinzufügen nüpunkt Layer hinzufügen geladen werden. Geography Network Hier startet ArcPad automatisch den Internet Explorer und öffnet die Seite www.geographynetwork.com wenn eine TCP/IP-Verbindung besteht. Diese, von ESRI angebotene Internetseite, stellt eine Vielzahl an geographischen Daten zur Verfügung. Für weitere Informationen über Geography Network wird auf die angegebene Seite verwiesen. Layer-Dialog Der Layer-Dialog zeigt alle in der Karte vorhandenen Themen an. Diese können ein- und ausgeblendet sowie editierbar gemacht werden. Sind diese editierbar, können auch die Eigenschaften des Layers editiert werden. Neben der Änderung der Abbildung 4-11: ArcPad Dialog Layer Reihenfolge der Layer oder dem Löschen eines Layers kann au- ßerdem festgelegt werden, ob für das Thema der Identifizieren-Button aktiv sein soll oder nicht. Ist dieser nicht aktiv, so werden, bei Klicken mit dem IdentifizierenButton in die Karte, anstatt der Attribute des Objekts lediglich die Koordinaten der Mauszeigerposition angezeigt. Optional ist es möglich ein Kartengitter einzublenden oder den GPS-Tracklog zu aktivieren. Hierbei wird die Route, die der Nutzer läuft, bei aktivem GPS-Empfang automatisch aufgezeichnet. In einem vorab definierten Zeitintervall ermittelt ArcPad die GPS-Punktkoordinaten und zeichnet sie als Punkte in das GPS-Tracklog Layer ein. 26 Vorgehensweise GPS Dieses Dropdown-Menü bietet GPS-Funktionalitäten an. Diese sind das Öffnen und Schließen des GPS Positionsfensters, die Aktivierung bzw. Deaktivierung des GPSEmpfangs, das Starten und Beenden des GPS Tracklogs und das Öffnen bzw. Schließen des GPS Debugfensters zur Behebung von Problemen bei der GPSVerbindung. Das GPS Positionsfenster gibt einen Überblick über die empfangenen Satelliten, die Positionskoordinaten und zeigt Informationen zur Navigation. Unter anderem ist hier die Anzeige eines Kompasses möglich, der die Orientierung im Gelände erleichtert. Tools Hier können unter dem Punkt Optionen die Eigenschaften der Anwendung geändert werden. Unter anderem können Einstellungen für die GPS-Verbindung vorgenommen werden. Außerdem kann hier eine Maßstabsleiste hinzugefügt oder die Statusleiste ausgeblendet werden, wodurch das Kartenbild vergrößert wird. Unter dem Menüpunkt Werkzeugleisten können die Werkzeugleisten Durchsuchen und Bearbeiten zur Oberfläche hinzugefügt oder ausgeblendet werden. Weitere interessante Funktionen von ArcPad: Suchen In dem sich öffnenden Fenster kann, innerhalb eines gewählten Themas, nach Objekten mit bestimmten Attributwerten gesucht werden. Identifizieren Bei aktiviertem Identifizieren - Button wird nach Selektieren eines Objekts in der Karte ein Fenster geöffnet, welches die Attribute und Koordinaten des ausgewählten Objekts anzeigt. 27 Vorgehensweise Erweiterte Auswahl Mit Hilfe dieser Funktion wird, nach Aufziehen eines Rechtecks in der Karte, ein Fenster geöffnet, welches in einer Baumstruktur alle Objekte der Themen auflistet, welche im Ebenenfenster zur Identifikation aktiviert sind. Es besteht dann die Möglichkeit auf ein in der Liste ausgewähltes Objekt zu zoomen, es als Ziel zu definieren oder seine Attribute anzeigen zu lassen bzw. bei ediAbbildung 4-12: ArcPad Werkzeug Erweiterte Auswahl tierbarem Layer zu bearbeiten. Gehe zu Das Werkzeug Gehe zu ermöglicht die Bestimmung eines Ziels in der Karte, zu welchem navigiert werden soll. Ist das Ziel in der Karte angegeben, wird bei aktivem GPS im GPS Positionsfensters die Entfernung und Richtung zum Ziel angezeigt. Mit GPS auswählen Über diesen Button kann das an der aktuellen GPS-Postition vorhandene Objekt selektiert werden. Messen In ArcPad besteht die Möglichkeit der Streckenmessung, Radialmessung und Freihandmessung in der Karte. 28 Vorgehensweise Lesezeichen einfügen Eine hilfreiche Funktion ist die des Einfügens eines Lesezeichens. Der aktuelle Kartenausschnitt wird dabei gespeichert. Über den Menüpunkt auf Lesezeichen zoomen kann dieser Ausschnitt zu einem späteren Zeitpunkt wieder aufAbbildung 4-13: ArcPad Werkzeug Lesezeichen gerufen werden. Unter dem Menüpunkt Lesezeichen verwalten können die gespeicherten Lesezeichen bearbeitet oder gelöscht werden. 4.1.2.5 Was fehlt für den geplanten Viewer ? Der zu entwickelnde mobile GIS-Viewer soll den Verwaltungsbehörden lizenzfrei zur Verfügung gestellt werden. ArcPad kann nicht lizenzfrei genutzt werden. Pro Installation fallen Lizenzgebühren von derzeit 500.- € an. Ein weiterer wichtiger Punkt, der für eine Eigenentwicklung spricht, ist der, dass ArcPad die Verwaltung von Imagekatalogen zur Anzeige von gekachelten Rasterkarten nicht unterstützt. Gerade im Umweltbereich ist das Anzeigen von verschiedenen Rasterkarten jedoch unentbehrlich. Die Verkleinerung des Datenvolumens durch das Kacheln der Rasterkarten und deren Verwaltung in Imagekatalogen führt zu einem erheblichen Zeitgewinn und einer verbesserten Performance. ArcPad ist in seinem Entwicklungspotential eingeschränkt. Die Oberfläche kann zwar in ArcPad Studio benutzerdefiniert angepasst werden, jedoch dürfen keine neuen Komponenten implementiert werden. Es ist also z.B. nicht möglich einen Themenmanager zur Auswahl von Themen aus einem Themenbaum zu integrieren. ArcPad bietet auch nicht die Möglichkeit Kartenausschnitte oder Attributtabellen selektierter Objekte in Windows-Programme wie Microsoft Excel oder Word zu exportieren. Dies wäre für die Arbeit eines Mitarbeiters einer Verwaltungsbehörde im Gelände jedoch sehr hilfreich. Die Informationen können so vor Ort evtl. mit Bemerkungen versehen und für die weitere Auswertung im Büro gespeichert werden. 29 Vorgehensweise 4.2 Konzeption des geplanten Viewers RIPSPad Im Hinblick auf die an die mobile GIS-Lösung gestellten Anforderungen und unter Beachtung der technischen Möglichkeiten kann zur eigentlichen Konzeption der geplanten Anwendung „RIPSPad“ übergegangen werden. Schon der gewählte Name „RIPSPad“ macht deutlich, dass der mobile GIS-Viewer in die Reihe der RIPS-Werkzeuge integriert ist. Darüber hinaus zeigt er, dass die Anwendung speziell für die Verwendung für Umweltaufgaben innerhalb der Fachbehörden im Bereich Ökologie, Boden- und Naturschutz entwickelt wird. Bei der Konzeption muss sichergestellt sein, dass die zukünftigen Nutzer ein Programm zur Verfügung gestellt bekommen, das sie bei ihrer Arbeit im Gelände unterstützt. Entlastung bei der Bewältigung ihrer Aufgaben bringt jedoch nur eine Software, die übersichtlich und leicht zu bedienen ist. Dies soll unter anderem dadurch erreicht werden, dass die Funktionen auf die Wesentlichen beschränkt bleiben. Der Schwerpunkt soll auf der Visualisierung der Kartenthemen und der Informationsgewinnung aus diesen bestehen. 4.2.1 Daten und Datenstruktur Grundsätzlich soll die Anwendung RIPSPad wie das Programm „RIPS-Viewer“ (Kapitel 4.1.1) auf dateibasierte Datenbestände zugreifen können. Die Daten sollen zum größten Teil offline auf dem Gerät verfügbar sein. Diese werden in dem sogenannten GIS_DATA-Verzeichnis abgelegt, welches in Kapitel 4.2.1.3 beschrieben wird. In der Diplomarbeit wurde zur Speicherung der Daten eine SD-Speicherkarte mit 1 GB Speichervolumen verwendet. Diese reicht i.d.R. für die Speicherung der Daten eines Bearbeitungsgebiets eines Landkreises aus. Neben dem Offline-Zugriff auf die Daten soll es möglich sein über das Internet zusätzliche und hoch aktuelle Kartenthemen zu laden. Wie in der Aufgabenstellung festgelegt soll die geplante Anwendung den Zugriff auf die Daten des UIS ermöglichen. Kapitel 1.3 erläutert die Daten des RIPS-Pool. Aufgrund der eingeschränkten Bedingungen in Bezug auf Speicher und Performance müssen, insbesondere im Bereich der Rasterdaten, die Karten für die Visualisierung auf dem PDA aufbereitet werden. 4.2.1.1 Rasterdaten Um die Performance zu erhöhen werden die Orthophotos und digitalen Topographischen Karten in kleinere Kacheln als bei der Verwendung auf dem PC unterteilt und diese in sogenannten Imagekatalogen verwaltet. Die Kachelung der Imagedateien kann mit dem Programm Wgeo der Firma Wasy erfolgen. Nähere Informa30 Vorgehensweise tionen zu diesem Programm sind auf den Internetseiten www.wasy.de/deutsch/index.html und www.wasy.de/deutsch/produkte/wgeo/ index.html (besucht im März 2005) zu finden. Jeder Imagedatei ist ein entsprechendes Worldfile zugeordnet, das zur Georeferenzierung des Bildes in der Karte dient. Das zu einer *.jpg-Datei zugehörige Worldfile besitzt die Endung *.jgw. Der Aufbau eines Worldfile soll anhand des folgenden Beispiels erläutert werden: 0.25000000000000 0.00000000000000 0.00000000000000 -0.25000000000000 3454500.12500000000000 5432999.87500000000000 Die erste Zeile gibt die horizontale Pixelgröße in Metern an. Zeile 2 und 3 sind Rotations-Koeffizienten. Diese sind im Normalfall gleich Null. Die vierte Zeile beinhaltet die vertikale Ausdehnung eines Pixels in Metern. Aufgrund des Ursprungs der Bilddatei in der linken oberen Ecke trägt diese Angabe ein negatives Vorzeichen. Die Koordinaten des Zentrums des Pixels der linken oberen Ecke werden in den beiden letzten Zeilen definiert. Bei den Imagedateien des RIPS werden diese als Rechts- und Hochwert in Gauß-Krüger-Koordinaten abgebildet (WRLDF_2005). 4.2.1.2 Vektordaten Im Bereich der Vektordaten (*.shp) sollte das Datenvolumen einer Karte derzeit 2 MB nicht übersteigen. Hier muss eine Lösung gefunden werden, wie die Daten, ohne Informationsverlust, sinnvoll aufbereitet werden können. Folgende Ansätze sind denkbar: • Ausdünnen der Karteninhalte auf die wichtigsten Inhalte • Zerlegung von komplexen Inhalten auf einfache Layer • Verkleinern der Karten auf einzelne Gebiete, z.B. Regionen, Orte,... Schwerpunkt der Diplomarbeit ist die Konzeption und Entwicklung eines Werkzeuges zur Visualisierung der Daten auf dem PDA. Die z.Zt. noch beschränkte Rechenleistung von mobilen Geräten wird sich erfahrungsgemäß schnell ändern, so dass der Umgang mit großen Datenmengen schon bald kein Problem mehr darstellen wird. Aus diesen Gründen wird die Aufbereitung der Vektordaten hier nicht näher untersucht. 4.2.1.3 Verzeichnisstruktur im Geodatenverzeichnis „GIS_DATA“ Ein PDA unterliegt, gegenüber einem PC-Arbeitsplatz, Einschränkungen in Bezug auf Displaygröße und Eingabefunktion. Um den Zugriff auf Daten in der Anwen- 31 Vorgehensweise dung benutzerfreundlich und übersichtlich zu gestalten, sollte daher die Verzeichnishierarchie auf einem mobilen Gerät nicht zu tief sein. Dies erforderte eine Anpassung der GIS_DATA Struktur für die Anforderungen eines PDA. Das GIS_DATA-Verzeichnis für die Verwendung in RIPSPad ist wie folgt aufgebaut: Geodatenverzeichnis „GIS_DATA“ Daten der Automatisierten Liegenschaftskarte (ALK) Digitales Landschaftsmodell DLM1000 (ATKIS) 1: 1 Mio Digitales Landschaftsmodell DLM25-BW (ATKIS) 1: 25.000 RIPS-Daten-Verzeichnis Zielordner für Internetzugriff auf Karten Dateien für RIPSPad Themenbaum / Metadaten Rasterdaten-Verzeichnis Abbildung 4-14: GIS_DATA Verzeichnisstruktur für den PDA 4.2.2 Welche Funktionalitäten sind erforderlich ? Tabelle 4-1 zeigt, welche Funktionalitäten aufgrund der Anforderungen und nach der Untersuchung vorhandener Viewer für RIPSPad geplant sind. Gleichzeitig wird eine Bewertung der einzelnen Funktionen vorgenommen: 0 1 2 3 Grundvoraussetzung sehr wichtig wichtig weniger wichtig Funktionalität Bewertung Themen- und Projektverwaltung: Thema manuell laden, hierbei sollte der auch Zugriff auf Unterverzeichnisse möglich sein. 0 Thema über Themenbaum laden. Anzeige aller auf der Speicherkarte des Gerätes vorhandenen Themen. 0 Thema über Themenbaum laden. Anzeige der, auf der Speicherkarte des Gerätes vorhandenen Themen, welche an der aktuellen GPS-Position verfügbar sind. („Durchstichliste“) 1 Neues Thema erstellen 3 Ebenenmanager zum Ein-, Ausblenden, Aktivieren und Schließen der einzelnen Ebenen, sowie zur Änderung der Reihenfolge der Ebenen. 0 Themenliste, die eine Art Legende darstellt. 1 32 Vorgehensweise Lesezeichen, zur Speicherung und zum Aufrufen von Kartenausschnitten. 2 Neues Projekt anlegen 1 Historie der zuletzt geöffneten Projekte 3 Projekt speichern 1 Zugriff auf Objekte und Sachdaten: Thementabelle, welche die Sachdaten des aktiven Themas anzeigt. 1 Identifizieren von Objekten 0 Abfrage zum aktiven Thema über Abfragemanager 1 Statistik 3 Auswahl von Objekten, Auswahl aufheben 0 GPS-Auswahl (Auswahl der Objekte an der aktuellen GPS-Position) 1 Gehe zu Auswahl (Navigationshilfe zu einem ausgewählten Punkt, d.h. Anzeige der Richtung und Entfernung) 2 Anzeige- und Zoomfunktionen: Zoom auf volle Ausdehnung 1 Zoom auf Auswahl 1 Zoom auf aktives Thema 1 hinein-, herauszoomen fix 2 hinein-, herauszoomen variabel 0 Auf GPS-Position zentrieren 1 Kartenausschnitt bewegen 0 Übersichtsfenster, welches den aktuellen Ausschnitt in einer Übersichtskarte anzeigt. 2 Legendeneditor 1 Kommunikation: GPS an / aus 0 GPS-Positionsfenster 1 GPS-Themenauswahl (über Aufziehen eines Rechtecks in der Karte soll der Themenmanager geöffnet werden und ein Themenbaum anzeigen mit allen Themen die in der Bounding Box auf dem Gerät zur Verfügung stehen. 3 Internetanbindung zum Hinzuladen eines Themas über einen Kartenserver oder zur Sach-Informationsbeschaffung. 1 Internetexplorer öffnen, zum Schnellzugriff auf Informationen, wie z.B. Verordnungstexte,... 3 33 Vorgehensweise Word und Excel öffnen, zur Aufnahme von Notizen 3 Beschriften des aktiven Themas: Automatische Beschriftung der gesamten Ebene 3 Beschriftung von Einzelobjekten 2 Einstellung des Beschriftungsformats 3 Beschriftung auswählen, Auswahl aufheben 3 ausgewählte Beschriftung löschen, gesamte Beschriftung löschen 1 Messen: Einheit festlegen 3 Streckenmessung 1 Flächenmessung 1 GPS-Streckenmessung, GPS-Flächenmessung 1 Punktaufnahme 3 Maßstab: Numerischer Maßstab 0 Maßstabsleiste ein- / ausblendbar 1 Maßstab editieren 1 Sonstige Dialoge und Einstellungen: Dialog „Einstellungen“, z.B. zur Konfiguration von Dateipfaden 1 Hilfe, Info 1 Statusleiste ein- und ausblenden 2 Tabelle 4-1: Konzeption der Funktionalitäten des geplanten GIS-Viewers 4.3 Technische Realisierung Die technische Realisierung gliedert sich in eine erweiterte Konzeptionsphase und die darauf folgende Umsetzung der gewonnenen Erkenntnisse. In der Konzeptionsphase soll untersucht werden, welche bereits auf dem Markt verfügbaren Softwarekomponenten als Basis für die Entwicklung eingesetzt werden können. In der Umsetzungsphase wird zur eigentlichen Programmierung der Anwendung übergegangen. 4.3.1 Untersuchung möglicher Bausteine Am Markt werden bereits eine Vielzahl von Komponenten angeboten, die Funktionen zur Entwicklung von Geoinformationssystemen zur Verfügung stellen. Daher 34 Vorgehensweise ist es heutzutage effizienter bereits bestehende Bausteine für die eigene Anwendungsentwicklung zu nutzen. Für den geplanten GIS-Viewer ist zu untersuchen, welche Bausteine als Basis für die Entwicklung unter Windows CE .NET 4.2 dienen können. 4.3.1.1 Esri MapObjects® LT Geplant war die Entwicklung des mobilen GIS-Viewers innerhalb des Compact Framework der Entwicklungsumgebung Visual Studio .NET mit der Programmiersprache C#. Dabei sollte, wie beim unter Punkt 4.1.1 erläuterten RIPS Viewer, auf die Komponente MapObjects® LT der Firma Esri aufgesetzt werden. Was ist unter dem Begriff MapObjects® LT zu verstehen ? MapObjects® LT ist ein ActiveX-Komponente (*.ocx) zur Entwicklung GIS-basierter Anwendungen. Es bietet eine große Anzahl von Komponenten, zur schnellen und effizienten Anwendungsentwicklung von GI- und Kartendiensten. Dabei kann die Software MapObjects® LT kostenfrei genutzt werden (MOLT_2005). Tabelle 4-2 zeigt die beinhalteten Features. Die Systemvoraussetzungen werden in Tabelle 4-3 aufgeführt. Feature Beschreibung Unterstützte Datenformate ArcInfo™ coverages und ESRI® shapefiles CAD-Formate (DXF, DWG, DGN) Imagekataloge und die Rasterformate GeoTIFF, TIFF, JPEG, ERDAS, MrSID wichtigste Funktionen Anzeige einer Karte mit mehreren Ebenen Anzeige von georeferenzierten Rasterthemen Erzeugung neuer Shapefiles Beschriftung von Objekten Kartenausschnitt verschieben Zoomfunktionen Erzeugung thematischer Karten Datenexport in Datei oder auf Drucker Unterstützung von Messfunktionen und 3D-Themen Räumliche und logische Abfragen zu Kartenthema Maßstabsleiste Legende Räumliche Abfragemöglichkeiten Generierung von SQL-Abfragen Verschneidungsfunktionen zur Selektion von Objekten unter Berücksichtigung der räumlichen Zusammenhänge Umfangreiches Datenpaket Im Lieferumfang enthalten ist eine CD mit 3 GB nutzbaren Daten der gesamten Welt sowie detaillierter Daten der USA. Tabelle 4-2: Features Esri MapObjects® LT 35 Vorgehensweise Verfahren Systemvoraussetzungen Entwicklung Verwendbar in jeder Entwicklungsumgebung, die ActiveX Komponenten unterstützt, wie z.B. Visual Basic, Visual Basic for Application (VBA), Visual C++, Visual Studio .NET (VB.NET und C#), Delphi, PowerBuilder oder Microsoft Access. Anwendung Windows® 95 und höher oder Windows NT® 4.0 und höher Tabelle 4-3: Systemvoraussetzungen Esri MapObjects® LT Bei der Recherche, ob und wie MapObjects® LT als Grundlage für die Entwicklung einer GIS-Anwendung für den PDA genutzt werden kann, hat sich die Einbindung von ActiveX - Komponenten in das Compact Framework der Entwicklungsumgebung Visual Studio .NET als erste Hürde gezeigt. Dort wird die direkte Einbindung von ActiveX- und COM-Komponenten nicht unterstützt, da nach Auskunft eines Supportmitarbeiters der Firma Microsoft nicht jede ActiveX-Komponente zu jedem mobilen Gerät kompatibel ist. Dies ist auf das jeweilige Betriebssystem und die unterschiedlichen Prozessortypen zurückzuführen. Hier besteht sicher noch Entwicklungsbedarf bei den Geräte- und Softwareherstellern in Bezug auf Standardisierung und Kompatibilität der Geräte Hard- und Software. Die Einbindung von ActiveX-Komponenten ist im .NET Compact Framework nur über eine umfangreiche Implementierung sogenannter Wrapper möglich. Diese übersetzen die Inhalte der ActiveX-Komponente in ein für .NET lesbares Format. Eine weitere Möglichkeit zur Einbindung von ActiveX- und COM-Komponenten in das .NET Compact Framework wird im Internet das Produkt CFCOM der Firma Odyssey Software angeboten. Dabei handelt es sich um eine Bibliothek, die zur Integration von COM- und ActiveX-Komponenten genutzt werden kann. Jedoch wurde die Verwendung von CFCOM nicht weiter untersucht, da die Grundvoraussetzung, dass die zu benutzende ActiveX-Komponente zur jeweiligen Zielplattform kompatibel sein muss, nicht gegeben war. Die verschiedenen Untersuchungen und Tests MapObjects® LT in die Entwicklungsumgebung zu integrieren und Gespräche mit Mitarbeitern der Firma Esri haben gezeigt, dass MapObjects® LT zu WindowsCE nicht kompatibel ist. Esri hat nicht vor in absehbarer Zeit eine Version für die Anwendung unter WindowsCE zur Verfügung zu stellen. Diese konnten jedoch schnell als mögliche Grundlage der Entwicklung ausgeschlossen werden. 36 Vorgehensweise 4.3.1.2 Esri MapObjects Java Edition Neben MapObjects LT kam als Baustein für die Umsetzung des geplanten mobilen GIS-Viewers auch die GIS-Komponenten MapObjects JavaEdition der Firma Esri in Betracht. Bei MapObjects JavaEdition (JE) handelt es sich um die Java-Version von MapObjects, die einen größeren Funktionsumfang als MapObjects LT besitzen. Die Überlegung war, ob aufgrund der weitestgehenden Plattformunabhängigkeit von Java MapObjects JE unter WindowsCE einsetzen zu können. Jedoch sind MapObjects JE nicht lizenzfrei und können somit als Grundlage für die Entwicklung ausgeschlossen werden. Daher wurde die Kompatibilität zu WindowsCE nicht weiter untersucht. Nähere Auskünfte über MapObjects JavaEdition gibt es in dem Dokument http://www.esri.com/library/brochures/pdfs/mo_java_bro.pdf. 4.3.1.3 SVG+ geo Eine weitere Alternative gegenüber der technischen Realisierung innerhalb des .NET Compact Framework mit C# könnte die Entwicklung eines Viewers mit SVG sein. Der vom World Wide Web (W3C) entwickelte XML-basierte Vektorgraphikstandard Scaleable Vector Graphics (SVG) (W3C 2003a) dient der Visualisierung von graphischen Daten. Neben Vektordaten wird auch die Einbettung von Rasterbildern, Audio- und Videodaten unterstützt. Da der Verbreitungs- und Unterstützungsgrad von SVG stetig zunimmt, bietet sich SVG auch zur Visualisierung von Geodaten an. Es werden bereits eine große Anzahl von Werkzeugen angeboten, die dem Export von SVG- Dateien aus Geoinformationssystemen heraus erlauben. Jedoch sind die Sprachmittel von SVG in Bezug auf die Anforderungen im Geodatenbereich begrenzt. Neben der Visualisierung betrifft dies vor allem auch die Erfassung von Sach- und Geometriedaten. Zur Lösung dieser Problematik wurde durch das Institut für Angewandte Photogrammetrie und Geoinformatik (IAPG) und die Fachhochschule Oldenburg/Ostfriesland/Wilhelmshaven das Projekt „SVG-Viewer für mobile Endgeräte“ ins Leben gerufen. Ziel des Projektes ist die Spezifikation eines SVG-Profils für mobile GeoAnwendungen (SVG+ geo ) auf Basis von Geography Markup Language (GML) sowie die Implementierung eines Viewers für SVG+ geo . SVG+ geo stellt eine Erweiterung und Ergänzung von SVG zur Unterstützung von, insbesondere mobilen GIS-Anwendungen dar. Es baut auf den SVG-Profilen SVG Basic (SVGB) und SVG Tiny (SVGT) auf. Diese eingeschränkten Profile wurden speziell für die Anwendung auf mobilen Geräten entwickelt, da das Ausgangsprofil 37 Vorgehensweise von SVG durch seine Komplexität selbst schon auf dem Desktop PC sehr langsam ist (GINSVG_2005). Tabelle 4-4 zeigt einen Auszug der Erweiterungen von SVG+ geo. Erweiterung Beschreibung Maßstabsabhängige Darstellung von SVGElementen Einführung eines neuen Elementes lodvisibility, zur Definition von Maßstabsbereichen. Laden und Entladen von Kartenausschnitten Das SVG+ geo - Element lod-display definiert die Bereiche, in denen Karteninhalte dynamisch geladen bzw. freigegeben werden sollen. Die räumliche Definition der Bereiche erfolgt entweder in absoluten Koordinaten oder als Distanzangabe bezüglich des Basiselements. Erfassung von Geometrien mit XForms-GI Als Erweiterung von XForms, welche in SVG der Erfassung alphanumerischer Daten dient stellt SVG+ geo XForms-GI zur Verfügung. XForms-GI Kontrollelemente sind z.B.: - Selektion von Objekten - Definition neuer geometrischer Elemente - Modifikation vorhandener Elemente - Verarbeitung von Sensordaten, insbesondere GPS Koordinatensysteme und geodätische Transformationen Einführung einer, für mobile Endgeräte vereinfachten Angabe des Bezugssystems in XForms-GI. Sensoreingaben Durch das Element sensor können Sensoreingaben wie die GPS-Position in ein SVG+ geo Dokument eingebunden werden. Auch das Nachladen von SVGElementen entsprechend der Position ist möglich. Tabelle 4-4: Erweiterungen von SVG durch SVG+ geo (Auszug) Innerhalb des Projekts wurde ein eigener SVG-Viewer als Basis der prototypischen Umsetzung von SVG+ geo entwickelt. Der Kern des Viewers soll als Open-Source zur Verfügung gestellt werden. Die Implementierung erfolgte mit der Programmiersprache C++, da diese erfahrungsgemäß die deutlichere Leistungsfähigkeit gegenüber Java oder C# besitzt (SVGGEO_2004). Tabelle 4-5 zeigt die Plattformen, für die bereits lauffähige Implementierungen vorliegen. 38 Vorgehensweise Hard- / Software Systemvoraussetzungen Mobile Endgeräte Navigationsendgeräte Notebooks mit Mobilfunkeinheit Personal Digital Assistants (PDA) Mobiltelefone Betriebssysteme PocketPC PalmOS Symbian OS Smartphone 2002, ... Tabelle 4-5: Systemvoraussetzungen SVG+ geo Abbildung 4-15: Beispielanwendung mit SVG+ geo Quelle: Weitkämper, 2004, S. 16 Nachteil von SVG+ geo ist, dass die Daten zur Verwendung in das SVG-Format konvertiert werden müssen. Diese Arbeit besitzt jedoch den Anspruch, eine Anwendung in Anlehnung an die bestehende Produktlandschaft des RIPS mit direktem Zugriff auf die Daten zu entwickeln. Daher erscheint die Entwicklung auf Basis von SVG+ geo eher ungeeignet. 4.3.1.4 Java GeoTools lite „Das 1996 an der Universität Leeds ins Leben gerufene Projekt GeoTools entwickelt Java-Bibliotheken als Grundlage für OpenGis-konforme Geoinformationssysteme. In der ersten Version der Anwendung wurde ein Java Applet zur Visualisierung von Geoinformationen entwickelt, das noch als GeoTools-Lite existiert. In der zweiten 39 Vorgehensweise Generation (GeoTools2) wurde das Projekt vollständig überarbeitet und nutzt nun die volle Funktionalität der Java-Plattform aus.“ ... „Es erlaubt Entwicklern, geografische Informationen in eigenen Anwendungen einzubinden, anzuzeigen und zu verarbeiten“.(Voigt, 2004) Die neuere Version GeoTools2 ist für die Anwendungsentwicklung unter WindowsCE ungeeignet. Sie ist nur auf einer Java 2 Runtime Environment lauffähig. Zusätzlich benötigt sie das Modul Java Advanced Imaging, das nicht für WindowsCE angeboten wird. Im Gegensatz dazu ist GeoTools lite kompatibel mit der Java 1.1. Spezifikation. Dadurch ist sie auch auf der Jeode Runtime Environment der Firma Insignia lauffähig. Bei dieser handelt es sich um eine Laufzeitumgebung, die auf der PersonalJava 1.2. Spezifikation basiert und zum Betriebssystem WindowsCE kompatibel ist. ‚PersonalJava’ stellt eine kleine Variante des Java Standards dar, die speziell für die Entwicklung von Anwendungen für mobile Geräte mit wenig Ressourcen gedacht ist (Rademacher_2004). Vorteil der Verwendung von Java ist eine weitestgehende Portabilität der entwickelten Software. Sie kann auf jeder Plattform verwendet werden, die die entsprechende Laufzeitumgebung unterstützt. In der folgenden Tabelle werden einige Klassen der GeoTools-Bibliothek kurz vorgestellt und erläutert. Klassenbezeichnung Beschreibung GeoPoint Erzeugung eines Punktobjektes mit zwei DoubleWerten. GeoRectangle Erzeugung eines Rechtecks mit vier Double-Werten. Verschneidung mit einem Punkt-Objekt möglich. Viewer Anzeige der Geodaten und Verarbeitung von verschiedenen Eingaben. ImageLayer Konstruktion von ImageLayer mit Hilfe einer URL zu einem Bild und einem GeoRectangle möglich. Theme Enthält die Geodaten zur Anzeige im Viewer. ShadeStyle Erlaubt die Attributierung der Signaturen für die Darstellung der Geodaten. ShapefileReader Ermöglicht das Einlesen von ESRI Shapefiles. ZoomTool Hinein- / Herauszoomen in die Karte des Viewers. PanTool Verschieben des Kartenausschnitts. Tabelle 4-6: Klassen Java GeoTools lite 40 Vorgehensweise An der Universität Hannover wurde im Rahmen einer Bachelor Thesis bereits ein Java-basierter Viewer mit GeoTools lite für den PDA entwickelt. Mit vier zusätzlichen Packages konnte der Funktionsumfang der Anwendung über die durch GeoTools lite gegebenen Klassen hinaus erweitert werden. Die Kurzbezeichnungen der Packages lauten gps, transformation, navigator und gui. Sie ermöglichen die Implementierung des Hauptframes der Anwendung und die Anbindung an einen GPSEmpfänger und damit die Realisierung einer Navigationslösung für den PDA. 4.3.1.5 GeoPAD 1.1 Bei der Software GeoPAD handelt es sich um ein im Internet frei erhältliches Geoinformationssystem (GIS) für den Pocket PC. In einer Multi-Layer-Umgebung ist die Anzeige und Bearbeitung von georeferenzierten Vektor- und Rasterdaten möglich. Folgende Datenformate werden unterstützt: • ESRI shape files (*.shp) • Windows® bit map • JPEG Abbildung 4-16 zeigt die original GeoPad 1.1 Anwendung. Abbildung 4-16: GeoPad 1.1 Applikation Neben der fertigen GeoPAD-Applikation, die für den ARM-Prozessor erstellt wurde, wird eine modifizier- und erweiterbare Anwendung als Open-Source mit der dazugehörigen Bibliothek ‚GeoSoft.dll’ zum Download angeboten. Das Paket beinhaltet außerdem eine Liste der Funktionen, die über die DLL ansprechbar sind und eine kurze Dokumentation über die Installation und Weiterentwicklungsmöglich- 41 Vorgehensweise keit von GeoPAD. Zusätzlich wird ein Datenpaket mitgeliefert, welches zum Test von GeoPAD verwendet werden kann. Das Produkt GeoPAD wurde von der Firma Geo Soft, mit Sitz in Indien entwickelt. Es ist stark an die ESRI - Welt angelehnt. Die Anwendung GeoPAD bzw. die GeoSoft.dll kann als Basis für die Entwicklung einer mobilen GIS Lösung genutzt werden. Die Entwicklung erfolgt in eMbedded Visual C++ 4.0. Die Bibliothek GeoSoft.dll stellt dazu 146 Funktionen zur Verfügung, die aus dem Programm heraus aufrufbar sind. Tabelle 4-7 soll einen Überblick über die wichtigsten Funktionalitäten geben. Eine komplette Liste der Funktionen kann in der Datei GeoPADHelp.rtf, welche beim Download der Anwendung mitgeliefert wird, eingesehen werden. Funktionsgruppe mögliche Operationen Projekt Projekt öffnen Projekt speichern Kartenthema Neues Shapefile erzeugen Ebenenmanager Zoom / Ansicht Hinein-, Hinauszoomen Hinein-, Hinauszoomen in festen Stufen Auf aktive Ebene zoomen Auf Auswahl zoomen Kartenausschnitt verschieben Sachdatenabfrage Identifizieren von Objekten Thementabelle anzeigen Abfragemanager Beschriftung Gesamte Ebene automatisch beschriften Einzelbeschriftung Schriftformat einstellen Messen Freihandmessung Festlegen der Einheit GPS GPS an/ aus GPS Positionsfenster Tabelle 4-7: Funktionsübersicht GeoPAD 1.1 (GeoSoft.dll) 42 Vorgehensweise Je nachdem, ob man GeoPAD direkt als GI-System auf dem mobilen Gerät verwenden möchte oder ob es als Grundlage zur Entwicklung einer eigenen Anwendung dienen soll, werden die folgenden Systemkomponenten vorausgesetzt: Hard- / Software GeoPAD Anwendung GeoPAD Entwicklung Prozessortypen Intel StrongARM Hitachi SH3 MIPS X86 Pentium II oder höher Betriebssysteme Microsoft Windows CE 2.11 Microsoft Windows 9x, 2000, oder höher XP Speicher 32 MB RAM 64 MB RAM empfohlen 64 MB RAM 128 MB RAM empfohlen Software Microsoft ActiveSync 3.6 eMbedded Visual C++ Tabelle 4-8: Systemvoraussetzungen GeoPAD 1.1 4.3.2 Auswertung und Ergebnis der Untersuchung Nach der Evaluation möglicher Bausteine, die als Basis für die Entwicklung des mobilen GIS dienen könnten, werden diese in Tabelle 4-9 gegenübergestellt. Dadurch verfügt man über einen gesicherten Ausgangspunkt, der eine fundierte Entscheidung erlaubt, welche Komponente für RIPSPad eingesetzt werden soll. Die Tabelle führt die grundlegenden Ansprüche auf, die dabei an den Baustein gestellt werden. Die Auswertung erfolgt dann über + der Baustein erfüllt diese Anforderung und - der Baustein erfüllt diese Anforderung nicht. 43 Vorgehensweise Anforderung Map Objects LT Map Objects JE SVG+ geo Java GeoTool s lite GeoPAD 1.1 Kompatibel zu Windows CE - ? + + + Esri konform + + - + + nutzbare GISFunktionalitäten + + + + + GPS kompatibel + + + + + lizenzfrei + - + + + Individuell anpassbar + + + + + Tabelle 4-9: Auswertung der Untersuchung möglicher Bausteine Aus der Tabelle wird schnell ersichtlich, welche Bausteine nicht geeignet sind. Erster Ausschlussgrund ist die nicht gegebene Kompatibilität zu WindowsCE. Weitere wichtige Ausschlusskriterien sind die, kostenpflichtig bzw. nicht zur Esri-Produktlandschaft konform zu sein. Damit können Esri MapObjects LT, Esri MapObjects JE und SVG+ geo als mögliche Bausteine ausgeschlossen werden. Zur Entscheidungsfindung musste zwischen den beiden Produkten Java GeoTools lite und GeoPAD 1.1 abgewogen werden. Ein Pluspunkt für GeoTools lite ist sicherlich die Portierbarkeit von Java. GeoPad 1.1 überzeugt durch die Leistungsfähigkeit der Programmiersprache C++ und durch die große Anzahl vorhandener GIS-Funktionen. Aus diesen Gründen wurde GeoPad 1.1 als Grundlage zur weiteren Vorgehensweise gewählt. 4.3.3 Umsetzung Nach der Entscheidung für GeoPAD als Grundlage für die Entwicklung von RIPSPad soll die Anwendung GeoPAD im Folgenden genauer untersucht werden. 4.3.3.1 Beschreibung der Ausgangslage (GeoPAD Evaluierung) GeoPAD wird, wie in Kapitel 4.3.1.5 erläutert, in zwei unterschiedlichen Versionen geliefert. Zum einen als originale GeoPAD-Anwendung und zum anderen als Grundlage für die weitere Entwicklung (Entwicklungsversion). Abbildung 4-17 zeigt die Entwicklungsversion von GeoPad im Emulator. 44 Vorgehensweise Beide Versionen enthalten eine Titelleiste und eine Hauptmenüleiste. Im Gegensatz zur originalen Anwendung beinhaltet die Entwicklungsversion keine zusätzliche Werkzeugleiste. Zudem ist unterhalb des Kartenfensters keine Statusleiste integriert, wie dies im Original der Fall ist. Dort wird diese jedoch nicht zur Anzeige von Informationen, wie z.B. Koordinaten oder Maßstab genutzt (Originale GeoPad-Anwendung siehe Abb. 4-16). Zu beiden Versionen wird die bereits vorgestellte Abbildung 4-17: GeoPAD Entwicklungsversion GeoSoft.dll mitgeliefert. Diese Bibliothek stellt eine Vielzahl von Funktionen zur Verfügung, die für ein GI-System benötigt werden. Nachteil dabei ist, dass die Methoden in der DLL „verpackt“ sind. Somit ist es nicht möglich diese zu modifizieren. Deshalb kann die Bibliothek von GeoPAD auch nicht als echte Open Source angesehen werden. Tabelle 4-10 führt alle Funktionen auf, die in der originalen GeoPAD-Anwendung eingebunden sind. Gleichzeitig werden die einzelnen Funktionalitäten beschrieben und gegebenenfalls bewertet. Es soll ebenfalls geprüft werden, ob die jeweilige Funktion auch in der Entwicklungsversion vorhanden ist. Dabei ist zu betonen, dass diese bei der Weiterentwicklung integriert werden können. Jedoch hat sich bei der Recherche und nach Kontaktaufnahme mit dem Entwickler von GeoPAD, Herrn Khunti Popat der Firma Geo Soft, herausgestellt, dass die GPS-Funktionalitäten nicht zur Entwicklung eigener Anwendungen freigegeben werden. Diese lassen sich also nicht einbinden. Dies stellt jedoch keinen Nachteil dar, da die GPS-Anbindung parallel innerhalb einer Diplomarbeit an der FHT Stuttgart realisiert wird. 45 Vorgehensweise MenüFunktion punkt Beschreibung/ Bewertung Entwicklungsversion Thema hinzufügen Öffnet Standard-Öffnen-Dialog von WindowsCE. Zugriff ist standardmäßig nur auf die oberste Ordnerhierarchiestufe möglich. ja Neues Thema Öffnet Dialog zur Generierung eines neuen Shapefiles. ja Neues Projekt Schließt das aktuelle Projekt ohne vorherige Abfrage, ob dieses vorher gespeichert werden soll. nein Projekt speichern Öffnet Standard-SpeichernDialog von WindowsCE. Projekte werden als *.gsp gespeichert. ja Projekt speichern als Gleiche Funktion wie Projekt speichern. nein beenden Schließt die Anwendung. ja Auf volle Ausdehnung zoomen Zoomt auf volle Ausdehnung aller Ebenen. ja Auf Auswahl zoomen Zoomt auf selektiertes Objekt. ja Auf aktive Ebene zoomen Zoomt auf volle Ausdehnung der aktiven Ebenen. ja Zoom in (fix) Zoomt mit fester Zoomstufe hinein. ja Zoom out (fix) Zoomt mit fester Zoomstufe heraus. ja Zoom in Hineinzoomen durch aufziehendes Rechteck. ja Zoom out Herauszoomen durch aufziehendes Rechteck. ja Verschieben Kartenausschnitt verschieben ja Auf GPS-Position zentrieren Kartenausschnitt auf aktuelle GPS-Position zentrieren. Funktioniert nicht korrekt. Auf X Y zentrieren Funktion funktioniert nicht. ja Ebenenmanager Wenn Karte in View geladen ist, öffnet sich hier der Ebenenmanager. Dieser ermöglicht das Schließen, Ein- und Ausblenden und Verschieben der Ebenen. ja nein 46 Vorgehensweise Identifizieren Nach Anklicken eines Objektes öffnet sich ein Fenster zur Anzeige der Sachattribute. Das Editieren der Attribute ist nicht möglich. ja Punkt Selektion Auswahl eines Objekts durch Berührung mit Stift. Das ausgewählte Objekt wird rot dargestellt. ja Finden Objekt über Eingabe eines Freitextes finden. Zoomt automatisch auf dieses Objekt und selektiert es. Funktion ist nicht sehr nützlich, da Eingabe eines Freitextes die genaue Kenntnis eines Attributwertes des gesuchten Objekts erfordert. ja Einheit Auswahl der Einheit zum Messen – inches, feet, yards, miles, nautical miles, milimeters, centimetrs, meters, kilometers nein Messen funktioniert nicht nein Freihand Messung Bewegen des Stiftes über die Karte, es öffnet sich ein Fenster mit den Angaben der vonKoordinate, zu- Koordinate, direkten Entfernung (Luftlinie), tatsächliche Entfernung. Werte stimmen nicht, sind zu groß. Gehe zu Es wird eine Marke gesetzt, wohin navigiert werden soll, diese verschwindet erst nach Aufheben der Selektion wieder. – Muss noch mit GPS getestet werden. nein GPS PositionsFenster Muss noch mit GPS getestet werden. nein GPS aktivieren Wenn einmal angeklickt hört es nicht mehr auf nach einer Verbindung zu suchen. – Funktioniert nicht korrekt. nein GPS Tracklog Muss noch mit GPS getestet werden. nein GPS Debug Muss noch mit GPS getestet werden. nein ja 47 Vorgehensweise Feature Eigenschaften Über ‚Selektieren’ muss ein Objekt ausgewählt werden. Nach Klick auf Feature Eigenschaften öffnet sich ein Fenster mit den Attributen und Koordinaten des Objektes. Funktion ist durch ‚Identifizieren’ bereits vorhanden. nein Zoom auf selektiertes Feature Geht nur mit vorherigem Selektieren über das Selektierwerkzeug. nein Zentriere auf selektiertes Feature Nur mit Selektieren über Selektierwerkzeug. nein Gehe zu selektiertem Feature Nur mit Selektieren über Selektierwerkzeug. Setzt Marke an selektiertem Objekt. Muss noch mit GPS getestet werden. nein Selektiertes Feature löschen Löscht Objekt, das mit dem Selektierwerkzeug ausgewählt wurde. nein Hilfe Keine Funktion nein Über GeoPad… Öffnet Infofenster zu GeoPAD. ja Themen Tabelle Zeigt die Tabelle der aktiven Ebene. ja Abfrage Öffnet einen Abfrage-Manager zur Abfrage innerhalb der aktiven Ebene. Bei Drücken des QueryButtons kehrt man zur Karte zurück. nein Abfrage Ergebnis Zeigt das Ergebnis der vorher durchgeführten Abfrage in einem Fenster an, es ist nicht möglich auf das Ergebnis zu zoomen. nein Original Zeigt Rasterkarte in originaler Darstellung. ja Aufhellen Rasteroperation – hellt die Rasterkarte auf. ja Verdunkeln Rasteroperation – verdunkelt die Rasterkarte. ja Automatische Beschriftung Öffnet Fenster zur Auswahl eines Feldes der Sachdatentabelle des aktiven Themas zur Beschriftung. Bei Setzen des Häkchens im Kontrollkästchen ‚scale’, wird die Beschriftung maßstabsgebunden angezeigt. ja 48 Vorgehensweise Default EinzelBeschriftung Ermöglicht Auswahl des Feldes zur Beschriftung einzelner Objekte. ja Einzel-Beschriftung Beschriftet Objekt je nach ausgewählter Spalte nach Berührung mit dem Stift. ja Default Beschriftung Es öffnet sich ein Dialog, zur Einstellung des Zeichenformats. Auch hier kann gewählt werden, ob die Schrift maßstabsgebunden angezeigt werden soll. ja Beschriftung an / aus Aufgabe dieser Funktion unbekannt. ja Beschriftung auswählen Beschriftung durch Berührung mit dem Stift selektieren. Selektiert Beschriftung wird rot hervorgehoben. ja Selektion aufheben Auswahl von Beschriftung wird aufgehoben. ja Beschriftung löschen Löscht die zuvor ausgewählte Beschriftung ohne vorherige Sicherheitsabfrage. ja Alle Beschriftung löschen Löscht die gesamte Beschriftung ohne vorherige Sicherheitsabfrage. ja Auswahl aufheben Hebt die Auswahl von Objekten auf und entfernt gesetzte Marken der Funktion ‚Gehe zu’. ja Aktualisieren Führt einen Refresh des Kartenfensters durch. ja Normal Aufgabe der Funktion unbekannt. nein Selektieren (Selektierwerkzeug) Bei Klicken auf ein Objekt wird dieses mit einem umrahmenden Rechteck markiert. nein An GPS-Position selektieren Muss noch mit GPS getestet werden. nein Vertex Zu einem zuvor selektierten Objekt werden alle Punkte angezeigt. nein Punkt aufnehmen Nur bei eingeschaltetem GPS aktiv. Muss noch mit GPS getestet werden. nein 49 Vorgehensweise Vertex aufnehmen Setzen eines Anfangs- oder Endpunkt; nur bei eingeschaltetem GPS aktiv. Muss noch mit GPS getestet werden.) nein Vertices aufnehmen Setzen von Zwischenpunkten; nur bei eingeschaltetem GPS aktiv. Muss noch mit GPS getestet werden. nein Punkt nein Beinhaltet die Menüeinträge Point, Line, Polyline, Free Handline, Rectangel, Polygon, Circle, Ellipse, Freehand Polygon. Ist inaktiv, evtl. nur bei GPSEmpfang aktiv. Muss noch mit GPS getestet werden. Tabelle 4-10: Funktionen GeoPad 1.1 Applikation 4.3.3.2 Für den geplanten Viewer fehlende Funktionalitäten Für die Entwicklung des mobilen GIS-Viewers für die Umweltschutzverwaltung sind mit GeoPAD eine Vielzahl von Grundfunktionalitäten bereits gegeben. Dadurch kann die Programmierung auf die speziellen Anforderungen, die sich durch den Einsatz der geplanten Anwendung im UIS ergeben konzentriert werden. Die wichtigsten fehlende Funktionalitäten sind: • Anzeige des Maßstabs • Zugriff auf Unterverzeichnisse, bei manuellem Laden von Themen • Anbieten eines dynamisch erzeugten Themenbaums zur leichten Auswahl von Themen aus dem auf dem Gerät vorhandenen Datenpool • Visualisierung von Rasterkarten über Imagekataloge. Maßstabsabhängiges Laden der Kacheln entsprechend dem aktuellen Ausschnitt • Internetanbindung zum Laden einer Karte über Funk (GPRS) • GPS-Anbindung (FHT Stuttgart) Ferner besteht der Anspruch die Benutzungsoberfläche den Bedürfnissen eines einfach zu bedienenden Auskunftssystems anzupassen. Dazu gehört: • Beschränkung der Funktionalitäten auf die Wesentlichen • Zusammenfassen ähnlicher Funktionen zu einer Funktionsgruppe, die gemeinsam einen Menüpunkt ergeben 50 Vorgehensweise • Schwerpunkt auf die Visualisierung der Kartenthemen legen, d.h. das Kartenfenster muss groß genug sein. Dazu die große Anzahl der Funktionen auf möglichst wenig Platz zur Verfügung stellen • Integration einer ausblendbaren Statusleiste zur Anzeige von Informationen, z.B. dem Maßstab 4.3.3.3 Konzeption der Benutzungsoberfläche Das mobile Auskunftssystem soll für den Einsatz in den Umweltschutzverwaltungen Baden-Württembergs konzipiert werden. Daher werden die Bezeichnungen in der Anwendung in deutsch erfolgen. Die Bedienung der Anwendung soll möglichst intuitiv durchführbar sein. Dazu wäre es sinnvoll möglichst viele Funktionen über sprechende Icons und weniger über Schrift anzubieten. Da dies mit der Entwicklungsumgebung eMbedded Visual C++ 4.0 nicht realisierbar ist, kann diesem Anspruch leider nicht Rechnung getragen werden. Um die Bedienung dennoch möglichst einfach zu halten, soll versucht werden, die Funktionen in sinnvolle Gruppen einzuteilen und jeweils geschlossen einem Menüpunkt zuzuordnen. Dadurch wird die Anwendung logisch aufgebaut und der Nutzer erhält schnell einen Überblick, wo die einzelnen Funktionen zu finden sind. Um dem Benutzer die Bedienung der Software so einfach wie möglich zu gestalten, ist es weiterhin sinnvoll, wenn dieser durch möglichst wenige Zwischenschritte zu seinem Ziel gelangen kann. Dies kann z.B. dadurch realisiert werden, dass die Abfrage mit dem Abfragemanager direkt die Ergebnisliste anzeigt, ohne dass vorher der Menüpunkt Abfrage Ergebnis aufgerufen werden muss, wie es bei der originalen GeoPAD Anwendung der Fall ist. Zur weiteren Erleichterung der Anwendung zählt auch, dass möglichst wenige Eingaben mit dem Stift durch den Nutzer nötig sind und wichtige Menüpunkte auch über eine Schnellwahl, durch Klicken auf das Symbol in der Hauptmenüleiste, erreichbar sind. Um dem Anspruch zu genügen, dass das Kartenfenster den größtmöglichen Platz in der Anwendung erhält, ist es denkbar, nur eine fest integrierte Hauptmenüleiste einzubauen. Spezielle Funktionsgruppen können dann über ein- und ausblendbare Werkzeugleisten verfügbar gemacht werden. Ein weiterer Platzgewinn kann die Möglichkeit des Ausblendens der Statusleiste bringen. Abbildung 4-18 zeigt, wie der Aufbau der Benutzungsoberfläche gestaltet werden soll. 51 Vorgehensweise Sie unterteilt sich in eine Titelleiste, die den Namen der Anwendung „RIPSPad“ zeigt. Darunter befindet sich die Hauptmenüleiste, die durch DropDown-Menüs alle grundlegenden Funktionen zur Verfügung stellt. Darüber hinaus sind Werkzeugleisten aufrufbar, welche Gruppen von speziellen Funktionen, wie z.B. das Beschriftung von Ebenen, anbieten. Hauptteil der Anwendung ist das Kartenfenster zur Anzeige der Kartenthemen, an deren unteren Rand die Statusleiste angeordnet wird. Abbildung 4-18: Aufbau der Benutzungsoberfläche 4.3.3.3.1 Menüführung Wie bereits erwähnt soll die Anwendung eine Hauptmenüleiste erhalten, über die alle Funktionen erreichbar sind. Dabei sollen zusammengehörige Funktionen in Gruppen eingeteilt und einem Menüpunkt untergeordnet werden. Speziellere Funktionsgruppen sollen in zusätzlich aufrufbaren Werkzeugleisten zusammengefasst werden. Der Aufbau der Menüführung soll durch die folgenden Graphiken visuell verdeutlicht werden. Die einzelnen Komponenten werden dabei in unterschiedlichen Farben dargestellt (siehe Zeichenerklärung). Es soll verdeutlicht werden, in welchem Zusammenhang die Funktionen stehen. Die Reihenfolge der Diagramme gibt gleichzeitig die Reihenfolge der Menüpunke in der Hauptwerkzeugleiste wieder. 52 Vorgehensweise Funktionsgruppe Projekt Abbildung 4-19: Funktionsgruppe „Projekt“ 53 Vorgehensweise Funktionsgruppe Ansicht Abbildung 4-20: Funktionsgruppe „Ansicht“ Funktionsgruppe Thema Abbildung 4-21: Funktionsgruppe „Thema“ 54 Vorgehensweise Funktionsgruppe Kommunikation Abbildung 4-22: Funktionsgruppe „Kommunikation“ Funktionsgruppe Objekt Abbildung 4-23: Funktionsgruppe „Objekt“ 55 Vorgehensweise Funktionsgruppe Werkzeuge mit zusätzlich einblendbaren Werkzeugleisten Abbildung 4-24: Funktionsgruppe “Werkzeuge“ 56 Vorgehensweise Funktionsgruppe Information Abbildung 4-25: Funktionsgruppe „Information“ 4.3.4 Programmierung Die folgenden Punkte erläutern die Vorgehensweise bei der Programmierung der Anpassungen und Erweiterungen. Anhand von Code-Ausschnitten wird deren Implementierung näher betrachtet. Bei der Beschreibung wird ein Grundverständnis von Programmierung vorausgesetzt. Entwicklungsumgebung ist das System eMbedded Visual C++ 4.0 (auch eVC++ 4.0). Nähere Informationen über diese Entwicklungsumgebung werden auf der Internetseite http://msdn.microsoft.com/mobility/othertech/eVisualc/default.aspx (besucht am 07.03.2005) angeboten. Es ist zu beachten, dass zum jetzigen Zeitpunkt der Entwicklung alle Dateipfade hart im Quellcode integriert sind. Die Übergabe der Pfade soll später variabel gestaltet werden, indem diese im Dialog Einstellungen vom Benutzer konfiguriert werden können. 4.3.4.1 Änderung von Projektnamen und Titel Zur Anpassung der Oberfläche gehört natürlich auch die Umstellung der Bezeichnung GeoPAD in den Namen der geplanten Anwendung ‚RIPSPad’. Dazu wurden folgende Schritte durchgeführt: 1. Öffnen des Projekt Files GeoPad.vcp mit dem Programm Wordpad. Mit Suchen / Ersetzen alle vorkommenden Bezeichnungen GeoPAD, auch innerhalb von Dateinamen, wie z.B. GeoPadDoc.cpp, mit RIPSPad ersetzen. 2. Alle Dateinamen, die GeoPAD enthalten im Explorer in RIPSPad umbenennen. 3. Jede *.cpp-Datei im Editor öffnen. Ist dort innerhalb der Anweisung #include z.B. GeoPAD.h enthalten, diese Bezeichnung auch in RIPSPad umbenennen. 57 Vorgehensweise 4. Die Projekt Workspace Datei RIPSPad.vcw im Editor öffnen und auch hier alle GeoPAD - Eintragungen in RIPSPad umbenennen. 5. Das Projekt durch Doppelklick auf die Projekt Workspace Datei RIPSPad.vcw in eVC++ 4.0 öffnen. 6. Um den Titel der Anwendung zu ändern, muss nun noch ein Eintrag in der Ressource String Table geändert werden. Dazu im Ressourcenmanager von eVC++ 4.0 die String Table öffnen. Der oberste Eintrag „IDR_MAINFRAME“ enthält in dem Feld Caption den Titel der Anwendung. Auch hier GeoPAD in RIPSPad umbenennen. 7. Damit die Dateien, in denen die Klassendefinitionen enthalten sind, wieder gefunden werden, müssen nun im ClassWizard allen Klassen, welche die Bezeichnung GeoPAD enthalten, die umbenannten Dateien zugewiesen werden. Dazu unter View / ClassWizard öffnen, unter der Registerkarte Message Maps und dort in der Auswahlliste Class Name jeweils den Klassennamen der GeoPAD enthält anklicken. Daraufhin öffnet sich ein Dialog, in dem innerhalb der Pfadangabe zu der entsprechenden Headerund C++ - Datei der Dateiname angepasst werden kann. Hier könnte auch der Klassennamen abgeändert werden. Da jedoch auch in jeder Datei die Klassenbezeichnung geändert werden müsste, soll der Klassennamen bei seiner ursprünglichern Bezeichnung bleiben. Dies könnte evtl. zu einem späteren Zeitpunkt geändert werden, hat jedoch nicht so hohe Priorität. Ein Vorteil den Klassennamen vorerst bei GeoPAD zu belassen ist dabei auch, dass jederzeit erkannt werden kann, ob die Klasse selbst implementiert, oder durch GeoPAD mitgeliefert wurde. 4.3.4.2 Umbenennung von ‚GeoPAD.exe’ in ‚RIPSPad.exe’ Damit die erstellte Anwendung den Namen RIPSPad trägt, mussten unter Project / Settings... alle GeoPAD Eintragungen mit RIPSPad ersetzt werden. Dies muss für den Emulator-Debug sowie für die Ausführung auf dem PocketPC Gerät jeweils einzeln durchgeführt werden. 4.3.4.3 Dialog „Thema manuell laden“ Standardmäßig wird das Öffnen von Dateien in eVC++ 4.0 durch die Klasse CFileDialog bereitgestellt. Durch diesen Dialog wird unter WindowsCE der Zugriff auf Unterverzeichnisse standardmäßig jedoch nicht unterstützt. Bei dem dateibasierten Aufbau der Anwendung RIPSPad ist ein Zugriff auf Unterverzeichnisse unentbehrlich. Deshalb wurde nach einer alternativen Lösung gesucht. 58 Vorgehensweise Im Internet wurde bei der Recherche die Open Source Klasse CFileOpenDialog auf der Seite http://www.codeproject.com/ce/cefileopendlg.asp (besucht am 26.02. 2005) gefunden. Dort wird eine Demoanwendung, die für PocketPC 2002 entwickelt wurde, vorgestellt. Diese stellt einen Dialog zur Verfügung, der die Auswahl von Daten in Unterverzeichnissen erlaubt. Die Klassen werden für die eigene Entwicklung kostenlos zum Download angeboten. Um den Dialog in RIPSPad einzubinden, bedurfte es folgender Vorgehensweise: 1. Die Dateien (*.cpp, *.h) zu den Klassen CExDialog, CExDlgEngine und CFileOpenDlg in den Workspace importieren und in das Projekt-Verzeichnis kopieren. 2. Dialog, Bitmap und Toolbar mit den gleichen IDs wie im mitgelieferten Demo Projekt anlegen. 3. Die Klassen greifen über die Präprozessordirektive #include <deque.h> auf die Standard Template Library (STL), eine C++ -Bibliothek mit Container Klassen, Algorithmen und Iteratoren, zu. Deshalb musste diese Bibliothek, speziell für die Entwicklungsumgebung eVC++ 4.0, vom Internet heruntergeladen werden. Unter Tools / Options... und dann Directories muss zum Erstellen der Anwendung über Build für jede Zielplattform der Pfad zu dem Ordner mit den STL-Dateien eingebunden werden. Wünschenswert wäre noch die Integration von Dateifiltern. Dadurch würden nur die Dateien zur Auswahl angeboten, die in der Anwendung verarbeitet werden können. Außerdem wäre es benutzerfreundlicher, wenn der Dateibaum automatisch immer auf der obersten Hierarchiestufe des GIS_DATA-Verzeichnisses beginnen würde. Diese Punkte bleiben in dieser Arbeit jedoch offen. 4.3.4.4 Implementierung der Werkzeugleisten Die Idee war, spezielle Funktionen als Gruppe in Werkzeugleisten zusammenzufassen, welche durch den Benutzer bei Bedarf ein- und dann wieder ausgeblendet werden können. Dadurch wird dem Kartenfenster die größtmögliche Fläche des Displays zugeteilt und es können trotzdem so viele Funktionalitäten wie nötig in der Anwendung untergebracht werden. Für die beiden Funktionsgruppen „Messen“ und „Beschriften“ wurde jeweils eine ein- und ausblendbare Werkzeugleiste erzeugt. Im Folgenden werden die Arbeitsschritte am Beispiel der Werkzeugleiste „Beschriften“ erläutert: 1. Erzeugen einer neuen Toolbar-Ressource mit deren Buttons, Ids und Events im Ressourcenmanager. Die Events der Buttons werden der Datei RIPSPadView.cpp zugeordnet (entspricht der Klasse CGeoPADView). Lediglich das Event des Schließen-Buttons befindet sich in der Klasse 59 Vorgehensweise diglich das Event des Schließen-Buttons befindet sich in der Klasse CMainFrm. 2. In MainFrm.h muss unter dem Eintrag Implementation//...protected: Æ CToolBar m_wndToolBar1; deklariert werden. 3. In der Datei MainFrame.cpp wird eine neue Toolbar erzeugt und defaultmäßig wird die Ansicht auf ‚versteckt’ gesetzt: //Toolbar "Beschriften" erzeugen if (!m_wndToolBar1.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar1.LoadToolBar(IDR_BESCHRIFTEN)) { TRACE0("Failed to create toolbar\n"); return 1; // fail to create } m_wndToolBar1.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar1); //Toolbar verstecken m_wndToolBar1.ShowWindow(SW_HIDE); 4. Im Ressourcenmanager die Menübar öffnen und dem Menüpunkt „Beschriften“ mit dem Class Wizard das Event zum Öffnen der Menüleiste zuweisen. Dieses wird in der Klasse CMainFrame (Datei MainFrm.cpp) implementiert: void CMainFrame::OnBeschriften() { //Toolbar Beschriften sichtbar schalten m_wndToolBar1.ShowWindow(SW_SHOW); //Zugriff auf das Hauptrahmenfenster CFrameWnd* m_pMainWnd1 = STATIC_DOWNCAST(CFrameWnd, AfxGetMainWnd()); ASSERT_VALID(m_pMainWnd1); //Layout des Fensters neu positionieren m_pMainWnd1->RecalcLayout(); //Fenster updaten m_pMainWnd1->UpdateWindow(); } 60 Vorgehensweise 5. Zu dem Button „Schließen“ in der Werkzeugleiste muss, zum Ausblenden dieser, die folgende Funktion in Klasse CMainFrame implementiert werden: void CMainFrame::OnTlbSchliessen() { //Toolbar "Beschriften" verstecken m_wndToolBar1.ShowWindow(SW_HIDE); //Zugriff auf das Hauptrahmenfenster CFrameWnd* m_pMainWnd1 = STATIC_DOWNCAST(CFrameWnd, AfxGetMainWnd()); ASSERT_VALID(m_pMainWnd1); //Layout des Fensters neu positionieren m_pMainWnd1->RecalcLayout(); //Fenster updaten m_pMainWnd1->UpdateWindow(); } 4.3.4.5 Integration der Statusleiste In der Entwicklungsversion von GeoPAD ist keine Statusleiste integriert. Daher musste sie für RIPSPad integriert werden. Der Anspruch bestand zusätzlich darin, dass dem Benutzer die Möglichkeit des Ausblendens der Statusleiste gegeben werden soll. Dadurch kann auf dem ohnehin schon kleinen Display des PDA das Kartenfenster vergrößert werden. Die Erzeugung der ausblendbaren Statusleiste erfordert folgende Schritte: 1. Die Statusleiste wird in der Datei MainFrm.cpp erstellt: if (!m_wndStatusBar.Create(this) || (!m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { TRACE0("Failed to create status bar\n"); return -1; // fail to create } m_wndStatusBar.SetPaneInfo(0,ID_SEPARATOR, SBPS_NORMAL,100); m_wndStatusBar.SetPaneInfo(1,ID_INDICATOR_CAPS,SBPS_N ORMAL,125); m_wndStatusBar.ShowWindow(SW_SHOW); return 0; 2. Zum Verstecken und Anzeigen der Statusleiste muss im Ressourcenmanager dem Menüpunkt der Hauptmenüleiste “Statusleiste ein/ausblenden” 61 Vorgehensweise folgendes Event in der Klasse CMainFrame zugewiesen werden: void CMainFrame::OnStausleisteeinaus() { //Statusbar verstecken, wenn sichtbar if (m_wndStatusBar.IsVisible()) { m_wndStatusBar.ShowWindow(SW_HIDE); } else { //Statusbar anzeigen, wenn versteckt m_wndStatusBar.ShowWindow(SW_SHOW); } //Zugriff auf das Hauptrahmenfenster CFrameWnd* m_pMainWnd1 = STATIC_DOWNCAST(CFrameWnd, AfxGetMainWnd()); ASSERT_VALID(m_pMainWnd1); //Layout des Fensters neu positionieren m_pMainWnd1->RecalcLayout(); //Fenster updaten m_pMainWnd1->UpdateWindow(); } 4.3.4.6 Integration eines numerischen Maßstabs Wie definiert sich der Maßstab und wie wird er berechnet ? “Als Kartenmaßstab gilt das lineare Verkleinerungs- oder Verjüngungsverhältnis der Karte gegenüber der Natur (Längenmaßstab)“ (Hake, 2002, S.149). Er berechnet sich über die Formel s / s’ = mK , wobei s die Strecke in der Natur und s’ die Strecke in der Karte darstellen. Aus der Division der beiden Strecken ergibt sich mK als sogenannte (Karten-)Maßstabszahl bzw. Maßstabsfaktor. Warum muss der Maßstab bekannt sein ? Die Definition der Maßstabszahl soll nicht allein dem Nutzer zur Orientierung dienen, wie z.B. bei der Anzeige in der Statusleiste oder in Form einer Maßstabsleiste. Sie wird auch für die Realisierung der maßstabsgebundenen Anzeige der Rasterdaten benötigt. Zur Integration des Maßstabs wurde die Klasse RIPSPadUtil erzeugt, die Methoden zur Maßstabsberechnung beinhaltet. 62 Vorgehensweise RIPSPadUtil kann über die Direktive #include „RIPSPadUtil.h“ in jede andere Klasse eingebunden werden. Somit können die darin enthaltenen Funktionen global verwendet werden. Zur Speicherung des aktuellen Maßstabs wurde in RIPSPadUtil die globale Variable double scale deklariert. Diese kann mit dem Schlüsselwort extern innerhalb des gesamten Programms eingebunden werden. Somit ist der aktuelle Maßstab an jeder Stelle des Programmablaufs bekannt. Eine weitere globale Variable ist bool bScale. Sie wurde mit dem Wert false initialisiert. Diese stellt einen Schalter dar. Immer dann, wenn der Benutzer eine Operation ausgeführt hat, die eine Neuberechnung des Maßstabs erfordert, wird bScale = true gesetzt. Dies hat zur Folge, dass die Funktion zur Berechnung des Maßstabs aufgerufen wird. Danach wird der Schalter wieder auf den Wert false gesetzt. Im Folgenden werden die Funktionen von RIPSPadUtil beschrieben und gezeigt, an welchen Stellen im Programmcode diese aufgerufen werden. 4.3.4.6.1 getScale(CWnd* hWnd) Beschreibung: getScale ist die eigentliche Funktion zur Maßstabsberechnung. Sie ruft in sich die Funktionen getSView und getSNatur auf, mit deren Rückgabewerten die Maßstabszahl berechnet wird. Aufruf: Wie bereits erwähnt, wird die Maßstabsberechnung immer dann angestoßen, wenn der Schalter bScale den Wert true besitzt. Dies ist der Fall, wenn • hinein- oder hinausgezoomt oder zentriert wurde, • ein Thema geladen wurde, • ein Projekt geöffnet wurde. Nach jeder dieser Operationen wird der Bildschirm neu gezeichnet. Dies geschieht innerhalb der Methode OnDraw(CDC* pDC) der Klasse CGeoPADView. Falls bScale = true gesetzt ist, wird an dieser Stelle getScale aufgerufen. Übergabeparameter: An die Funktion wird ein Verweis auf das aktuelle Hauptrahmenfenster übergeben. Rückgabewert: Das Ergebnis ist die Maßstabszahl, welche der globalen Variablen scale zugewiesen wird. Quellcode: 63 Vorgehensweise double getScale(CWnd* hWnd) { //Aufruf der Funktion getSView double sView = 0.0; sView = getSView(hWnd); //Aufruf der Funktion getSNatur double sNatur = 0.0; sNatur = getSNatur(hWnd); //Berechnung des Maßstabs scale = sNatur / sView; return scale; } 4.3.4.6.2 getSView(CWnd* hWnd) Beschreibung: Diese Funktion berechnet die Breite des physischen Bildschirms in Metern. Aufruf: Der Aufruf erfolgt ausschließlich in getScale. Übergabeparameter: An die Funktion wird ein Verweis auf das aktuelle Hauptrahmenfenster übergeben. Rückgabewert: Zurückgegeben wird die Breite des Displays als horizontale Strecke in Metern. Quellcode: double getSView(CWnd* hWnd) { int sWidthScreen = 0; double sWidthScreen_m = 0.0; CClientDC dc(hWnd); //Breite des Displays in Millimetern ermitteln sWidthScreen = dc.GetDeviceCaps(HORZSIZE); //Displaybreite Umrechnung in m sWidthScreen_m = (double)sWidthScreen / 1000; return sWidthScreen_m; //gibt s' in m zurück } 4.3.4.6.3 getSNatur(CWnd* hWnd) Beschreibung: Aufgabe dieser Methode ist die Berechnung der horizontalen Strecke in der Natur 64 Vorgehensweise in Metern bezogen auf die x-Koordinaten der linken und der rechten Ecke des Displays. Dazu wird die Methode geoPAD27() aufgerufen, welche die Kartenkoordinaten der entsprechenden Pixel-Koordinate in Gauß-Krüger und Gradangabe als String zurückliefert. Aus diesem String muss der Rechtswert extrahiert werden. Damit mit dem Wert gerechnet werden kann, ist die Konvertierung in Long notwendig. Dazu wird die Funktion castCStringToLong ausgeführt. Aufruf: Der Aufruf erfolgt ausschließlich in getScale. Übergabeparameter: An die Funktion wird ein Verweis auf das aktuelle Hauptrahmenfenster übergeben. Rückgabewert: Die berechnete Naturstrecke in Metern wird an getScale zurückgeliefert. Quellcode: double getSNatur(CWnd* hWnd) { double sNatur = 0; int sWidthScreen = 0; CString lat_lo = ""; CString lat_ro = ""; int pos = 0; CString rWert_str = ""; long rWert_lo = 0; long rWert_ro = 0; //Breite des Bildschirms in Pixeln auslesen CClientDC dc(hWnd); sWidthScreen = dc.GetDeviceCaps(HORZRES); //Aufruf der geoPAD Methode zur Bestimmung der //entsprechenden x-Koordinaten in der Natur lat_lo = geoPAD.GeoPAD27(0,0); lat_ro = geoPAD.GeoPAD27(sWidthScreen,0); //Extrahieren des Rechtswertes lo aus dem String //Finden des Zeichens ° pos = lat_lo.Find(LPCTSTR("°"),0); //Alle Zeichen links von pos extrahieren -> //Rechtswert als Cstring rWert_str = lat_lo.Left(pos); //Funktion aufrufen zur Konvertierung in Long 65 Vorgehensweise rWert_lo = castCStringToLong(rWert_str); //Extrahieren des Rechtswertes ro pos = lat_ro.Find(LPCTSTR("°"),0); rWert_str = lat_ro.Left(pos); rWert_ro = castCStringToLong(rWert_str); //Absolutzahl der Naturstrecke berechnen sNatur = rWert_ro - rWert_lo; sNatur = fabs (sNatur); return sNatur; } 4.3.4.6.4 castCStringToLong(CString str) Beschreibung: Die Funktion konvertiert einen String-Zahlenwert in Long. Aufruf: Der Aufruf erfolgt außer in der Funktion getSNatur auch in der Datei Themenmanager.cpp. Übergabeparameter: Übergeben wird eine Zahlenfolge in Form eines CString Objekts. Rückgabewert: Rückgabewert ist die Zahlenfolge als numerischer Wert Long. Quellcode: long castCStringToLong(CString str) { long rWert = 0; char myString[20]; //CString in const char* umwandeln wcstombs( myString, (LPCTSTR)str, 20 ); //const char* in long umwandeln rWert = atol(myString); return rWert; } 4.3.4.6.5 castCStringToInt(CString str) Beschreibung: Die Funktion konvertiert einen String-Zahlenwert in Integer. Aufruf: castCStringToInt wird zur Maßstabsberechnung nicht benötigt. Diese Funktion wird jedoch in Themenmanager.cpp verwendet. 66 Vorgehensweise Übergabeparameter: Übergeben wird eine Zahlenfolge in Form eines CString Objekts. Rückgabewert: Rückgabewert ist die Zahlenfolge als numerischer Integer-Wert. Quellcode: long castCStringToInt(CString str) { long rWert = 0; char myString[20]; //CString in const char* umwandeln wcstombs( myString, (LPCTSTR)str, 20 ); //const char* in long umwandeln rWert = atoi(myString); return rWert; } 4.3.4.7 Anzeige des Maßstabs in der Statusleiste Um den Benutzer darüber zu informieren, in welchem Maßstabsbereich sich die Anzeige der Karte gerade befindet, soll der aktuelle Maßstab in der Statusleiste angezeigt werden. Die technische Umsetzung erfolgt in der Klasse CMainFrame und erfordert folgende Vorgehensweise: 1. In der Datei MainFrm.h wird die Methode zur Aktualisierung des Eintrags in der Statusleiste deklariert: afx_msg void OnUpdateScale(CCmdUI *pCmdUI); 2. Die Statusleiste ist in sogenannte Panes unterteilt. Dies sind Abschnitte, denen unterschiedliche Werte zugewiesen werden können. Das UpdateEvent für das Pane der Statusleiste, welches den Maßstab anzeigen soll, wird in der Datei MainFrm.cpp implementiert: [...] //}}AFX_MSG_MAP ON_UPDATE_COMMAND_UI(ID_INDICATOR_CAPS, OnUpdateScale) [...] //Statusleisteneintrag aktualisieren void CMainFrame::OnUpdateScale(CCmdUI *pCmdUI) { pCmdUI->Enable(); CString strScale; 67 Vorgehensweise strScale.Format(_T("1:%.0f\n"),scale); pCmdUI->SetText( strScale ); } Damit die Methode auf den aktuellen Maßstab zugreifen kann, muss die globale Variable scale am Anfang der Datei MainFrm.cpp mit extern double scale; deklariert werden. Immer wenn sich der Wert in scale ändert, wird nun automatisch auch der Eintrag in der Statusleiste geändert. 4.3.4.8 Themenbaum – Die Klasse CThemenmanager RIPSPad soll dem Benutzer die Möglichkeit bieten, einfach und gezielt Themen auswählen und laden zu können. Diese Anforderung soll in Form eines dynamisch erzeugten Themenbaums realisiert werden. Der Benutzer kann über den Menüpunkt Themen laden den Dialog Themenmanager aufrufen, der diese Option zur Verfügung stellt. 4.3.4.8.1 Verwaltung der Daten für den Themenbaum in Access Die Hierarchiestruktur, in der die Themen im Themenbaum dem Nutzer zur Auswahl angeboten werden sollen, wird in Microsoft Access aufbereitet und gepflegt. Dies hat den Vorteil, dass Änderungen in der Datenstruktur einfach und schnell auch im Themenbaum angepasst werden können. Die Datenstruktur ist in Form einer Access-Datenbank angelegt. Für Shapefiles und für Imagefiles wird jeweils ein eigener Themenbaum erzeugt. Aus diesem Grund liegen dafür auch gesonderte Tabellen vor. Tabellen, die Daten für den Themenbaum mit den Rasterfiles beinhalten, wird der Name der Tabelle jeweils um die Bezeichnung „_Raster“ erweitert. Im Folgenden wird der Aufbau der einzelnen Tabellen detailliert dargestellt. 68 Vorgehensweise Tabellenname Spalte Beschreibung Hauptthemengruppe / HauptthemengruppenID ID Hauptthemengruppe Hauptthemengruppe_Raster Hauptthemengruppe Bezeichnung Unterthemen1 / Unterthemen1_Raster Unterthemen2 / Unterthemen2_Raster SymbolID ID des anzuzeigenden Symbols Maßstab Maßstab ab dem das Thema angezeigt werden soll. Æ leer, wenn Themengruppe Dateipfad Pfad und Dateiname Æ leer, wenn Themengruppe HauptthemengruppenID ID Hauptthemengruppe ThemengruppenID ID Themengruppe Themengruppe Bezeichnung SymbolID ID des anzuzeigenden Symbols Maßstab Maßstab ab dem das Thema angezeigt werden soll. Æ leer, wenn Themengruppe Dateipfad Pfad und Dateiname Æ leer, wenn Themengruppe ThemengruppenID ID Themengruppe ThemenID ID Thema Thema Bezeichnung SymbolID ID des anzuzeigenden Symbols Maßstab Maßstab ab dem das Thema angezeigt werden soll. Æ leer, wenn Themengruppe Dateipfad Pfad und Dateiname Æ leer, wenn Themengruppe 69 Vorgehensweise Symbol ID ID des Symbols Typ Punkt, Linie, Fläche, Raster Dient als Orientierung, Symbole werden über die SymbolID in der Anwendung vergeben. Tabelle 4-11: Datenstruktur des Themenbaums in Access Abbildung 4-26 zeigt die Beziehungen zwischen den Tabellen am Beispiel der Shapefile-Themen. Abbildung 4-26: Beziehungen der Tabellen für den Themenbaum 4.3.4.8.2 Aufbereitung der Daten für den Themenbaum Damit die Daten zur dynamischen Generierung des Themenbaums genutzt werden können, müssen sie als Textdateien in Unicode exportiert werden. 1. Gesamten Inhalt der Tabelle markieren. 2. Über Datei / Exportieren Dialog zum Exportieren der Daten öffnen. 3. Dateiname und Pfad zum Speichern der Exportdatei angeben. Der Dateiname entspricht jeweils dem Namen der Tabelle. 4. Unter Weitere... folgende Optionen einstellen: Textbegrenzungszeichen Æ „“ Feldtrennzeichen Æ ; Codepage Æ Unicode 5. Mit Fertig stellen Export abschließen. 70 Vorgehensweise 4.3.4.8.3 Implementierung des dynamische erzeugten Themenbaums Die Implementierung des Themenbaums erfolgte in der Klasse CThemenmanager, welche zum Dialog Themenmanager gehört. Die verschiedenen Aufgaben des Dialogs, wie z.B. die Erzeugung des Themenbaums und das Laden der gewählten Themen sind in einzelne Funktionen gegliedert. Wie diese aufgebaut sind und miteinander in Zusammenhang stehen, wird anhand von Codebeispielen am Beispiel der Shapefile-Themen vorgestellt. Die Funktion OnShapefileThemen() Beschreibung: Diese Funktion beinhaltet den Aufbau des Themenbaums für die Shapefile-Themen. Aufruf: Die Funktion wird ausgeführt, wenn der Nutzer den Button Shapefile im Dialog Themenmanager betätigt. Übergabeparameter: keine Rückgabewert: keinen Quellcode: void CThemenmanager::OnShapefileThemen() { […] Vorab wird geprüft, ob bereits ein Themenbaum im Dialog vorhanden ist, z.B. wenn der Nutzer diesen Button zuvor schon gedrückt hat. Ist dies der Fall, wird der vorhandene Themenbaum gelöscht. CTreeCtrl* m_themenBaum = (CTreeCtrl*) GetDlgItem(IDC_THEMENBAUM); VERIFY(m_themenBaum->DeleteAllItems()); Beim ersten Aufruf der Funktion wird dem Themenbaum eine Imagelist zugewiesen, die die einzelnen Symbole zu den Themen enthält. if (m_themenbaum_imglist == NULL) { m_themenbaum_imglist.Create (IDB_THEMENB_IMG, 13, 1, RGB(255,255,255)); //Imagelist dem Themenbaum zuweisen 71 Vorgehensweise m_themenBaum->SetImageList (&m_themenbaum_imglist, TVSIL_NORMAL); } Die Themenbaum-Dateien werden in Arrays geschrieben, die während der gesamten Anwendungszeit weiterhin zur Verfügung stehen. Somit muss diese Prozedur nur einmal erfolgen. if (HTG_SHP[0].nID == NULL) { //Dateien öffnen, die Pfade soll zu einem //späteren Zeitpunkt global über den Dialog //"Einstellungen" konfigurierbar sein if (cfHTG.Open (TEXT("\\Speicherkarte\\GIS_DATA\\Meta\\ Themenbaum\\Hauptthemengruppe.txt"), CFile::modeRead) && [... Öffnen der beiden anderen Dateien nach dem gleichen Verfahren ...] { //Lesen der Daten und Schreiben in cbBuffer nBytesRead = cfHTG.ReadHuge ( cbBuffer, cfHTG.GetLength() ); //Umwandeln von char[] in Cstring cHTG = (LPTSTR) &cbBuffer; [...] //Datei schließen cfHTG.Close(); //das selbe für alle anderen Dateien [...] An dieser Stelle wird die Funktion zum Laden der Inhalte der Dateien in die Arrays aufgerufen. writeShapeThemesInArray(cHTG,cUT1,cUT2); } } Sind die Daten in die Arrays eingelesen, kann die eigentliche Konstruktion des Baumes erfolgen. [...] //Knoten der ersten Hierarchiestufe 72 Vorgehensweise pText = HTG_SHP[i].cName.GetBuffer( 500 ); HTG_SHP[i].cName.ReleaseBuffer( ); TVINSERTSTRUCT tvInsert1; tvInsert1.hParent = NULL; tvInsert1.hInsertAfter = NULL; tvInsert1.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT; //die SymbolID wird übergeben, indem sie //vorher in der Klasse RIPSPadUtil in Long //umgewandelt wird tvInsert1.item.iImage = HTG_SHP[i].nSID; tvInsert1.item.iSelectedImage = HTG_SHP[i].nSID; tvInsert1.item.pszText = pText; //Knoten erzeugen hKnoten1 = m_themenBaum->InsertItem(&tvInsert1); Hat das Feld Dateipfad der Hauptthemengruppe keinen Eintrag, sind weitere Unterknoten vorhanden. Diese werden nach dem gleichen Schema erzeugt. Die Vorgehensweise wiederholt sich auch für Unterthemen2, wenn dem Unterthema1 wiederum kein Dateipfad zugeordnet ist. [...] } Die Funktion writeShapeThemesInArray(CString cHTG,CString cUT1,CString cUT2) Beschreibung: Mit Hilfe dieser Funktion werden die Inhalte der Dateien in Arrays eingelesen. Dies ist nur einmalig während der gesamten Anwendungsdauer notwendig. Aufruf: Der Aufruf erfolgt in der Funktion OnShapefileThemen(). Übergabeparameter: Übergeben werden die Inhalte der ausgelesenen Dateien Hauptthemengruppe, Unterthemen1 und Unterthemen2 in Form von CString-Objekten. Rückgabewert: keinen Quellcode: Das Auslesen der Inhalte erfolgt iterativ durch das zeilenweise Extrahieren der Werte eines Datensatzes. 73 Vorgehensweise Die Werte werden in Variablen geschrieben und dann an den Array übergeben. Dabei müssen die IDs in numerische Werte konvertiert werden. Dies geschieht durch die Nutzung der Funktion castCStringToInt, die von der Klasse RIPSPadUtil (siehe Punkt 4.3.4.6) zur Verfügung gestellt wird. Die Übergabe der Werte sieht bei der Hauptthemengruppe wie folgt aus: HTG_SHP[iTG].nID = castCStringToInt(cID); HTG_SHP[iTG].cName = erg; HTG_SHP[iTG].nSID = castCStringToInt(cSID); HTG_SHP[iTG].nM = castCStringToInt(cMID); HTG_SHP[iTG].bPath = bPfad; Die Funktion OnThemaladen() Beschreibung: Hat der Anwender ein Thema im Themenbaum ausgewählt, kann mit Hilfe dieser Routine das gewählte Thema in das Kartenfenster geladen werden. Aufruf: Durch Drücken des Buttons Thema laden im Dialog Themenmanager wird die Funktion ausgeführt. Übergabeparameter: keine Rückgabewert: keinen Quellcode: void CThemenmanager::OnThemaladen() { CTreeCtrl* m_themenBaum = (CTreeCtrl*) GetDlgItem(IDC_THEMENBAUM); ASSERT(m_themenBaum != NULL); HTREEITEM hItem = NULL; [...] Nach weiteren Variablendeklarationen wird geprüft, welches Thema im Themenbaum selektiert wurde. Wenn der ausgewählte Themenbaumeintrag keine weiteren Kinder hat, kann sicher gestellt werden, dass es sich bei der Auswahl tatsächlich um ein Kartenthema handelt. //Welches Thema wurde gewählt ? hItem = m_themenBaum->GetSelectedItem(); //Prüfen, ob Item selektiert wurde und weitere 74 Vorgehensweise //Kinder hat. Wenn Kinder vorhanden, ist es kein //Thema ! if (hItem == NULL || m_themenBaum->ItemHasChildren(hItem)) MessageBox(_T("Bitte wählen Sie ein Thema aus."),_T("RipsPAD"),MB_OK | MB_ICONINFORMATION); Wurde ein Kartenthema ausgewählt, wird vorab geklärt, ob es sich bei dem aktuellen Themenbaum um den der Shapefiles oder der Imagefiles handelt. Dies wird über das Flag nAktTB definiert. Beim Aufbau des Rasterthemenbaums wird dieses auf den Wert 1 gesetzt. So weiß das Programm genau, ob es die Dateien für die Rasterthemen oder die der Shapefiles öffnen muss. Je nach Themenart werden dann die Variablen für die Dateipfade entsprechend initialisiert. else { [...] //Festlegen ob Raster- oder Shapethema if (nAktTB == 1) { //Rasterthema pHTG = _T("\\Speicherkarte\\GIS_DATA\\ Meta\\Themenbaum\\ Hauptthemengruppe_Raster.txt"); [...] } else if (nAktTB == 0) { //Shapethema pHTG = _T("\\Speicherkarte\\GIS_DATA\\ Meta\\Themenbaum\\ Hauptthemengruppe.txt"); [...] } Im nächsten Schritt erfolgt der Zugriff auf den Text und die Hierarchiestufe des Themenbaum-Items. Dadurch erhält das Programm die Information, welche *.txtDatei es zum Extrahieren des Dateipfades öffnen muss. Die Hierarchiestufe kann dadurch ermittelt werden, indem geprüft wird, ob das selektierte Item einen Vaterknoten oder ein Kind besitzt. Ist z.B. ein Vaterknoten und ein Kind vorhanden, 75 Vorgehensweise so handelt es sich um die Hierarchiestufe 2. Somit befindet sich der Dateipfad zu dem Thema, das geladen werden soll, in der Datei Unterthemen1.txt. //Text des Items auslesen CString cItemText; cItemText.Format((LPCTSTR) m_themenBaum ->GetItemText(hItem)); //Hierarchiestufe auslesen hParent1 = m_themenBaum->GetParentItem(hItem); hParent2 = m_themenBaum->GetParentItem(hParent1); [...] //Hierarchiestufe Unterthemen1 ? else if ((hParent1 != NULL) && (hParent2 == NULL)) { if (cf.Open(pUT1, CFile::modeRead)) {} else MessageBox(_T("Kann Datei für Themenbaum nicht öffnen!"), _T("RIPSPad"),MB_ICONERROR | MB_OK); } […] Zur Extraktion des Dateipfades wird der Inhalt der entsprechenden Datei in einen CString eingelesen. nBytesRead = cf.ReadHuge( cbBuffer, cf.GetLength() ); //Umwandeln von char[] in Cstring cs = (LPTSTR) &cbBuffer; //Finden des Itemtextes und Übergabe seiner //Position nPos_OTL = cs.Find("\"" + cItemText + "\"",0); nReturn_OTL = cs.Find(LPCTSTR("\r"),nPos_OTL); //Datei schließen cf.Close(); //Pfad auslesen int j = 0; for (int i = nPos_OTL; i < nReturn_OTL;i++) { CString cs2 = cs[i]; //bei Erreichen des ersten @ if (cs2 == "@") 76 Vorgehensweise { j += 1; i++; } //nachdem das zweite @ erreicht wurde folgt der //Pfad if ((j == 2) && (cs2 != "\"")) { CString cs2 = cs[i]; cPfad += cs2; } } Nachdem der Pfad zur Datei extrahiert wurde, wird geschaut, ob es sich dabei um den Pfad zu einer Datei oder zu einem Imagekatalog handelt. Dabei wird im Dateipfad nach der Endung „txt“ gesucht. Ist diese nicht vorhanden, so handelt es sich um ein Thema, das direkt geladen werden kann. [...] CString strFullPath = "\\Speicherkarte\\GIS_DATA\\"; strFullPath += cPfad; CString str = ".txt"; if (cPfad.Find(str,0) == -1) { //Aufruf der Methoden, zum Laden des Themas in //den View bool bLoad = false; bLoad = geoPAD.GeoPAD1 (SysAllocString(strFullPath)); […] } Beinhaltet der String des Dateipfades die Endung „txt“, so muss das Laden der Rasterkarte über den Imagekatalog erfolgen. Dazu ist es notwendig zu prüfen, ab welchem Maßstab das Rasterthema angezeigt werden soll. Daher wird im ersten Schritt die Maßstabszahl extrahiert und geprüft, ob der aktuelle Maßstab mindestens diesem entspricht. Nur wenn das der Fall ist, wird das Image geladen, ansonsten erhält der Nutzer eine Meldung. In einer weiteren Entwicklungsphase soll realisiert werden, dass der Imagekatalog trotzdem im Hintergrund geladen wird und die entsprechenden Kacheln geladen werden, sobald in den entsprechenden Maßstabsbereich gezoomt wurde. 77 Vorgehensweise Sind die Voraussetzungen für das Laden des Imagefiles gegeben, d.h. ist der Zoomfaktor auf dem richtigen Maßstab, so wird der Imagekatalog des Themas geladen. Das Laden des Imagekatalogs durch die Funktion extractImageCat in der Klasse CRIPSPadImageCat erfolgt immer nur dann, wenn dieser nicht bereits geladen wurde. if ((bArray == false) || (cItemText.Compare(strItem) != 0)) { bArray = extractImgCat(strFullPath); } Wurde der Imagekatalog erfolgreich in den Array eingelesen, kann die Verschneidung der Kacheln mit der aktuellen Bounding Box durchgeführt werden. Damit wird erreicht, dass genau die Kacheln geladen werden, die dem aktuellen Ausschnitt zuzuordnen sind. Die zur Verschneidung aufgerufenen Funktionen gehören zur Klasse CRIPSPadImageCat. if ((bArray == true) && ((scale <= nMa) && (scale > 0.00))) { //BoundingBox des aktuellen Ausschnitts //abfragen CRect rect; CRect rBox; GetClientRect(&rect); […] //Umrechnung der aktuellen BoundingBox von //Pixelkoordinaten in Kartenkoordinaten rBox = getAktBoundingBox(rect); Das der aktuellen Bounding Box entsprechende Rechteck mit den Kartenkoordinaten wird an die Verschneidungsfunktion übergeben. Zurückgeliefert wird ein Array mit den Dateipfaden der passenden Kacheln. bIntersected = intersectImgRect(rBox); Wurden passende Kacheln gefunden, können diese geladen werden. if (bIntersected == true) { bool bLoad = false; for (int i = 0; i < anzIntersect; i++) 78 Vorgehensweise { […] strFullPath = "\\Speicherkarte\\GIS_DATA\\"; strFullPath += cImgIntersected[i].cFileName; bLoad = geoPAD.GeoPAD1 (SysAllocString(strFullPath)); […] } Im Dialog Themenmanager ist bereits das Kontrollkästchen Themen an GPS Position integriert. Damit soll zu einem späteren Zeitpunkt ermöglicht werden, dass bei Aktivierung dieser Option jeweils nur die auf dem Gerät vorhandenen Themen aufgelistet werden, die an der aktuellen GPS-Position zur Verfügung stehen („Durchstichliste“). 4.3.4.9 Imagekataloge – Die Klasse CRIPSPadImageCat Die Ressourcen in Bezug auf Speicher und Performance sind auf mobilen Geräten begrenzt. Daher können Imagedateien, die meist ein großes Speichervolumen aufweisen, nicht in ihrer ursprünglichen Form verarbeitet werden. Um lange Ladezeiten zu vermeiden werden die Rasterkarten daher gekachelt, d.h. in einzelne kleine Imagedateien zerlegt. Dabei ist zu beachten, dass das Datenvolumen einer Kachel möglichst klein gehalten wird. Für RIPSPad wurden Kacheln mit einer Größe von ca. 50 KB erzeugt. Diese Kacheln werden in sogenannten Imagekatalogen verwaltet. Imagekataloge sind in der Regel *.dbf-Dateien, die als Datensatz den Pfad zur Kachel und jeweils die dazugehörigen Koordinaten der linken oberen Ecke des Bildes beinhalten. Sinn dieser Dateiverwaltung ist, maßstabsabhängig immer nur die Kacheln des Rasterthemas anzuzeigen, die dem aktuellen Ausschnitt entsprechen. Kacheln, die z.B. nach einem Verschieben des Kartenausschnitts nicht mehr sichtbar sind, werden geschlossen und solche, die in den sichtbaren Bereich gerückt sind automatisch geladen. Somit wird sichergestellt, dass immer nur genau so viel Speicher beansprucht wird, wie momentan benötigt wird. 4.3.4.9.1 Alternativlösung zur Verarbeitung von JPGs in RIPSPad Bei der Umsetzung des Ladens von Rasterthemen über Imagekataloge wurden im Bereich der Rasterdatenverwaltung innerhalb der Bibliothek GeoSoft.dll Fehler festgestellt. 79 Vorgehensweise • Beim Laden eines größeren oder mehrerer kleineren JPG-Dateien kommt es zu einem Fehler in der Anwendung, die deren Absturz zur Folge hat. Beispiele: - Beim ersten Laden eines JPGs mit ca. 366 KB Æ Abbruch - 24 mal Laden eines JPGs von je 31 KB = 744 KB Æ Abbruch - 2 mal Laden von JPG mit ca. 120 KB = 360 KB Æ Abbruch • Wird ein Rasterthema über den Ebenenmanager geschlossen, so kommt es ebenfalls zum Programmabsturz, wenn gleichzeitig ein Shapefile-Thema im Ebenenmanager vorhanden ist. • Werden ausschließlich Rasterfiles in die Anwendung geladen, können diese auch über den Ebenenmanager geschlossen werden. Trotzdem ist das Laden weiterer JPGs, wie im ersten Punkt beschrieben, begrenzt. Ursache dieser Probleme kann eine unzureichende Speicherverwaltung im Programmcode der Bibliothek GeoSoft.dll sein. Zur Realisierung des automatischen Schließens von Kacheln ist außerdem der Zugriff auf die geladenen Themen notwendig. Hier hat sich gezeigt, dass über die gegebenen Funktionalitäten von GeoPAD der gezielte Zugriff auf die Ebenen nicht möglich ist. Es besteht zwar die Option die Nummer des Layers zu erfragen, doch diese ist nicht konstant. Sie verändert sich immer, wenn eine Ebene im Ebenenmanager geschlossen oder die Reihenfolge der Ebenen verändert wird. Eine andere Möglichkeit des Zugriffs auf Ebenen ist die über den Namen der Ebene. Die dazu von GeoPAD zur Verfügung gestellte Funktion liefert jedoch lediglich den ersten Buchstaben des Namens zurück. Zur Lösung dieses Problems wäre die Entwicklung einer eigenen Ebenenverwaltung notwendig. Innerhalb dieser Arbeit wäre dies jedoch zu umfangreich und zeitlich nicht zu realisieren. Der Source Code der DLL ist nicht als Open Source verfügbar. Die Fehler können jedoch nur direkt im Programmcode gefunden und verbessert werden. Für RIPSPad musste daher eine vorläufige Alternativlösung zum unter Punkt 4.3.4.9 beschriebenen dynamischen Ein- und Ausblenden sowie Nachladen von Kacheln gefunden werden: • Lädt der Benutzer ein Imagefile in die Karte, so werden immer die Kacheln, die diesen Bereich überdecken, in den View geladen. • Bei Zoom oder Pan (Verschieben des Kartenausschnitts) kann der Nutzer weitere Kacheln interaktiv nachladen. Dabei werden jeweils nur die fehlenden Kacheln hinzugefügt. Ein automatisches Nachladen der Kacheln wäre technisch zwar ohne weiteres realisierbar, jedoch unter den beste80 Vorgehensweise henden Umständen nicht sinnvoll. Die Anwendung würde dann zu schnell überlastet und dadurch zu instabil werden. Bereits während der gesamten Zeit der Diplomarbeit wurde der Kontakt zum Entwickler von GeoPAD, Herrn Kunthi Popat der Firma Geo Soft, gepflegt. Die oben beschriebenen Schwierigkeiten wurden ihm berichtet. Es ist geplant, dass Geo Soft eine verbesserte Version von GeoPAD ausliefert. Dies würde eine weitere Automatisierung der Rasterverwaltung über Imagekataloge möglich machen. Seitens der Firma Geo Soft liegt weiterhin ein konkretes Angebot zum Verkauf der Quell-Sourcen der Bibliothek GeoSoft vor. 4.3.4.9.2 Aufbereitung der Imagekataloge Die Verwaltung der Imagekataloge in RIPSPad erfolgt über den Zugriff auf *.txtDateien. Die Imagekataloge müssen dazu für die Verwendung in RIPSPad wie folgt aufbereitet werden: 1. Den Imagekatalog in Form einer *.dbf-Datei in Microsoft Excel öffnen. 2. Alles markieren. 3. Über Speichern unter... die Daten als unicodetext abspeichern. 4. Das Textfile im Editor öffnen. 5. Die erste Zeile mit den Überschriften der Spalten löschen. 6. Mit Suchen, Ersetzen alle Trennzeichen in Form von Tabulatoren mit einem Semikolon ersetzen. 7. Es muss darauf geachtet werden, dass die Pfade mit dem Ordner images und ohne Angabe eines Backslash beginnen. Abbildung 4-27 zeigt einen Ausschnitt aus einem Imagekatalog zur Verwendung in RIPSPad. Abbildung 4-27: Imagekatalog für die Verwendung in RIPSPad 4.3.4.9.3 Implementierung der Klasse CRIPSPadImageCat Zur Verwaltung der Imagekataloge wurde die Klasse CRIPSPadImageCat erzeugt. Diese stellt Funktionen zur Verfügung, die das Laden der zur aktuellen Bounding Box passenden Kacheln erlauben. 81 Vorgehensweise Die Funktion extractImgCat(CString filePath) Beschreibung: Aufgabe dieser Funktion ist das Einlesen der Inhalte des Imagekatalogs in einen Array. Jedes Feld diesen Arrays besteht aus einem Struct mit dem Dateipfad und einem Rechteck, in das die Bezugs-Koordinaten der Kachel geschrieben werden. Aufruf: Der Aufruf erfolgt in der Klasse CThemenmanager, wenn im Themenbaum ein neues Imagefile ausgewählt wurde. Übergabeparameter: Der Pfad zum Imagekatalog wird von der aufrufenden Routine als CString-Objekt übergeben. Rückgabewert: Wurde die Funktion erfolgreich ausgeführt, wird der Wert true zurückgeliefert. Quellcode: bool extractImgCat(CString filePath) { [… Variablendefinitionen …] //Öffnen der Datei und Einlesen in Cstring if (cfIC.Open(filePath, CFile::modeRead)) { nBytesReadIC = cfIC.ReadHuge( cbBufferIC, cfIC.GetLength() ); //Umwandeln von char[] in Cstring cImgCat = (LPTSTR) cbBufferIC; //Datei schließen cfIC.Close(); Nachdem der Inhalt des Imagekatalogs in einen CString eingelesen wurde, wird jeder Datensatz Zeile für Zeile extrahiert. Die einzelnen Werte des Datensatzes können dann dem Array übergeben werden. do { cZeileIC = ""; //Finden des Zeilenumbruchs und //extrahieren der Zeile nPosIC = cImgCat.Find(LPCTSTR("\n"),nStartIC + 1); nCountIC = nPosIC - nStartIC; 82 Vorgehensweise cZeileIC = cImgCat.Mid(nStartIC + 1, nCountIC - 1); //Entfernen möglicher regulärer Ausdrücke //für Zeilenumbruch oder Zeilenende cZeileIC.TrimRight(_T("\r")); cZeileIC.TrimRight(_T("\n")); nStartIC = nPosIC; nCountIC = 0; if (cZeileIC != "") { //Inhalt der Zeile extrahieren und in //den Array schreiben cErg = ""; //Finden des ersten Trennzeichens ; und //extrahieren des Dateinamens nPosZ = cZeileIC.Find(LPCTSTR(";"),nStartZ); cErg = cZeileIC.Left(nPosZ); //Schreiben des Dateinamens in den Array ImgCat[i].cFileName = cErg; cErg = ""; Nach demselben Schema werden auch die Koordinaten in der jeweiligen Zeile extrahiert. Diese müssen zusätzlich in einen numerischen Wert konvertiert werden. Dies erfolgt über die Funktion castCStringToLong der Klasse CRIPSPadUtil. Danach werden die Koordinaten dem CRect-Objekt (Rechteck) des Arrays übergeben. [...] ImgCat[i].rImgRect.SetRect (nLeft,nTop,nRight,nBottom); ImgCat[i].rImgRect.NormalizeRect(); } nStartZ = nPosZ; nCountZ = 0; i++; } while (cZeileIC != ""); return true; } else { return false; 83 Vorgehensweise } } Die Funktion getAktBoundingBox(CRect rect) Beschreibung: Die Funktion getAktBoundingBox dient der Umrechnung der Pixel-Koordinaten des aktuell sichtbaren Kartenausschnitts in Kartenkoordinaten. Aufruf: Die Umrechnung der Koordinaten wird an mehreren Stellen im Programmcode benötigt. In der Datei RIPSPadInternetAccess.cpp erfolgt der Aufruf zur Übergabe der Kartenkoordinaten an den Request zur Anforderung eines Kartenausschnitts über das Internet. Die Klasse CThemenmanager verwendet die Funktion zur Generierung des Verschneidungsrechtecks für die Bestimmung der zu ladenden Kacheln aus dem Imagekatalog. Übergabeparameter: Beim Aufruf der Funktion wird ein CRect-Objekt mit den Pixelkoordinaten des Kartenfensters übergeben. Rückgabewert: Es wird wiederum ein Objekt der Klasse CRect zurückgeliefert. Dieses enthält jedoch die Eckkoordinaten des aktuell sichtbaren Kartenausschnitts in Rechts- und Hochwert. Quellcode: CRect getAktBoundingBox(CRect rect) { [… Variablendefinitionen …] Um die Karten-Koordinaten zu den entsprechenden Pixelkoordinaten zu erhalten werden die Methoden GeoPAD27 und GeoPad28 der GeoSoft.dll verwendet. Diese liefern jeweils einen String, der u.a. den Rechts- bzw. Hochwert beinhaltet. Diese werden aus dem String extrahiert und in einen numerischen Wert vom Typ Long konvertiert. //Rechtswert LO cKoord = geoPAD.GeoPAD27(rect.left,rect.top); //Extrahieren der Koordinaten und Umwandeln in long pos = cKoord.Find(LPCTSTR("°"),0); str = cKoord.Left(pos); 84 Vorgehensweise nXlo = castCStringToLong(str); str = ""; cKoord = ""; //Hochwert LO cKoord = geoPAD.GeoPAD28(rect.left,rect.top); pos = cKoord.Find(LPCTSTR("°"),0); ..str = cKoord.Left(pos); nYlo = castCStringToLong(str); str = ""; cKoord = ""; //Das gleiche Vorgehen erfolgt für die Ecke rechts //unten [...] Die so gewonnenen Eckkoordinaten können dann an das CRect–Objekt übergeben und zurückgeliefert werden. rBox.SetRect(nXlo, nYru, nXru, nYlo); rBox.NormalizeRect(); return rBox; } Die Funktion intersectImgRect(CRect rBox) Beschreibung: Mit Hilfe der Funktion intersectImgRect wird festgestellt welche Kacheln des zu ladenden Imagefiles im aktuellen Kartenausschnitt liegen. Dazu wird die durch die Funktion getAktBoundingBox zurückgelieferte Bounding Box mit den Koordinaten der Kacheln im Imagekatalog verschnitten. Die Dateipfade der so gefundenen passenden Kacheln werden dann in einen globalen Array geschrieben. Aufruf: Der Aufruf erfolgt in der Funktion OnThemaladen der Klasse CThemenmanager. Übergabeparameter: An die Funktion wird das CRect-Objekt mit den Rechts- und Hochwerten des aktuellen Kartenausschnitts übergeben. Rückgabewert: Wenn durch die Verschneidung dem aktuellen Ausschnitt mindestens eine Kachel zugeordnet werden konnte, ist der Rückgabewert true. Quellcode: bool intersectImgRect(CRect rBox) { 85 Vorgehensweise CRect temp; int nTest = 0; int j = 0; bool bImgLoad = false; struct ImgIntersect cImgTemp[anzIntersect]; Vorab wird geprüft, ob bereits Kacheln geladen wurden. Ist dies der Fall, so werden die Inhalte des global gehaltenen Arrays mit den bei der letzten Verschneidung gefundenen Kacheln temporär in einen zweiten lokalen Array kopiert und aus dem globalen Array entfernt. Dadurch kann nach erneuter Verschneidung geprüft werden, ob eine Kachel bereits im View geöffnet ist. Es werden dann jeweils nur die Pfade der Kacheln in den neu zu belegenden globalen Array aufgenommen, die nicht schon vorher geladen wurden. if (cImgIntersected[0].cFileName != "") { //globalen Array in lokalen Array kopieren for (int i = 0; i < anzIntersect; i++) { cImgTemp[i].cFileName = cImgIntersected[i].cFileName; cImgIntersected[i].cFileName = ""; } } Zur Verschneidung der Bounding Box mit den Kacheln wird der Array mit den Einträgen des Imagekataloges iterativ durchlaufen. Für die Verschneidung von Rechtecken bietet eMbedded Visual C++ eine eigene Funktion an (IntersectRect). Diese ist aber nicht auf jeder Plattform lauffähig. Aufgrund dessen wurde die Verschneidung selbst implementiert. Für jede einzelne Kachel wird abgefragt, ob sie innerhalb des sichtbaren Ausschnitts der Karte liegt. Dabei müssen mehrere Möglichkeiten in Betracht gezogen werden: • Es liegt mindestens eine der Ecken der Kachel im Bereich der Bounding Box. • Es liegt ein so großer Maßstab vor, der zur Folge hat, dass keine der Ecken innerhalb des sichtbaren Kartenausschnitts liegt, da die Kachel diesen an allen Seiten überlappt. • Die Kachel überlappt zwar die Bounding Box, jedoch liegt eine der Kanten innerhalb des Ausschnitts. Folgender Codeausschnitt zeigt die Überprüfung des Falles, bei dem sich eine der Ecken der Kachel innerhalb der Bounding Box befindet. 86 Vorgehensweise //Schleife durch ImgCat Array for (int i = 0; i < anzImg; i++) { bImgLoad = false; if ((((ImgCat[i].rImgRect.left > rBox.left) && (ImgCat[i].rImgRect.left < rBox.right)) && ((ImgCat[i].rImgRect.top > rBox.top) && (Img Cat[i].rImgRect.top < rBox.bottom))) || (((ImgCat[i].rImgRect.left > rBox.left) && (ImgCat[i].rImgRect.left < rBox.right)) && ((Img Cat[i].rImgRect.bottom > rBox.top) && (Img Cat[i].rImgRect.bottom < rBox.bottom)))) { Wurde eine passende Kachel gefunden, wird in einer Schleife durch den temporären Array mit den zuletzt geladenen Kacheln überprüft, ob die gefundene Kachel schon im Kartenfenster geöffnet ist. Ist dies nicht der Fall, so wird der Pfad der Kachel an den globalen Verschneidungs-Array übergeben und der Zähler j um 1 hochgesetzt. for (int k = 0; k < anzIntersect; k++) { if ((ImgCat[i].cFileName == cImgTemp[k].cFileName) && (cImgTemp[k].cFileName != "")) { bImgLoad = true; l++; } } if (bImgLoad == false) { cImgIntersected[j].cFileName = ImgCat[i].cFileName; j++; } } [... gleiches Vorgehen für alle weiteren Fälle ...] Zum Abschluss der Funktion wird der Wert true zurückgeliefert, wenn mindestens eine passende Kachel gefunden wurde. 87 Vorgehensweise if ((j > 0) || (l > 0)) return true; else return false; } 4.3.4.10 Internetzugriff – Die Klasse CRIPSPadInternetAccess Das mobile GI-System RIPSPad soll zu über 90 % die benötigten Kartendaten auf der Speicherkarte des Gerätes mit sich führen. Trotzdem ist ein Online-Zugriff auf weiteres Kartenmaterial unerlässlich. Es muss die Möglichkeit bestehen auch im Gelände Kartenthemen, die nicht offline zur Verfügung stehen, über das Internet in den View laden zu können. Dies wird durch eine Übertragung mit GPRS realisiert. Die Online-Anbindung ist über einen Vertrag mit einem Mobilfunkbetreiber möglich, wenn das Gerät über eine SIM-Karte verfügt, wie das beim T-Mobile MDAII der Fall ist. Ist das Gerät nicht mit einem SIM-Kartensteckplatz ausgestattet, so ist die Übertragung auch über ein Handy denkbar, welches via Bluetooth-Schnittstelle mit dem PDA kommuniziert. Aufgabe dieser Arbeit ist nicht die komplette Umsetzung des Internetzugriffs. Hier soll vielmehr beispielhaft gezeigt werden, dass eine Realisierung der Online-Anbindung von RIPSPad möglich ist. Die Layer der angeforderten Karte sind fest in einer URL verdrahtet, welche als Request an den Kartenserver gesendet wird, der den entsprechenden Kartenausschnitt als JPG-Datei zurückliefert. Dynamisch übergeben und erzeugt werden bei jedem Aufruf jedoch die aktuelle Bounding Box und das entsprechende Worldfile zur Georeferenzierung des Bildes in der Karte. Für die Umsetzung des Internetzugriffs wurde die Klasse CRIPSPadInternetAccess implementiert. Mit Hilfe der folgenden Code-Ausschnitte aus der C++-Datei RIPSPadInternetAccess.cpp soll der Vorgang des Ladens eines Kartenthemas über das Internet näher betrachtet werden: Zur Herstellung einer Verbindung mit dem Internet wird ein InternetHandle deklariert. HINTERNET hHttpOpen = NULL; Zum Testen bei der Entwicklung, kann der PDA an den PC angeschlossen werden und über das Firmennetzwerk auf das Internet zugreifen. In diesem Fall muss zum Öffnen der Internetconnection der folgende Befehl angegeben werden: 88 Vorgehensweise //hHttpOpen = InternetOpen(_T("Test"), INTERNET_OPEN_TYPE_PROXY, _T("10.40.39.4"), NULL, 0); Bei der Verbindung über GPRS erfolgt dagegen der Befehl: hHttpOpen = InternetOpen(_T("Test"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); Im nächsten Schritt werden die Koordinaten der aktuellen Bounding Box sowie die Breite und Höhe des Displays ermittelt und für die Übergabe an den Request in CString konvertiert. CRect rect; CRect rBox; //Bounding Box abfragen GetClientRect(&rect); […] //Breite und Höhe des Displays in Cstring //umwandeln _ltoa( rect.bottom, buffer, 10 ); cHeight = buffer; _ltoa( rect.right, buffer, 10 ); cWidth = buffer; //Übergabe der aktuellen BoundingBox mit //Pixelkoordinaten an die Funktion aus ImageCat, //Zurückgegeben wird diese in Kartenkoordinaten rBox = getAktBoundingBox(rect); […] //Umwandlung von Long in CString _ltoa( rBox.bottom, bufferB, 10 ); cBottom = bufferB; _ltoa( rBox.right, bufferB, 10 ); cRight = bufferB; _ltoa( rBox.top, bufferB, 10 ); cTop = bufferB; _ltoa( rBox.left, bufferB, 10 ); cLeft = bufferB; Zur Generierung des Worldfiles muss für jeden angeforderten Kartenausschnitt die entsprechende Pixelgröße ermittelt werden. Wie in Kapitel 4.2.1.1 erläutert, beschreibt die Pixelgröße die horizontale und vertikale Ausdehnung eines Pixels in der Natur. Diese erhält man, indem man die horizontale Natur-Strecke der Breite des Displays durch die Anzahl der Pixel dieser Strecke teilt. 89 Vorgehensweise //Berechnen der Pixelgröße für das Worldfile long nBreiteGes = rBox.right - rBox.left; int nBreitePix = nBreiteGes / rect.right; CString cPix; //Konvertierung in CString _ltoa( nBreitePix, bufferB, 10 ); cPix = bufferB; Nun kann die URL zusammengesetzt werden. CString cRequest = "http://ripsuis.lfu.badenwuerttemberg.de/servlet/ogcwms/ natura2000?REQUEST=GetMap&VERSION=1.1.1&SERVICE=wms&SRS =EPSG:31493&BBOX="; cRequest += cLeft + "," + cTop + "," + cRight + "," + cBottom; cRequest += "&WIDTH=" + cWidth + "&HEIGHT=" + cHeight; cRequest += "&LAYERS=Topographische%20Karte%2025,Topographische%20Karte %2050,Topographische%20Karte%20100,Topogr.%20Uebersichtskar te%20200,Uebersichtskarte%20500,Bodensee,Uebersicht,DIN%20A 4%20Blattraster,Gemeindegrenze,Vogelschutzgebiet,FFHGebiet%202001,FFH-Gebietsvorschlag%202004, Vogelschutzgebiet,FFH-Gebiet%202001,FFHGebietsvorschlag%202004,verwaltung,text&FORMAT=image/jpeg&TRANSPARENT =false&EXCEPTIONS=xml"; Der Request wird gesendet. LPCTSTR lpszUrl = (LPCTSTR) cRequest; HINTERNET hHttpRequest = NULL; hHttpRequest = InternetOpenUrl(hHttpOpen, lpszUrl, NULL, 0, 0, 0); Der angeforderte Kartenausschnitt wird heruntergeladen und in die Datei OnlineThema.jpg geschrieben. […] if (!InternetReadFile(hHttpRequest, pFile, dwFileSize, &dwByteRead)) { […] pFile[dwByteRead] = 0; 90 Vorgehensweise fwrite(pFile, dwFileSize, 1, fTemp); fclose(fTemp); free(pFile); […] Wenn die Karte auf dem Gerät abgelegt ist, kann die Internetverbindung geschlossen werden. Bevor das Bild georeferenziert in die Anwendung geladen werden kann, muss das dazugehörige Worldfile erzeugt werden. Dieses folgt einem genau strukturierten Aufbau, der unter Punkt 4.2.1.1 beschrieben wurde. Beim Schreiben des Worldfiles muss beachtet werden, dass die Textdatei dazu im Textmode geöffnet wird, damit es später von der Anwendung gelesen werden kann. Dazu bieten sich die Funktionen fopen zum Öffnen der Datei und fputs zum Schreiben in die Datei an. Jede Zeile des Worldfiles und jeder Zeilenumbruch muss jeweils einzeln in die Datei geschrieben werden. Das bedeutet, die Datei muss zum Schreiben jeder Zeile neu geöffnet werden. Dabei muss bei der ersten Zeile der Parameter wt und bei allen weiteren Zeilen der Parameter a+t angegeben werden. […] //Schreiben der ersten Zeile: //Datei im text mode öffnen, falls sie schon vorhan//den, wird sie überschrieben, ansonsten wird eine //neue erzeugt (Parameter „wt“) if( ( fJGW = fopen ("\\Speicherkarte\\GIS_DATA\\ONLINE\\OnlineThema.jgw", "wt" )) != NULL ) { //CString in char[] schreiben zur Übergabe an //fputs for ( i = 0; i < length; i++ ) { char cs = (char) cZeile[i]; Zeile1[i] = cs; } fputs (Zeile1,fJGW); delete[] Zeile1; fclose(fJGW); cZeile = ""; } […] //Schreiben aller weiteren Zeilen: 91 Vorgehensweise //Umbruch1 length = cUmbruchEOF.GetLength(); char * UEOF = new char [length]; //Datei im Text Mode öffnen und Text anhängen //(Parameter „a+t“) if( ( fJGW = fopen ("\\Speicherkarte\\GIS_DATA\\ONLINE\\OnlineThema.jgw", "a+t" )) != NULL ) { for ( i = 0; i < length; i++ ) { char cs = (char) cUmbruchEOF[i]; UEOF[i] = cs; } fputs (UEOF,fJGW); fclose(fJGW); } // zweite Zeile (auch die Leerzeichen sind wichtig !) cZeile = " 0.00000000000000" + '\0'; length = cZeile.GetLength(); char * Zeile2 = new char [length]; if( ( fJGW = fopen ("\\Speicherkarte\\GIS_DATA\\ONLINE\\OnlineThema.jgw", "a+t" )) != NULL ) { for ( i = 0; i < length; i++ ) { char cs = (char) cZeile[i]; Zeile2[i] = cs; } fputs (Zeile2,fJGW); fclose(fJGW); cZeile = ""; } Nachdem der angeforderte Kartenausschnitt auf dem Gerät verfügbar ist und das Worldfile generiert wurde, kann das Laden der Karte in den View erfolgen. //Karte mittels der Funktion GeoPad1 //in den View laden bool bLoad = false; CString strFullPath = 92 Vorgehensweise "\\Speicherkarte\\GIS_DATA\\ONLINE\\OnlineThema.jpg"; bLoad = geoPAD.GeoPAD1(SysAllocString(strFullPath)); if (bLoad == true) { bOpen = true; //Karte zeichnen Invalidate(); bScale = true; //Maßstab neu berechnen } else { MessageBox(_T("Thema konnte nicht geladen wer den!"), _T("Achtung"), MB_ICONWARNING | MB_OK); } } 93 Ergebnis 5 Ergebnis Im Folgenden soll das Ergebnis der vorangegangenen konzeptionellen Untersuchung und Umsetzung vorgestellt werden. Die folgende Präsentation ist gleichzeitig als Anleitung für die Verwendung von RIPSPad zu betrachten. Zur Ausführung benötigte Dateien werden auf der beiliegenden DVD bereitgestellt (siehe Punkt 7.6). 5.1 Bereitstellung der Geodaten Das GIS_DATA Verzeichnis für den PDA muss in der vorgegebenen Struktur auf die Speicherkarte des Gerätes kopiert werden. Am schnellsten geht dies, wenn der PC über einen SD-Kartensteckplatz verfügt und die Daten direkt von der Festplatte auf den Datenträger übertragen werden. 5.2 Die Installation von RIPSPad RIPSPad kann durch einfaches Kopieren der erforderlichen Dateien auf dem Pocket PC installiert werden: 1. Die Datei RipsPad.exe auf das mobile Gerät in den Pocket PC Arbeitsplatz kopieren. 2. Die Dlls aus dem Ordner DLL_ARM (olece300d.dll, mfcce300d.dll, GeoSoft.dll) auf das mobile Gerät in den Ordner Windows kopieren und registrieren. Innerhalb dieser Arbeit wurde noch keine Setup.exe erstellt. Die automatisierte Installation von RIPSPad über einen Installationsmanager ist in einer späteren Entwicklungsversion vorgesehen. 5.3 RIPSPad starten RIPSPad wird durch Klicken auf das Icon oder den Namen der Anwendung im Datei Explorer des PDA gestartet. Diesen erreicht man über Start / Programme / Datei Explorer. Die Anwendung befindet sich unter mein Gerät. Abbildung 5–1 zeigt den Startbildschirm von RIPSPad. 94 Ergebnis Abbildung 5-1: Startbildschirm 5.4 Die Bedienung von RIPSPad (Benutzerführung) 5.4.1 Das Menü Projekt Alle Funktionen, die in der Anwendung RIPSPad der Verwaltung von Projekten und Themen sowie der Konfiguration von RIPSPad dienen, finden sich unter dem Menüpunkt Projekt wieder (Abb. 5-2). Abbildung 5-2: Menü Projekt 95 Ergebnis 5.4.1.1 Projektverwaltung Zur Verwaltung von Projekten gehört das Erstellen neuer Projekte über neues Projekt. Bei Aufruf dieses Menüpunktes wird das aktuelle Projekt geschlossen und ein neues Projekt kann erstellt werden. Vor dem Schließen des Projektes besteht die Möglichkeit dieses vorher zu speichern. Mit Projekt öffnen kann ein vorhandenes Projekt aufgerufen werden. Projekt speichern ermöglicht dagegen das Speichern eines neu erstellten oder überarbeiteten Projekts. Dazu werden folgende Dialoge angezeigt: Abbildung 5-3: Projekt öffnen und speichern Der Menüpunkt zuletzt geöffnete Projekte soll eine Schnellwahl aus einer Liste der Projekte erlauben, die in den letzten Sitzungen bearbeitet wurden (noch nicht umgesetzt). 5.4.1.2 Laden von offline verfügbaren Kartenthemen RIPSPad bietet zum einen die Möglichkeit des manuellen Laden von Themen und zum anderen das Laden von Themen aus einem Themenbaum. 96 Ergebnis 5.4.1.2.1 Thema manuell laden Der Dialog zum manuellen Laden von Themen wird über den Menüpunkt Thema manuell laden im Menü Projekt erreicht. Standardmäßig gliedert er sich in zwei Bereiche: Der obere Teil des Dialogs zeigt einen Dateibaum. Über diesen kann auf die Unterverzeichnisse zugegriffen werden, welche die Kartenthemen beinhalten. Die Inhalte des oben ausgewählten Ordners werden im unteren Bereich angezeigt. Hier wird das Abbildung 5-4: Dialog Thema manuell laden Thema ausgewählt, das nach Drücken von OK in den View geladen wird. Die Größe der beiden Bereiche ist variabel und kann durch Ziehen der Leiste zwischen den beiden Fenstern individuell eingestellt werden. Mögliche Ansichten: nur Dateibaum einblenden nur Ordnerinhalte anzeigen Ansicht des Dateibaums und der Inhalte des gewählten Ordners (siehe Abb. 5-4) 97 Ergebnis 5.4.1.2.2 Themen aus dem Themenmanager laden Das Laden von Themen aus dem Themenbaum erfolgt im Dialog Themenmanager. Diesen öffnet man entweder durch Betätigen des Symbols in der Hauptmenüleiste oder durch Drücken des Menüpunktes Themen laden im Menü Projekt. Durch Aktivierung des Kontrollkästchens nur Themen an GPS Position sollen jeweils nur die Themen im Themenbaum erscheinen, die an der aktuellen Position verfügbar sind. (Diese Option ist noch nicht Abbildung 5-5: Dialog Themenmanager implementiert.) Laden von Shapefiles Um den Raumbezug in der Anwendung herzustellen wird zu Beginn der Arbeitssitzung ein Kartenthema im Vektorformat geladen. Dazu den Button Shapefile drücken. Wie in Abbildung 5-6 ersichtlich wird daraufhin ein Themenbaum eingeblendet, der alle auf der Speicherkarte vorhandenen Shapefile– Themen beinhaltet. Das ausgewählte Thema wird über den Button Thema laden der Karte hinzugefügt. Es können mehrere Themen geladen werden, bevor mit OK der Dialog geschlossen wird. Die Themen werden im Kartenfenster angezeigt. 98 Ergebnis Abbildung 5-6: Laden von Shapefiles Laden von Imagedateien Zum Laden von Imagedateien wird über den Button Imagefile ein Themenbaum eingeblendet, der die Auswahl von Rasterkarten und Orthobildern zur Anzeige im View anbietet. Um Rasterkarten oder Orthophotos im Kartenfenster anzuzeigen müssen folgende Voraussetzungen erfüllt sein: • Es wurde schon ein Shapefile als Thema geladen. • Der Zoomfaktor weist je nach Thema einen bestimmten Mindestmaßstab auf. Das ausgewählte Thema wird, wie bei den Shapefiles, durch Drücken von Thema laden geöffnet. Dabei werden jeweils die Kacheln des Imagefiles geladen, die den aktuellen Kartenausschnitt überdecken. Die folgenden Abbildungen zeigen das Laden von Imagedateien am Beispiel der Topographischen Karte 1 : 25.000 und des Orthophotos 1 : 10.000. 99 Ergebnis Abbildung 5-7: Laden einer digitalen topographischen Karte Abbildung 5-8: Laden eines Orthophotos 100 Ergebnis 5.4.1.3 Konfiguration der Anwendung Im Menü Projekt kann über Einstellungen der Dialog zur Konfiguration von RIPSPad aufgerufen werden. Unter anderem soll dieser die Einstellung der Dateipfade erlauben. (Noch nicht implementiert.) 5.4.1.4 Ein- und Ausblenden der Statusleiste Soll die Karte größtmöglichst angezeigt werden, so kann über Stausleiste ein / aus diese ausgeblendet und bei Bedarf wieder eingeblendet werden. Abbildung 5-9 zeigt die Anwendung mit ausgeblendeter Statusleiste. Abbildung 5-9: Ausblenden der Statusleiste 5.4.1.5 Beenden von RIPSPad Die Anwendung wird über den Eintrag Beenden im Menü Projekt geschlossen. Es ist zu beachten, dass das Programm nur über diesen Punkt wirklich beendet und aus dem Hauptspeicher des Gerätes entfernt wird. 5.4.2 Das Menü Ansicht RIPSPad stellt im Menü Ansicht die Einstellung des Zoommaßstabes sowie weitere Ansichts-Optionen zur Verfügung. 101 Ergebnis 5.4.2.1 Zoomfunktionen Wie Abbildung 5-10 zeigt werden unterschiedliche Zoomfunktionen angeboten. Die nachfolgende Tabelle soll diese kurz erläutern. Abbildung 5-10: Menü Ansicht Zoomfunktion Beschreibung Zoom auf volle Ausdehnung Zoomt auf volle Ausdehnung aller geladenen Themen. Der Aufruf kann auch durch Drücken des Symbols in der Hauptmenüleiste erfolgen. Zoom auf Auswahl Wurde ein Objekt in der Karte ausgewählt, kann hiermit auf dieses gezoomt werden. Zoom auf aktive Ebene Zoomt auf die Ebene, die im Ebenenmanager aktiv geschaltet ist. Zoom + (fix) Zoomt um festen Faktor in die Karte hinein (Ausschnitt wird verkleinert). Zoom – (fix) Zoomt um festen Faktor aus der Karte heraus (Ausschnitt wird vergrößert). Zoom + Nach Wählen diesen Menüpunktes, kann durch Aufziehen eines Rechtecks um einen beliebigen Faktor in die Karte hineingezoomt werden. Zoom - Diese Funktion bietet die Möglichkeit durch Aufziehen eines Rechtecks um einen beliebigen Faktor aus der Karte herauszuzoomen. Tabelle 5-1: Zoomfunktionen von RIPSPad 102 Ergebnis 5.4.2.2 Kartenausschnitt auf die GPS-Position zentrieren Bei eingeschaltetem GPS-Empfang soll über auf GPS-Position zentrieren im Menü Ansicht auf die aktuelle Ortskoordinate zentriert werden können. Dadurch lässt sich der Kartenausschnitt, der die aktuelle Position abbildet, schnell und einfach finden. (Noch nicht implementiert.) 5.4.2.3 Orientierung mit Hilfe einer Übersichtskarte Das Menü Ansicht beinhaltet den Aufruf des Übersichtsfensters. Dieses soll zukünftig der Orientierung im Raum dienen. Der aktuelle Kartenausschnitt wird dann in einer Übersichtskarte als Rechteck verortet, so dass der Benutzer einen Überblick erhält, wo er sich gerade befindet. Sinnvoll wäre dabei die Möglichkeit durch Verschieben des Rechtecks gleichzeitig den Kartenausschnitt im Kartenfenster einstellen zu können. (Feature steht noch nicht zur Verfügung.) 5.4.3 Das Menü Thema Eine Verwaltung der Themen und Kartenausschnitte ist im Hauptmenüpunkt Thema möglich. Abbildung 5-11: Menü Thema 5.4.3.1 Ebenenverwaltung Das Menü beinhaltet unter anderem den Eintrag Ebenenmanager, der den gleichnamigen Dialog zur Verwaltung der Ebenen öffnet. Neben dem Öffnen des Dialogs über den Menüeintrag ist eine Schnellwahl über das Symbol in der Haupt- menüleiste möglich. 103 Ergebnis Der Ebenenmanager wird durch die DLL von Geo Soft zur Verfügung gestellt. Daher sind seine Bezeichnungen in englischer Sprache. Abbildung 5-12 zeigt welche Funktionen der Dialog zur Verfügung stellt. Die vorgenommenen Änderungen werden beim Schließen des Ebenenmanagers über OK in die Ansicht der Karte übernommen. Verändern der Reihenfolge der Ebenen. Die unterste Ebene wird in der Karte an oberster Stelle angezeigt. Ausgewählte Ebene aktivieren. Ausgewählte Ebene schließen. Abbildung 5-12: Dialog Ebenenmanager 5.4.3.2 Die Themenliste Über den Menüpunkt Themenliste soll der Benutzer einen Dialog aufrufen können, der ihm, ähnlich wie beim RIPS Viewer, eine Art Legende bereitstellt. Hier soll es möglich sein Objektlayer ein- oder auszublenden und die Darstellungsattribute einzelner Objektebenen zu verändern. (In dieser Version noch nicht implementiert.) 104 Ergebnis 5.4.3.3 Sachinformationen zu einem Thema erhalten Ein weiteres Feature des Hauptmenüpunktes Thema ist die Anzeige der Sachdatentabelle des aktiven Themas. Durch Klicken auf Thementabelle öffnet sich ein Dialog, der die Sachdaten zum aktiven Thema in einer Liste anzeigt (Abb. 5-13). Abbildung 5-13: Dialog Thementabelle 5.4.3.4 Kartenausschnitte verwalten Bisher nicht implementiert, jedoch in der Konzeption vorgesehen, ist die Verwaltung von Kartenausschnitten in Form von Lesezeichen. Dazu sollen unter dem Menü Thema folgende Funktionen aufrufbar sein. Lesezeichen-Funktion Beschreibung Lesezeichen Dient dem Aufruf von gespeicherten Kartenausschnitten. Der Benutzer soll diese aus einer Liste auswählen können. Lesezeichen hinzufügen Fügt den aktuellen Kartenausschnitt zu den bereits gespeicherten Ausschnitten hinzu. Dabei wird der Nutzer dazu aufgefordert das Lesezeichen zu benennen. Lesezeichen verwalten Hier soll sich ein Dialog öffnen, der zur Verwaltung der gespeicherten Lesezeichen dient (Umbenennen, Löschen). Tabelle 5-2: Kartenausschnitte verwalten 105 Ergebnis 5.4.4 Das Menü Kommunikation Das Menü Kommunikation beinhaltet Funktionen, die Schnittstellen zur GPS- und Internetanbindung darstellen. Abbildung 5-14: Menü Kommunikation 5.4.4.1 GPS-Anbindung Tabelle 5-3 zeigt die angedachten GPS Funktionalitäten. Wie bereits erwähnt wird die GPS-Anbindung durch eine Diplomarbeit an der FHT Stuttgart realisiert. RIPSPad stellt dazu beispielhaft Menüpunkte zur Verfügung, in die die GPS Funktionen eingebunden werden können. Es ist möglich weitere Menüpunkte nachträglich hinzuzufügen. GPS - Funktion Beschreibung GPS an / aus Dient dem Aktivieren und Deaktivieren des GPS Empfangs. Dieser Menüpunkt kann auch über die Schnellwahl durch in der Hauptmenüleiste beKlicken auf das Symbol dient werden. GPS Positionsfenster Vorgesehen ist ein Dialog, der, ähnlich ArcPad, anzeigt, wie viele Satelliten empfangen werden. Nützlich wäre auch die Anzeige eines Kompass. GPS Themenauswahl GPS Themenauswahl soll eine weitere Variante des „Durchstichs“ bieten. Durch Aufziehen einer Bounding Box erhält der Benutzer eine Liste aller Themen, die in dieser angezeigt werden können. Tabelle 5-3: GPS – Funktionen 106 Ergebnis 5.4.4.2 Kontakt zum Internet aufnehmen Die Internet-Kommunikation ist nicht Hauptaufgabe dieser Untersuchung. Deshalb unterlagen die Funktionen überwiegend der konzeptionellen Bearbeitung. Welche Internet-Funktionalitäten in RIPSPad integriert werden sollen wird in Tabelle 5-4 beschrieben. Die Möglichkeit des Nachladens von Kartenausschnitten über GPRS wurde durch die beispielhafte Implementierung des Punktes Thema über Internet laden bewiesen. (siehe Kapitel 5.4.4.2.1). Internet - Funktion Beschreibung Internetserver hinzufü- Ähnlich der Umsetzung in ArcPad soll ein Dialog zur gen Verfügung stehen, der die Eingabe einer URL und die Auswahl eines Kartendienstes erlaubt. mit Internetserver verbinden Die Verbindung zum eingestellten Kartenserver kann über diesen Menüpunkt hergestellt werden. Thema über Internet laden Angedacht ist ein Dialog, der Themen des Kartendienstes zur Zusammenstellung der Inhalte des anzufordernden Kartenausschnitts anbietet. Im Hintergrund wird eine URL mit den entsprechenden Parametern dynamisch erzeugt und nach Betätigen der Schaltfläche Karte laden an den Kartendienst weitergeleitet. Internetexplorer öffnen Zur Beschaffung hochaktueller Sachinformationen, wie z.B. zu Gefahrenstoffen, soll ein schneller Zugriff auf den Internetexplorer möglich sein. Tabelle 5-4: Internet – Funktionalitäten 107 Ergebnis 5.4.4.2.1 Online-Zugriff auf Kartenthemen Um das Laden von Kartenausschnitten über das Internet zu testen und unter Beweis zu stellen, wurde diese Funktionalität beispielhaft umgesetzt. In der Anwendung RIPSPad ist zur Nutzung dieses Features ein Dialog integriert, der über den Menüeintrag Thema über Internet laden des Menüs Kommunikation aufgerufen werden kann. Anstelle des eingetragenen Textes soll zu einem späteren Entwicklungsstadium eine Auswahl der Objektebenen angeboten werden, die das Zusammenstellen der anzufordernden Karte erlaubt. Über den Button Karte laden wird ein Abbildung 5-15: Dialog Thema über Internet laden Request an einen Kartendienst gesendet. Dieser verarbeitet die Anfrage und liefert den gewünschten Kartenausschnitt an das Gerät zurück. Der Dialog schließt sich und die Karte wird als Thema in den View geladen. Abbildung 5-16: Über das Internet geladenes Kartenthema 108 Ergebnis 5.4.5 Das Menü Objekt Das Menü Objekt beinhaltet alle Funktionen, die den Zugriff auf einzelne Objekte der aktiven Kartenebene erlauben. Abbildung 5-17: Menü Objekt 5.4.5.1 Informationen zu Objekten erhalten Als erster Menüpunkt steht, entweder über den Menüpunkt Identifizieren oder durch Schnellwahl über das Symbol in der Hauptmenüleiste, der Zugriff auf die Sachdaten zu einem bestimmten Objekt zur Verfügung. Nach Klicken auf das Symbol oder den Menüpunkt wird mit Hilfe des Stiftes ein Objekt des aktiven Themas ausgewählt. Daraufhin öffnet sich ein Dialog mit den Sachdaten und Koordinaten des Objekts (Abb. 5-18). Abbildung 5-18: Dialog Identifizieren 109 Ergebnis 5.4.5.2 Objekte selektieren Nach Berühren des Eintrags Auswahl im Menü Objekt kann, durch Tippen auf ein Objekt, dieses selektiert werden. Zu beachten ist, dass das Thema, welches das gewünschte Objekt enthält, im Ebenenmanager aktiviert werden muss. Neben dem interaktiven Selektieren von Objekten, soll es zukünftig möglich sein, mit angeschaltetem GPS-Empfang Objekte auszuwählen, die sich an der aktuellen Position befinden. Dazu wurde der Menüpunkt GPS Auswahl integriert. 5.4.5.3 Zu einem Objekt navigieren Die Menüpunkte Gehe zu und Gehe zu Auswahl stellen eine Funktion dar, die dem Nutzer helfen soll zu einem bestimmten Ort zu navigieren. Mit Gehe zu kann eine beliebige Marke in der Karte gesetzt werden, zu der navigiert werden soll. Gehe zu Auswahl erfordert das vorherige Selektieren eines Objekts im aktiven Thema. Dieses bildet dann das Ziel der Navigation. Dieses Feature erfordert die Kommunikation mit GPS und ist daher noch nicht implementiert. Die Funktionen sind in der Datei GeoSoft.dll bereits vorhanden und müssen noch getestet werden. Die Navigationshilfe ist so konzipiert, dass der Benutzer Informationen über die Richtung und Entfernung zum Zielobjekt bekommt. Gerade bei der Arbeit in Gebieten, die in kommerzieller Navigationssoftware nicht abgedeckt sind, kann diese Funktion sehr nützlich sein. 5.4.5.4 Objektauswahl aufheben Durch Klicken auf den Eintrag Auswahl aufheben im Menü Objekt wird die Auswahl von Objekten aufgehoben. Dieser Menüpunkt dient gleichzeitig der Entfernung von Marken, die mit Hilfe von Gehe zu gesetzt wurden. 110 Ergebnis 5.4.6 Das Menü Werkzeuge Erweiterte Funktionen werden im Menü Werkzeuge bereitgestellt. Dazu gehört auch der Aufruf zusätzlicher Werkzeugleisten, die Features einer bestimmten Funktionsgruppe beinhalten. Abbildung 5-19: Menü Werkzeuge 5.4.6.1 Den Kartenausschnitt verschieben Der aktuell im Kartenfenster sichtbare Bereich der Karte kann verschoben werden. Dazu auf das Symbol in der Hauptmenüleiste klicken und danach mit den Stift über das Kartenfenster bewegen. Der Ausschnitt wird um diese Distanz verschoben. Der Aufruf der Funktion ist auch über den Eintrag Bewegen im Menü Werkzeuge möglich. 5.4.6.2 Beschriften der Themeninhalte Sollen die Objekte eines Themas beschriftet werden, stehen dem Nutzer dazu verschiedene Funktionen zur Verfügung. Diese Funktionen sind zu einer Funktionsgruppe zusammengefasst und können als zusätzliche Werkzeugleiste eingeblendet werden. Dazu im Menü Werkzeuge auf den Eintrag Beschriften klicken. Daraufhin öffnet sich die Werkzeugleiste Beschriften mit folgenden Funktionalitäten: Automatische Beschriftung Dient der automatischen Beschriftung des gesamten aktiven Themas. Die Auswahl des Beschriftungsfeldes der Attributtabelle des Themas erfolgt vorab in einem Dialog (siehe Abb. 5-20). 111 Ergebnis Einzelbeschriftung Nach Auswahl dieser Funktion ist es möglich einzelne Objekte durch Berührung mit dem Stift zu beschriften. Zur Auswahl des Beschriftungsfeldes öffnet sich derselbe Dialog wie bei der automatischen Beschriftung. Wird das Kontrollkästchen maßstababhängig anzeigen aktiviert, so wird die Schriftgröße dem Maßstab angepasst. Abbildung 5-20: Auswahl des Feldes zur Beschriftung Abbildung 5-21 zeigt die Anwendung RIPSPad mit eingeblendeter Werkzeugleiste Beschriften und die maßstabsabhängige Beschriftung eines Einzelobjektes mit dessen Namen in der Karte. Abbildung 5-21: Beschriftung von Themeninhalten 112 Ergebnis Zeichenformat einstellen RIPSPad erlaubt die Definition des Zeichenformats für die Beschriftung durch den Anwender. Neben der Schriftart können die Schriftfarbe, Schriftgrad und Schriftstil eingestellt werden. Gleichzeitig ist auch hier die Option des maßstabsabhängigen Anzeigens der Beschriftung gegeben. (Abb. 5-22) Abbildung 5-22: Zeichenformat einstellen Beschriftung auswählen Mit dem Selektierwerkzeug können einzelne Beschriftungen ausgewählt werden. Diese werden rot dargestellt. Beschriftungsauswahl aufheben Drücken auf dieses Symbol bewirkt die Aufhebung der Auswahl der Beschriftung. Ausgewählte Beschriftung löschen Wurden Beschriftungen selektiert, können diese mit Hilfe diesen Werkzeuges aus der Karte entfernt werden. gesamte Beschriftung löschen Wird die Beschriftung des aktiven Themas nicht mehr benötigt, so kann die gesamte Beschriftung, durch Klicken auf diesen Button, aus der Karte entfernt werden. Werkzeugleiste Beschriften schließen Ist die Beschriftung abgeschlossen kann die Werkzeugleiste ausgeblendet werden. 113 Ergebnis 5.4.6.3 In der Karte messen Die zweite Funktionsgruppe, die in einer zusätzlichen Werkzeugleiste eingeblendet werden kann, ist das Messen in der Karte. In Abbildung 5-23 ist die Anwendung mit eingeblendeter Werkzeugleiste Messen zu sehen. Diese kann über den gleichnamigen Menüpunkt im Menü Werkzeuge aufgerufen werden. Die inaktiven und daher grau abgebildeten Symbole sind Platzhalter für Messfunktionen, die in dieser Arbeit noch nicht umgesetzt wurden. Abbildung 5-23: Werkzeugleiste Messen Erster Punkt der Werkzeugleiste bildet die Bestimmung der Einheit, in der gemessen werden soll. Dies erfolgt im Dialog Einheit festlegen (Abb. 5-24). Abbildung 5-24: Dialog Einheit festlegen 114 Ergebnis Werkzeugleiste Messen schließen Nach Beendigung der Messungen kann die Werkzeugleiste ausgeblendet und somit das Kartenfenster wieder vergrößert werden. Im Folgenden sollen die übrigen, bisher nicht umgesetzten Funktionen der Werkzeugleiste Messen erläutert werden: Strecke messen Diese Funktion wird von GeoSoft.dll zur Verfügung gestellt. Leider hat sich herausgestellt, dass diese Funktion fehlerhaft misst. Daher muss die Messung von Strecken noch entwickelt werden. Es soll möglich sein in der Karte eine Linie zu ziehen, worauf in einem Fenster die Entfernung zwischen Anfangs- und Endpunkt entlang der Linie und in direkter Entfernung (Luftlinie) angezeigt. Fläche messen Neben der Streckenmessung soll die Messung von Flächen möglich sein. GPS Streckenmessung Um die Vorteile der Ortsbestimmung durch GPS zu Nutzen bietet es sich an, diese auch für die Messung von Strecken einzusetzen. Der Nutzer kann dabei während des Begehens einer Strecke gleichzeitig GPS Punkte setzen. Diese Punkte werden dann zur Messung herangezogen. Da die Umsetzung der GPS-Anbindung nicht Bestandteil dieser Arbeit ist, wurde diese Funktion noch nicht realisiert. GPS Flächenmessung Wie die Messung von Strecken mittels GPS Punktaufnahme, so soll auch die Messung von Flächen über GPS möglich sein. 115 Ergebnis 5.4.6.4 Eine Abfrage zu einem Thema durchführen Das Menü Werkzeuge stellt als erweiterte Funktion einen Abfragemanager zur Verfügung. Dieser kann über den Eintrag Abfrage aufgerufen werden. Abbildung 5-25: Dialog Abfragemanager Mit Hilfe des Abfragemanagers kann der Benutzer Abfragen zum aktiven Thema selbst generieren. Dabei wird wie folgt vorgegangen: 1. Die Liste Field beinhaltet die Spaltenbezeichnungen der Thementabelle des aktiven Themas. Es muss die Spalte markiert werden, die als Selektor dienen soll. Nach Wahl des Selektors erscheint die Spaltenbezeichnung im Textfeld unterhalb der Listen. Gleichzeitig werden alle Daten der Spalte in die Liste Value geladen. 2. Je nach Anforderung der Selektion muss im nächsten Schritt ein Operator ausgewählt werden. Dieser wird im Textfeld dem Abfrage-String hinzugefügt. 3. Durch Anklicken eines Wertes der Spalte, nach dem selektiert werden soll, kann die Abfrage erfolgen. Natürlich ist es auch möglich eine komplexe Abfrage mit mehreren Selektoren zu erzeugen. 4. Durch Betätigen der Schaltfläche Query wird die Abfrage durchgeführt. Mit Clear wird der Abfragemanager zurückgesetzt und es kann eine neue Abfrage generiert werden. Cancel führt zum Abbruch der Funktion. Der Abfragemanager wird geschlossen. 5. Als Ergebnis der Abfrage öffnet sich der Dialog Abfrageergebnis. Dieser zeigt die Datensätze an, die von der Abfrage gefunden und zurückgeliefert wurden. 116 Ergebnis Abbildung 5-26: Dialog Abfrageergebnis 6. Der Nutzer kann nun einen Datensatz mit dem Stift auswählen. Über die Schaltfläche auf Auswahl zoomen wird der Dialog geschlossen und im Kartenfenster automatisch auf das ausgewählte Objekt gezoomt. (Abb. 527) Abbildung 5-27: Zoom auf Abfrageergebnis 117 Ergebnis 5.4.6.5 Weitere vorgesehene Werkzeuge Außer den oben beschriebenen Funktionen soll das Menü weitere Werkzeuge anbieten. Tabelle 5-5 erläutert die vorgesehenen Werkzeuge, die bereits als „Platzhalter“ in die Anwendung integriert, jedoch noch nicht umgesetzt sind. Werkzeug Beschreibung Statistik In Anlehnung an die Statistik-Funktion des RIPS Viewer ist auch für RIPSPad ein solches Werkzeug denkbar. So kann der Sachbearbeiter schon vor Ort statistische Berechnungen zu einem Thema durchführen. Punktaufnahme Um die GPS-Anbindung in einem größeren Maße zu Nutzen könnte die Aufnahme von Ortskoordinaten als Werkzeug integriert werden. Dabei wäre wiederum die Zusammenfassung der Funktionen, die zur Punktaufnahme benötigt werden, zu einer Gruppe denkbar. Funktionalitäten, wie z.B. Anfangs- und Endpunkt sowie Zwischenpunkt setzen, könnten in einer einblendbaren Werkzeugleiste dem Nutzer bei Bedarf zur Verfügung gestellt werden. Word öffnen Um die Arbeit im Gelände so einfach wie möglich zu gestalten wäre ein Schnellstart des Programms Microsoft Pocket Word sinnvoll. Denkbar ist, dass im sich öffnenden Dokument bereits automatisch Datum und Uhrzeit und sonstige Eintragungen vorhanden sind. So kann der Nutzer Notizen zur Lage vor Ort aufnehmen. Excel öffnen Zur Aufnahme von Notizen könnte auch das Programm Microsoft Pocket Excel angeboten werden. Hier besteht zusätzlich die Möglichkeit Berechnungen durchzuführen. Auch dazu wäre ein Schnellstart im Menü Werkzeuge sinnvoll. Tabelle 5-5: weitere vorgesehene Funktionen des Menü Werkzeuge 118 Ergebnis 5.4.7 Das Menü Information Im letzten Menüpunkt der Hauptmenüleiste können ein Hilfe- sowie ein Infodialog aufgerufen werden. Der Hilfedialog soll dem Benutzer bei der Bedienung von RIPSPad Hilfestellung geben. (In dieser Arbeit nicht implementiert.) Er kann entweder durch direktes Drücken auf das Symbol in der Hauptmenüleiste oder durch Auswahl des Eintrags Hilfe im Menü Information geöffnet werden. Abbildung 5-28: Menü Information Über den Menüpunkt Info kann ein Dialog aufgerufen werden, der Informationen zum Programm RIPSPad liefert. In diesem Fall handelt es sich um Informationen zur Entwicklung von RIPSPad innerhalb dieser Diplomarbeit. Abbildung 5-29: Dialog Info 119 Ausblick und Zusammenfassung 6 Ausblick und Zusammenfassung Natürlich kann innerhalb einer Diplomarbeit ein Programm nicht bis zur Produktreife entwickelt werden. Auch bei der Anwendung RIPSPad gibt es Funktionen, die erst in einer weiteren Entwicklungsphase implementiert werden können. In Kapitel 5.4 wurden neben den implementierten Werkzeugen auch solche beschrieben, die konzeptionell angedacht und bereits in Form von Platzhaltern in die Anwendung integriert sind. Daneben gibt es noch weitere offene Punkte, die zur Optimierung des Programms integriert werden könnten: • Zusätzliche, optional einblendbare Standard-Werkzeugleiste mit den wichtigsten, oft benötigten Funktionen, wie z.B. Zoom +, Zoom -, Auswahl,... zur schnelleren Bedienung. • Unter Windows CE ist die Ausdehnung des Kartenfensters auf das gesamte Display durch den Benutzer möglich. Dieses Feature könnte in der Entwicklungsumgebung eMbedded Visual C++ 4.0 implementiert werden. • Außer dem Rasterformat JPG sollte die Verarbeitung der Datenformate PNG und TIFF ermöglicht werden. • Die symbolhafte Darstellung der einzelnen Ebenen oder einzelner Objekte (Punkt, Linie, Fläche) sollte verändert werden können. Dazu könnte ein Legendeneditor dienen, wie er im Desktop-GIS RIPS Viewer vorhanden ist. • Damit der Raumbezug leichter hergestellt werden kann, sollte eine graphische Maßstabsleiste integriert werden. • Um dem Benutzer die Möglichkeit zu bieten auf einen ganz bestimmten Maßstab zu zoomen, wäre es sinnvoll, die Maßstabszahl editierbar zu machen. Nach Eingabe einer Maßstabszahl würde sich die Zoomstufe der Karte automatisch auf diese einstellen. • Erwünscht ist die Integration einer ALK Flurstücksuche nach Flurstück, Gebäude und Texten. Schwierigkeiten bei der Verarbeitung großer Datenmengen werden sich in absehbarer Zeit, bedingt durch die rasante technische Weiterentwicklung mobiler Geräte, von selbst lösen. Offen bleiben die Probleme bei der Verwaltung von Rasterdaten, die in Kapitel 4.3.4.9.1 beschrieben wurden. Da RIPSPad eine solide Basis zur Weiterführung dieses Projektes darstellt, ist der Erwerb der Quellsourcen von GeoSoft.dll angedacht. Dies würde eine Eliminierung der Schwierigkeiten innerhalb der Bibliothek möglich machen. Einer 120 Ausblick und Zusammenfassung Stabilisierung der Verarbeitung von Rasterdaten würde damit nichts mehr im Wege stehen. Das Ergebnis der vorliegenden Arbeit beweist, dass es möglich ist, durch die Eigenentwicklung einer mobilen GIS-Lösung Sachbearbeitern der Umweltschutzverwaltungen eine Software an die Hand zu geben, die sie bei ihrer Arbeit unterstützen kann. Erleichterung bringt die spezielle Ausrichtung des Programms für die Anforderungen im Umweltschutz in Anlehnung an bekannte Desktop-Lösungen wie den RIPSViewer. Daneben besteht der große Vorteil, dass der entwickelte GIS-Viewer RIPSPad lizenzfrei zur Verfügung gestellt werden kann. Somit wird jeder Verwaltungsbehörde der mobile Zugriff auf digitales Kartenmaterial ohne große Investitionen möglich. 121 Anhang 7 Anhang 7.1 Glossar ActiveX Von Microsoft eingeführte Technologie, mit deren Hilfe Objekte prozess- oder netzwerkübergreifend kommunizieren können. ActiveX-Komponenten basieren auf dem Component Object Model (Æ COM). Algorithmus Detaillierte Vorschrift zur Bearbeitung einer Aufgabe in Form einer mechanisch durchführbaren Rechenanweisung. API Application Programming Interface; AnwendungsProgrammierschnittstelle; Sammlung von Routinen, die Anwendungsprogrammen zum Zugriff auf Funktionen des Betriebssystems zur Verfügung gestellt werden. Bluetooth Technologie zur Funkübermittlung von Sprache und Daten über kurze Strecken. Ermöglicht die kabellose Verbindung von Einzelgeräten, wie PCs, Faxgeräte, PDAs und Mobiltelefone. Class Wizard Dialog in der Entwicklungsumgebung eMbedded Visual C++ 4.0, der die Erstellung von Klassen und deren Schnittstellen erleichtert. COM Component Object Model; Definiert die Kommunika-tion zwischen Objekten und bildet die Basis der Æ ActiveXTechnologie. Compact Flash (CF) Schnittstellenstandard für digitale Speichermedien. Wird in Form von CF-Karten in Computern, Digitalkameras und Æ PDAs eingesetzt. Auf dieser Karte ist sowohl der Speicher als auch der Æ Controller untergebracht. CF-Speicherkarten gibt es in unterschiedlichen Speichergrößen, von 2 MB bis 8 GB (Stand 2004). Controller Die Elektronik, die ein Speichermedium beschreiben und lesen kann. DCOM Distributed Component Object Model; Ein von Microsoft definiertes Protokoll, für die Kommunikation von Programmkomponenten über ein Netzwerk. Zukünftig soll DCOM durch Microsoft .NET abgelöst werden. Direktive Æ Präprozessordirektive Docking Station Zusatzgerät zum Anschluss mobiler Computer, wie PDAs an einen sationären Computer. Versorgt das mobile Gerät mit Strom und dient dem Datenaustausch der Geräte über Æ USB. 122 Anhang Emulator Ein Emulator ist ein System, das ein anderes nachbildet. Das nachbildende System erhält die gleichen Daten, führt die gleichen Programme aus und erzielt die gleichen Ergebnisse wie das nachgebildete System. In der Softwareentwicklung wird ein Emulator dazu verwendet, Software für andere Systeme zu entwickeln und zu testen. Beispiel: Ein Programm für einen PDA mit dem Betriebssystem Windows CE 4.2, das auf dem PC unter Windows XP entwickelt wird, kann mit dem Pocket PC 2003 Emulator auf dem PC getestet werden. Event Äußeres Ereignis innerhalb eines Programmablaufs. Dazu zählen Benutzerereignisse, wie das Drücken einer Taste oder das Bewegen der Maus, auf die das Programm mit einem Ereignis reagiert. GIS Geographical Information System; Ein rechnergestütztes System, das aus Hardware, Software, Daten und Anwendungen besteht. Mit ihm können raumbezo-gene Daten digital erfasst und regidiert, gespeichert und reorganisiert, modelliert und analysiert sowie alphanumerisch und graphisch präsentiert werden. (vgl. Bill, 1999, Bd. 1, S.4) GIS Viewer Stellt ein Æ GIS dar, das der Visualisierung und Abfrage von Geodaten dient. GIS Viewer besitzen einen begrenzten Funktionsumfang und beschränken sich als Betrachtungssystem auf die Präsentation von Karten und Sachdaten. Daneben können sie einfache Kartierungsfunktionen anbieten. GML Geography Markup Language; Eine vom Open GIS Consortium definierte Implementationsspezifikation. Basiert auf einer Æ XML-Grammatik für die Modellierung, den Transport und die Speicherung räumlicher Informationen. Version 3.0 unterstützt komplexe Geometrien, räumliche und temporale Referenzsysteme, Topologie, Maßeinheiten, Metadaten, Rasterdaten und Default Styles für Features und Rastervisualisierungen. GPRS General Packet Radio Service; dt.: Allgemeiner paketorientierter Funkdienst; Paketorientierte Datenübertragung als Erweiterung des Æ GSM-Mobilfunk-Standards. Die Daten werden beim Sender in einzelne Pakete umgewandelt, in Form dieser Pakete übertragen und beim Empfänger wieder zusammengesetzt. GPS Global Positioning System; Anordnung von derzeit 27 aktiven US-Satelliten, die es Benutzern mit geeigneten Empfängern erlaubt, ihre Position auf oder unter der Erdoberfläche genau zu bestimmen. GSM Global System for Mobile Communication; Ist der derzeit weltweit am meisten genutzte europäische Übertragungsstandard für Mobiltelefone. GUI Graphical User Interface; Heißt übersetzt "Graphische Benutzerschnittstelle", wird jedoch in der Regel treffender als "Graphische Benutzungsschnittstelle" bzw. "Mensch-Maschine-Schnittstelle" bezeichnet. Bildet eine graphische Schnittstelle zwischen Computer und Anwender und ist der Teil einer Software den der Benutzer unmittelbar auf der 123 Anhang Anzeige sieht. Infrarotschnittstelle (IR) Ermöglicht eine drahtlose Kommunikation mit Peripheriegeräten. Iterator Steht im Bereich der Softwareentwicklung für ein Entwurfsmuster und gehört zur Kategorie der Verhaltensmuster (Behavioral Patterns). Es ermöglicht den sequentiellen Zugriff auf Elemente einer Sammlung, ohne deren Sammlungsstruktur zu kennen. Kernel Kern eines Betriebssystems, zuständig für grundlegende Funktionen, wie Speicher-, Prozess-, Task- und Diskmanagement, verbleibt ständig im Hauptspeicher. Layer Dient der Strukturierung von Geodaten in Geoinformationssystemen (Æ GIS) nach inhaltlichen Kriterien. Ein Layer bezeichnet die Ebene, Folie oder Schicht einer Zeichnung, die eine Menge geometrischer Objekte enthält und die bei Bedarf zur Darstellung ein- bzw. ausgeblendet werden kann. Der Aufbau einer Karte in einem Æ GIS erfolgt in einer Æ Multi-Layer-Umgebung. LBS Location-based Services; dt.: Ortsbezogener Dienst; Dienst, Abfrage oder Prozess, dessen Wiedergabe oder Eigenschaft vom Standort des nachfragenden Client, Objekts oder Person anhängig ist. LBS-Anwendungen verbinden Mobilfunktechnologie mit Internetdiensten und Geoinformationen. MMC Multi Media Card; Digitales Speichermedium in Form einer Speicherkarte mit integriertem Æ Controller. Die Speicherkapazität liegt zwischen 2 MB und 2 GB. Verwendung findet sich beispielweise in Digitalkameras, MP3-Playern oder Handys. Eine Multimedia Card ist größtenteils kompatibel mit einer Æ SD Memory Card. Multi-LayerUmgebung Auch Layerprinzip oder Ebenenprinzip genannt; bezeichnet die Strukturierung von geometrischen Daten durch Æ Layer in Geoinformationssystemen (Æ GIS). Durch das Überlagern von Folien wird das Gesamtbild einer Karte erzeugt. Daneben sind durch alternative Kombinationen von Folien unterschiedliche Ausgabeformen möglich. Durch Layer getrennte Geodaten können über Verfahren der geometrischen Analyse, z. B. durch die Verschneidung, wieder zusammen bearbeitet und ausgewertet werden. (vgl. Bollmann, 2002) Multitasking Mehrprogrammbearbeitung; Multitaskingfähige Betriebssysteme sind in der Lage, mehrere Programmabläufe scheinbar gleichzeitig ablaufen zu lassen. Multithreading Mehrprozessbearbeitung; Multithreading bezieht sich auf die quasi-parallele Bearbeitung mehrerer Prozesse (Threads) innerhalb eines Programms. 124 Anhang Open Source Der Begriff beschreibt einerseits, dass der Quelltext eines Programms frei erhältlich ist und andererseits dass ein Werk frei zur Verfügung steht. Eine Software gilt als Open Source, wenn sie bestimmte Kriterien erfüllt, die in ihrer OpenSource-Lizenz geregelt sind. Unabhängig der Lizenzverträge gelten folgende wesentlichen Merkmale: Der Programmcode liegt in einer lesbaren und verständlichen Form vor. Die Software darf beliebig kopiert, verbreitet und genutzt werden. Die Software darf verändert und in der veränderten Form weitergegeben werden. Die Weitergabe soll ohne Lizenzgebühren möglich sein. Diese Charaktersitika sind in der Open Source Definition (OSD) detailliert festgelegt. Orthophoto Als Orthophoto wird ein durch Transformation auf ein orthogonales Koordinatensystem entzerrtes Luftbild bezeichnet. PDA Personal Digital Assistant; Tragbarer PC für die "Westentasche", der über einen kleinen Bildschirm verfügt und mit Hilfe eines Stiftes und eines Æ Touchscreens bedient wird. Präprozessordirektive Header-Dateien werden in C++ durch die Präprozessordirektive #include zum Bestandteil des Programms. Das Programm, das die Direktiven ausführt, heißt Präprozessor und ist normalerweise Bestandteil des Compilers. RAM Random Access Memory; Schreib-Lese-Speicher, der beliebig oft gelesen und beschrieben werden kann. In Rechnern wird der Arbeitsspeicher durch RAM-Bausteine realisiert. Request Ein Request ist eine durch einen Client gestellte Anfrage an einen Server. Beispielsweise kann es sich dabei um das Anfordern einer Webseite oder Datei handeln. Der Server sendet daraufhin eine Antwort an den Client, die man Response nennt. Ressourcenmanager Unter den Ressourcen eines Programms werden bestimmte Elemente der Æ GUI verstanden, wie z.B. Dialoge, Menüs, Symbolleisten, Bitmaps,... . In der Entwicklungsumgebung eMbedded Visual C++ 4.0 werden diese im sog. Ressourcenmanager erzeugt, modifiziert und verwaltet. ROM Read-Only Memory; Nur-Lese Speicher, dessen Inhalt vom Hersteller ab Werk festgelegt ist und vom Anwender nicht mehr verändert werden kann. ROMs werden als Speicher für Informationen, wie z.B. Betriebssysteme, Interpreter und Zeichensätze verwendet. Schlüsselwort In der Programmierung bezeichnet man damit ein Wort, das eine Funktion auslöst und fester Bestandteil einer Programmiersprache ist. SD Memory Card Secure Digital Memory Card; Digitales Speichermedium in Form einer Speicherkarte mit integriertem Æ Controller, für die Speichererweiterung von Computern, Digitalkameras und Æ PDAs. Die Speicherkapazität reicht derzeit von 8 MB bis 2 GB (Stand März 2005). SIM-Karte SIM = Subscriber Identity Module; Die SIM-Karte ist eine Chipkarte die in ein Mobiltelefon eingesteckt wird und der 125 Anhang Identifikation des Nutzers im Mobilfunknetz dient. Smartphones Vereinen den Leistungsumfang eines Æ PDAs mit einem Mobiltelefon, wobei der Ansatzpunkt je nach Hersteller mehr der PDA oder das Mobiltelefon ist. SQL Structured Query Language; SQL ist die Standardabfragesprache für relationale Datenbanksysteme. struct In der Programmiersprache C++ wird das Æ Schlüsselwort struct zur Deklaration einer Struktur verwendet. Eine Struktur referenziert eine Gruppe von Variablen unter einem Namen und stellt sicher, dass zusammengehörige Informationen auch im Speicher zusammenbleiben. SVG Scalable Vector Graphic; Sprache zur Beschreibung zweidimensionaler Vektorgraphiken in Æ XML. Touchscreen Berührungsempfindlicher Bildschirm, dessen Darstellungsfläche gleichzeitig ein Berührungssensor ist. Transflektives Display Transflektiv bedeutet durchleuchtend und zurückspiegelnd und beschreibt, wie das Licht an die Display-Oberfläche gelangt. Ein transflektives Display sichert eine gute Sichtbarkeit der Darstellungen auf dem Display trotz Sonneneinstrahlung. Unicode Zeichensatzstandard mit 16 Bit pro Zeichen. Unicode kann 65 536 Zeichen kodieren, genug für lateinische, kyrillische, hebräische, arabische, indische und chinesische Schriftzeichen. Jedes Schriftzeichen hat seine Unicode-Kodierung und in Dokumenten kann eindeutig darauf Bezug genommen werden. URL Uniform Resource Locator; Zeichenfolge zur Beschreibung einer Adresse zu einer Ressource, z.B. einer Datei, im Internet. USB Universal Serial Bus; Standard für ein universelles, externes System zum Datentransfer. Bietet eine einheitliche Schnittstelle zum Anschluss aller USB-Geräte über eine Steckernorm. W3C Abk. für Æ World Wide Web Consortium Wireless LAN (WLAN) Wireless Local Area Network; Bezeichnet ein "drahtloses" lokales Funknetz-Netzwerk, wobei meistens ein Standard der IEEE 802.11-Familie gemeint ist. World Wide Web Consortium Gremium zur Standardisierung des World Wide Web betreffender Techniken. Das Gremium wurde 1994 durch Tim Berner-Lee gegründet. XML Extensible Markup Language; Vom Æ World Wide Web Consortium standardisierte Sprache zur logischen Auszeichnung von Dokumenten. In Æ XML-Dateien können Daten mit Hilfe von Tags strukturiert gespeichert und mit Hilfe von Stylesheets (Dateien mit Formatierungsanweisungen) mit geeigneten Programmen ausgegeben werden. 126 Anhang 7.2 Literaturverzeichnis Boling, Douglas (2003): Programming Microsoft WINDOWS CE .NET, Third Edition, Washington: Microsoft Press Becker, Gunter (1999): Nutzung von ArcView als Erfassungs- und Kartographiewerkzeug in der Naturschutzverwaltung. Diplomarbeit FH Karlsruhe, Studiengang Kartographie & Geomatik im SS 1999 Hake, Günter; Dietmar Grünreich; Meng, Liqui (2002): Kartographie. Visualisierung raum-zeitlicher Informationen. 8. Auflage. Berlin; New York: de Gruyter Schimpf, Christian-Antonius und Ullfors, Carl Magnus (2001): Lexikon. Computer und Informationstechnik. Gütersloh/München: Bertelsmann Lexikon Verlag GmbH Voigt, Björn (2004): Erdarbeiten. in: Java Magazin. Ausgabe 1.04. Software & Support Verlag GmbH Weitkämper, Jürgen (2004): SVG ±geo -Viewer ActiveX-Komponente. Anwenderhandbuch. Stand: 20.10.2004. Fachhochschule Oldenburg/Ostfriesland/Wilhelmshaven Zur Programmierung verwendete Literatur: Grattan, Nick (2001): Windows CE 3.0. application programming. Upper Saddle River, New Jersey: Prentice Hall PTR Leinecker, Richard C. u. Archer, Tom (2002): Visual C++ 6. IT-Studienausgabe. 1. Auflage. Bonn: mitp-Verlag Lippman, Stanley B. u. Lajoie, Josée (2003): C++. IT-Studienausgabe. 1. Auflage. Bonn: mitp-Verlag Louis, Dirk (1999): Jetzt lerne ich Visual C++ 6.0. München: Markt und Technik, Buch- und Softwareverlag Schildt, Herbert (2003): C++. The Complete Reference. Fourth Edition. Berkeley, California: McGraw-Hill Companies Sonstige Literatur: Longley, Paul A.; Goodchild, Michael F.; Maguire, David J. u. Rhind David W. (2001): Geographic Information Systems and Science. Chichester, England: John Wiley & Sons, Ltd. Schimpf, Christian-Antonius u. Ullfors, Carl Magnus (2001): Lexikon. Computer und Informationstechnik. Gütersloh/München: Bertelsmann Lexikon Verlag GmbH 127 Anhang 7.3 Internet-Quellenverzeichnis DevWinCE_2005: http://msdn.microsoft.com/embedded/usewinemb/ce/appdev/default.aspx (besucht am 21.2.2005) GINSVG_2005: http://www.fh-oow.de/institute/iapg/projekte/svgmobil/GIN-Poster-AGIPSVG-2003.pdf (besucht am 07.03.2005) HEISE_2005: http://www.heise.de/mobil/newsticker/meldung/46074 (besucht am 21.2.2005) MOLT_2005: http://www.esri.com/library/brochures/pdfs/molt_b.pdf (besucht am 07.03.2005) PAULA_2005: http://www.iai.fzk.de/projekte/xfaweb/berichte/aja5/12-fzk-paula/aja5-fzkpaula.html (besucht am 07.03.2005) Rademacher_2004: http://www.ikg.uni-hannover.de/publikationen/bachelor/2004/ rademacher/rademacher.html (besucht am 27.10.2004) SVGGEO_2004: http://www.fh-oow.de/institute/iapg/personen/brinkhoff/paper/ GITage2004.pdf (besucht am 12.10.2004) WINCE_2005: http://www.microsoft.com/downloads/details.aspx?FamilyID=111fe6d5b0e1-4887-8070-be828e50faa9&displaylang=en (besucht am 19.01.2005) WRLDF_2005: http://freegis.org/freegis_tutorial/online/node189.html (besucht am 04.03.2005) Daneben wurden zur Programmierung eine Vielzahl an Internetseiten und Foren besucht, auf die im Text nicht explizit verwiesen wurde. Für die Recherche zum Umweltinformationssystem (UIS) und RIPS wurden während der Diplomarbeit folgende Seiten besucht: • http://www2.lfu.baden-wuerttemberg.de/lfu/abt2/oekokonto/rips.html • http://www.fht-stuttgart.de/fbv/fbvweb/gisdatenbw/publikationen /DigiDat_Tagungsband_M_ller.pdf • http://www2.lfu.baden-wuerttemberg.de/lfu/uis/uis-info.html • http://www.lfu.bwl.de/udkservlets/UDKServlet 128 Anhang 7.4 Tabellenverzeichnis Tabelle 1-1: Basisdaten im RIPS-Pool ..................................................................... 3 Tabelle 1-2: Daten aus Natur und Landschaft im RIPS-Pool (Auszug) ..................... 4 Tabelle 1-3: Daten zu Technosphäre, Wasser, Boden, Luft im RIPS-Pool (Auszug).. 4 Tabelle 3-1: Anforderungen an die Hardware ....................................................... 8 Tabelle 3-2: Hardwarevergleich (Stand Februar 2005) ........................................... 9 Tabelle 3-3: Gegenüberstellung der GPS-Empfänger Technologien ..................... 10 Tabelle 3-4: historische Entwicklung von Windows CE ........................................ 14 Tabelle 4-1: Konzeption der Funktionalitäten des geplanten GIS-Viewers............ 34 Tabelle 4-2: Features Esri MapObjects® LT ......................................................... 35 Tabelle 4-3: Systemvoraussetzungen Esri MapObjects® LT.................................. 36 Tabelle 4-4: Erweiterungen von SVG durch SVG+ geo (Auszug)............................... 38 Tabelle 4-5: Systemvoraussetzungen SVG+ geo ....................................................... 39 Tabelle 4-6: Klassen Java GeoTools lite................................................................ 40 Tabelle 4-7: Funktionsübersicht GeoPAD 1.1 (GeoSoft.dll) .................................. 42 Tabelle 4-8: Systemvoraussetzungen GeoPAD 1.1............................................... 43 Tabelle 4-9: Auswertung der Untersuchung möglicher Bausteine........................ 44 Tabelle 4-10: Funktionen GeoPad 1.1 Applikation............................................... 50 Tabelle 4-11: Datenstruktur des Themenbaums in Access ................................... 70 Tabelle 5-1: Zoomfunktionen von RIPSPad ........................................................ 102 Tabelle 5-2: Kartenausschnitte verwalten .......................................................... 105 Tabelle 5-3: GPS – Funktionen .......................................................................... 106 Tabelle 5-4: Internet – Funktionalitäten ............................................................. 107 Tabelle 5-5: weitere vorgesehene Funktionen des Menü Werkzeuge................. 118 129 Anhang 7.5 Abbildungsverzeichnis Abbildung 1-1: Gliederung der Naturschutzverwaltung......................................... 2 Abbildung 4-1: RIPS Viewer Projektfenster .......................................................... 17 Abbildung 4-2: RIPS Viewer Viewfenster ............................................................. 18 Abbildung 4-3: RIPS Viewer Themenliste............................................................. 19 Abbildung 4-4: RIPS Viewer Werkzeugleiste........................................................ 19 Abbildung 4-5: RIPS Viewer Abfragemanager ..................................................... 20 Abbildung 4-6: RIPS Viewer Werkzeug Statistik................................................... 21 Abbildung 4-7: RIPS Viewer Themenmanager ..................................................... 22 Abbildung 4-8: RIPS Viewer Übersichtsfenster.................................................... 23 Abbildung 4-9: ArcPad Standardoberfläche ........................................................ 25 Abbildung 4-10: ArcPad Internet-Server hinzufügen ........................................... 26 Abbildung 4-11: ArcPad Dialog Layer.................................................................. 26 Abbildung 4-12: ArcPad Werkzeug Erweiterte Auswahl ...................................... 28 Abbildung 4-13: ArcPad Werkzeug Lesezeichen.................................................. 29 Abbildung 4-14: GIS_DATA Verzeichnisstruktur für den PDA .............................. 32 Abbildung 4-15: Beispielanwendung mit SVG+ geo ................................................ 39 Abbildung 4-16: GeoPad 1.1 Applikation............................................................ 41 Abbildung 4-17: GeoPAD Entwicklungsversion .................................................. 45 Abbildung 4-18: Aufbau der Benutzungsoberfläche........................................... 52 Abbildung 4-19: Funktionsgruppe „Projekt“....................................................... 53 Abbildung 4-20: Funktionsgruppe „Ansicht“ ...................................................... 54 Abbildung 4-21: Funktionsgruppe „Thema“ ....................................................... 54 Abbildung 4-22: Funktionsgruppe „Kommunikation“......................................... 55 Abbildung 4-23: Funktionsgruppe „Objekt“ ....................................................... 55 Abbildung 4-24: Funktionsgruppe “Werkzeuge“ ................................................ 56 Abbildung 4-25: Funktionsgruppe „Information“ ............................................... 57 Abbildung 4-26: Beziehungen der Tabellen für den Themenbaum ...................... 70 Abbildung 4-27: Imagekatalog für die Verwendung in RIPSPad........................... 81 Abbildung 5-1: Startbildschirm............................................................................ 95 Abbildung 5-2: Menü Projekt.............................................................................. 95 Abbildung 5-3: Projekt öffnen und speichern...................................................... 96 Abbildung 5-4: Dialog Thema manuell laden ...................................................... 97 Abbildung 5-5: Dialog Themenmanager ............................................................. 98 130 Anhang Abbildung 5-6: Laden von Shapefiles .................................................................. 99 Abbildung 5-7: Laden einer digitalen topographischen Karte ............................ 100 Abbildung 5-8: Laden eines Orthophotos.......................................................... 100 Abbildung 5-9: Ausblenden der Statusleiste..................................................... 101 Abbildung 5-10: Menü Ansicht ......................................................................... 102 Abbildung 5-11: Menü Thema .......................................................................... 103 Abbildung 5-12: Dialog Ebenenmanager .......................................................... 104 Abbildung 5-13: Dialog Thementabelle ............................................................ 105 Abbildung 5-14: Menü Kommunikation............................................................ 106 Abbildung 5-15: Dialog Thema über Internet laden........................................... 108 Abbildung 5-16: Über das Internet geladenes Kartenthema .............................. 108 Abbildung 5-17: Menü Objekt .......................................................................... 109 Abbildung 5-18: Dialog Identifizieren................................................................ 109 Abbildung 5-19: Menü Werkzeuge ................................................................... 111 Abbildung 5-20: Auswahl des Feldes zur Beschriftung ...................................... 112 Abbildung 5-21: Beschriftung von Themeninhalten........................................... 112 Abbildung 5-22: Zeichenformat einstellen........................................................ 113 Abbildung 5-23: Werkzeugleiste Messen ......................................................... 114 Abbildung 5-24: Dialog Einheit festlegen ......................................................... 114 Abbildung 5-25: Dialog Abfragemanager ........................................................ 116 Abbildung 5-26: Dialog Abfrageergebnis .......................................................... 117 Abbildung 5-27: Zoom auf Abfrageergebnis ..................................................... 117 Abbildung 5-28: Menü Information .................................................................. 119 Abbildung 5-29: Dialog Info.............................................................................. 119 131 Anhang 7.6 Beilagen Die im Rücken dieser Arbeit beigefügte DVD-ROM beinhaltet alle Dateien und Anwendungen, zur Entwicklung und Ausführung des Programms RIPSPad. Zusätzlich ist, neben dem GIS_DATA-Verzeichnis mit Beispieldaten, diese Ausarbeitung im PDF-Format enthalten. 132