|
Geodaten und Application Express: Darstellung als Karte
Kennen Sie Google Maps? Wahrscheinlich schon.
Dann stellt sich die Frage, ob geografische Informationen
auch in Ihren Anwendungen einen Nutzen stiften können.
Der geografische Ort wird
meist nur indirekt verwendet, etwa als postalische Adresse oder als Kennziffer für
das Vertriebsgebiet - was für viele Aufgabenstellungen völlig ausreichend ist.
Der erfolgreiche Einsatz von Navigationssystemen oder Diensten wie Google Maps
zeigt deutlich, welchen Stellenwert
Anwendungen mit Ortsbezug erreichen können. Auf die gleiche Weise kann die
Verwendung geografischer Informationen in Ihren Application Express-Anwendungen
deutlich zur Wertschöpfung beitragen.
In der letzten Ausgabe
haben Sie erfahren ...
- ... wo Sie Kartendaten von NAVTEQ im Oracle-Format kostenlos herunterladen
- ... wie Sie diese Kartendaten in die Datenbank importieren
- ... wie Sie geometrische Berechnungen auf diesen Daten durchführen können
In dieser Ausgabe lernen Sie, wie Sie die Daten als Karte darstellen und
diese Karte in Ihre Anwendung integrieren.
Zum Erzeugen der Karte wird in diesem Tipp der
Oracle Application Server MapViewer
verwendet. Der MapViewer erzeugt anhand in der Datenbank
vorhandener Geodaten Karten, welche dann z.B. in eine Webseite eingebunden
werden können.
Der MapViewer ist Bestandteil des Oracle Application Servers. Um ihn
produktiv nutzen zu können, müssen Sie die Java Edition des
Application Servers lizensieren. Zum Testen (oder zum Ausprobieren
dieses Tipps) können Sie sich eine Version aus dem OTN herunterladen.
Damit Application Express auf den MapViewer zugreifen kann, wird
die MapViewer Client-Bibliothek verwendet.
Diese basiert auf Java - daher läuft das hier beschriebene Beispiel
nicht ohne weiteres in OracleXE.
Um den MapViewer auf Ihrem System bereitzustellen und mit
Ihrer Application Express-Anwendung zu integrieren sind einige
Vorbereitungen erforderlich. Diese Vorbereitungen sind der Schwerpunkt
des heutigen Tipps.
Aufsetzen des MapViewer
Der MapViewer ist als J2EE-Applikation realisiert. Das bedeutet,
dass er einen Java Application Server als Laufzeitumgebung
benötigt - direkt in der Datenbank bzw. in Application Express
kann der MapViewer nicht laufen. Da zum produktiven Betrieb des
MapViewers (wie oben erwähnt) eine Lizenz des Oracle Application
Servers (Java Edition) erforderlich ist, ist es zu empfehlen, eben diesen
Oracle Application Server auch direkt als Laufzeitumgebung zu
nutzen.
Der MapViewer muss nicht auf dem gleichen Rechner wie die
Datenbank bzw. Application Express laufen. Die Kommunikation
zwischen MapViewer und Application Express wird über das Netzwerk
laufen, so dass Sie hier die freie Wahl haben.
-
Stellen Sie sicher, dass eine Java-Umgebung (JDK) in der Version
1.5 oder höher bereit steht. Sie ermitteln die Version, indem Sie
in der "DOS-Box" (Windows) oder in einem Terminal (Unix/Linux)
folgendes eingeben:
-
Laden Sie das MapViewer QuickStart Kit
aus dem OTN herunter.
Navigieren Sie zu Database, dort zu
Location Services, von dort
zu Software und schließlich zu
Oracle Application Server MapViewer.
Laden Sie
das QuickStart Kit herunter - Sie erhalten ein
ZIP-Archiv mit dem Namen mv10131_qs.zip.
-
Nach dem Auspacken des Archivs erhalten Sie eine für den
MapViewer fertig vorkonfigurierte Umgebung, welche Sie sofort
starten können. Bevor Sie dies tun, sollten Sie jedoch noch
den Datenbankzugriff des MapViewer
einrichten. (Wohlgemerkt: Der MapViewer
läuft im Gegensatz zu Application Express außerhalb der Datenbank, benötigt
also Informationen zum Datenbankzugriff)
Navigieren Sie dazu (ausgehend vom Verzeichnis, in welches Sie das
QuickStart Kit ausgepackt haben) in das
Verzeichnis mit der Datei
mapViewerConfig.xml und
editieren Sie diese. Im folgenden ist dies beispielhaft für
Linux dargestellt:
Bewegen Sie sich ans Ende der Datei. Dort werden sie einen
Bereich map_data_source vorfinden.
Ändern Sie ihn so um,
dass er in etwa wie folgt aussieht. Achten Sie dabei darauf,
dass Sie hier das Datenbankschema verwenden, in welches Sie
in der letzten Ausgabe die Geodaten importiert haben und
dass Ihre Definition nicht etwa mit <!--
und --> auskommentiert ist.
Achten Sie bei diesen Angaben peinlich genau auf deren Richtigkeit;
der MapViewer kann keine Karten erzeugen, wenn der Datenbankzugriff
nicht funktioniert.
Lassen Sie sich im Zweifelsfall von Ihrem Datenbankadministrator helfen.
Das führende Ausrufezeichen beim Passwort ist wichtig - dadurch
wird es beim ersten Start des MapViewers verschlüsselt.
-
Nachdem
Sie den Datenbankzugriff eingerichtet haben, speichern Sie die
Datei, welchseln zurück in das Verzeichnis
j2ee/home des
MapViewer QuickStart Kit und starten
den MapViewer dann wie folgt:
-
Testen Sie Ihren Setup schließlich, in dem Sie mit einem
Web Browser folgende URL aufrufen:
Das Ergebnis sollte dann in etwa wie folgt aussehen.
Abbildung 1: Willkommensseite des Oracle Application Server MapViewer
Der MapViewer steht nun zur Entgegennahme von Anfragen bereit.
Einrichten der MapViewer Client Bibliothek in der Datenbank
Die nun folgenden Schritte sind erforderlich, damit Ihre Application
Express-Anwendung mit dem MapViewer kommunizieren kann. Dazu muss
ein PL/SQL-Paket in die Datenbank eingespielt werden. Mit diesem
PL/SQL-Paket werden Sie später in der Lage sein, Karten vom
MapViewer anzufordern. Sie benötigen
für diese Schritte DBA-Privilegien auf Ihrer Datenbank.
-
Navigieren Sie nochmals in das Verzeichnis,
in welches Sie das MapViewer QuickStart Kit ausgepackt haen:
Loggen Sie sich nun als DBA in Ihre Datenbank ein und
starten Sie die beiden SQL-Skripte
sdomvclb.sql und
sdomvclh.sql.
-
Als nächstes laden Sie die
MapViewer Client-Bibliothek aus dem Oracle Technet herunter. Die erhalten eine
Datei sqlmvclient14.zip. Spielen sie diese mit dem loadjava-Kommando der Oracle-Datenbank als DBA wie folgt ein.
-
Nun müssen Sie noch einige Rechte vergeben: Sowohl das Schema MDSYS
als auch das Parsing Schema Ihrer Application Express-Anwendung
benötigen zur Kommunikation mit dem MapViewer entsprechende
Netzwerk-Privilegien.
Den Namen Ihres
Parsing Schemas finden Sie in den Anwendungsattributen .
Anwendungsattribute: Parsing Schema
Setzen Sie (mit DBA-Privilegien) folgende SQL-Anweisungen ab:
Nun existiert in Ihrer Datenbank das PL/SQL-Paket
SDO_MVCLIENT.
Dies
werden Sie jetzt nutzen, um eine
Karte anzufordern und in Ihre Anwendung zu integrieren.
Oracle Application Server MapViewer: Die Funktionsweise in Kürze
Der MapViewer generiert Karten aufgrund eines
Map Request. Der
MapRequest ist ein XML-Datenstrom und enthält alle Angaben, die der
MapViewer zum Erzeugen der Karte braucht wie:
- Kartenausschnitt
- Kartengröße
- Titel
- Hintergrundfarbe
- Bildformat der Karte (JPG, PNG, ...)
- Einzelne Bestandteile der Karte (Layer)
- Zeichenstil für die einzelnen Bestandteile
- ...
Sie brauchen den XML-Code des Map Request glücklicherweise nicht
selbst zu schreiben, dies übernimmt das PL/SQL Paket
SDO_MVCLIENT für Sie.
Um anhand der Geodaten eine Karte zu zeichnen, werden nun Informationen
über den Stil benötigt, in dem die Karte erstellt werden soll. So muss
man dem MapViewer mitteilen, dass er die Linienzüge, die in der
Tabelle AUTOBAHNEN enthalten sind,
bspw. als rot-gelbe Linie darstellen soll.
Zusammen mit den Geodaten haben Sie in der letzten Ausgabe auch
einige Kartendefinitionen in Ihre Datenbank importiert (diese befinden
sich übrigens in den Tabellen
USER_SDO_MAPS,
USER_SDO_THEMES und
USER_SDO_STYLES). Für den
Anfang wollen wir diese bereits fertigen Definitionen verwenden. Wie Sie eigene
Kartendefinitionen hinterlegen können, muss einer anderen
Ausgabe vorbehalten bleiben.
Eine Karte anfordern: Map Requests aus Application Express
Jetzt ist es endlich soweit: Mit dem soeben eingerichteten MapViewer
und den Geodaten, welche Sie in der
letzten Ausgabe kennengelernt haben, eine
Karte zu erzeugen in die erstellte Application
Express-Anwendung
zu integrieren. Fügen Sie der Anwendung als erstes eine neue
Seite hinzu. Nennen Sie die Seite
Karte (Abbildung 2).
Abbildung 2: Die Karte wird in eine (noch) leere Seite eingebaut
Fügen Sie dieser Seite eine neue Region vom Typ
PL/SQL dynamic Content hinzu.
Der hier hinterlegte PL/SQL-Code wird eine Karte
vom MapViewer anfordern und als PNG-Bild in die Anwendungsseite
integrieren.
Die Bedienung des MapViewer ist, wie Sie an diesem Code sehen,
denkbar einfach. Zunächst wird mit der Prozedur
createMapViewerClient
eine Intialisierung vorgenommen. Achten Sie darauf, hier Ihren
Hostnamen einzutragen. Der hintere Teil der URL
/mapviewer/omserver
ist stets gleich.
Anschließend wird der Name der Datenquelle gesetzt. Achten Sie
darauf, dass Sie die hier verwendete Datenquelle während der
Einrichtung des MapViewers (weiter oben) in der Datei
mapViewerConfig.xml
definiert haben.
-
Der MapViewer soll die Karte als PNG-Bild generieren und eine
URL auf das Bild zurückliefern (PNG_URL).
Mit dieser URL wird
abschließend ein <img src="...">
Tag erzeugt, womit die
Karte in Ihre Anwendung eingebunden ist.
-
Für dieses Beispiel verwenden Sie eine bereits vordefinierte
Karte (WORLD_SAMPLE)
-
Das Kartenzentrum liegt bei 10°
östl. Länge und 50° nördl. Breite.
Die Karte soll sich (vertikal) über
2 Breitengrade erstrecken.
-
Die Karte soll 500 mal
400 Pixel groß sein.
Das reicht als einfaches Beispiel bereits aus. Starten Sie die
Seite und betrachten
Sie das Ergebnis (Achtung:
Der allererste Aufruf kann auf Grund von
Initialisierungen einige Sekunden
dauern).
Abbildung 4: Das Ergebnis: Eine Karte in Ihrer Application Express-Anwendung
In der nächsten Ausgabe werden Sie das neue PL/SQL-Paket
SDO_MVCLIENT
näher kennenlernen. Unter anderem werden Sie erfahren, wie Sie in der
erzeugten Karte navigieren und ihr dynamisch neue Elemente hinzufügen
können.
Wenn Sie mehr über die Geodaten-Technologie erfahren möchten, finden Sie hier
weitere Informationen:
Zurück zur Community-Seite
|