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