Donnerstag, 3. Januar 2008

Detail Maps im Userdefined InfoWindow von Oracle Maps (2)

Im Teil 2 über Userdefined InfoWindows möchte ich meinen Lösungsvorschlag zu Detail Maps, auch Nested Maps genannt, vorstellen (Demo-Video) :



In der 'Master Map', wird wie im Teil 1 beschrieben, die Mouseclickposition in dem IFRAME - InfoWindow an die Detail Map übergeben:



In der Detail Map werden die Parameter aus der URL separiert und der übergebene Masterpoint als Home Marker gesetzt:



In der Detail Map kann in den speziellen FOI's navigiert werden: Natürlich läßt sich auch das Userdefined InfoWindow aus Teil 1 aufrufen ..



In diesem Demo wird ebenfalls der Zugriff auf die PL/SQL-DAD 'mvdemo' vorausgesetzt, die Programme stehen hier zum Download bereit.
Die kleine Serie soll zeigen, dass man mit geringem Aufwand (JavaScript und PL/SQL) Userdefined InfoWindows recht effektvoll mit IFRAMES einsetzen kann.

Viel Erfolg,
Friedhold

Mittwoch, 2. Januar 2008

Userdefined InfoWindows mit IFRAME in Oracle Maps (1)

In Oracle Maps können Info Windows entsprechender 'Features of Interest' - FOI's entweder mittels Mapbuilder statisch oder per XML-RPC im clientseitigen JavaScript dynamisch zugeordnet werden. Benötigt man bei mehrfach überdeckenden FOI-Layern jedoch Informationen, die sich z.B. auf die Basemap beziehen, kann der nachfolgend dargestellte Lösungsvorschlag (Demo-Video) weiterhelfen.

Voraussetzung zum Nachvollziehen sind die Oracle Maps Demos und der zuvor eingerichtete PL/SQL-DAD Zugriff auf das Schema 'mvdemo'.

Hierfür habe ich das unter:
%OC4J_HOME%\j2ee\home\applications\mapviewer\web\fsmc\tutorial\samples befindliche Demo: themeBasedFOIVisible.html in: themeBasedFOIVisibleIframe.html kopiert und folgende Änderungen eingefügt:

1.) Aktivierung des rechten Mouseclicks in der Hauptfunktion:


..
mapview.addEventListener("mouse_right_click", mouseclickright);
..

2.) Rechte Mouseclick-Function inkl. IFRAME - Aufbau:



In der JavaSript-Function wird die x/y-Location des rechten Mouseclicks an die PL/SQL-DAD Procedure mvdemo.show_info(p_x, p_y) übergeben.
Dort wird zunächst anhand der Punktkoordinaten die zugehörige Geometry gesucht -

Function: pkg_geo_mvdemo.fnc_get_fip:



Aus der Tabelle COUNTIES wird die Geometry-ID aus FIPSSTCO ermittelt und es werden in der Procedure show_county ausserdem falsche Punktkoordinaten erkannt.

- Ungültige Punktkoordinate - im Pazifik gibt es natürlich kein County :



- So sieht das Userdefined InfoWindow mit IFRAME letztendlich aus:



Die Programme stehen zum Download bereit.

Viel Spaß dabei,
Friedhold

Einrichtung eines PL/SQL - DAD für das Schema mvdemo

Seit der Einführung der Oracle HTMLDB u. APEX wird die Web-Konfigurationsseite zum Einrichten anwenderdefinierter PL/SQL-DAD's nicht mehr angeboten, so dass die hier beschriebene, manuelle Einrichtung notwendig ist. Als Datenbankschema verwenden wir das 'mvdemo', da wir uns in Folgebeiträgen hierauf beziehen werden.

Im Verzeichnis %APEX_HOME%\Apache\modplsql\conf wird die DAD-Definition in die dads.conf eingetragen:


Danach wird der Apache neu gestartet und ein kleine Test-Procedure im Schema 'mvdemo' gespeichert:


Entsprechend der 'Location' in der DAD-Definition ist der URL-Path vorgegeben und wir testen den PL/SQL-DAD Zugriff:



Der Konfigurationseintrag und das Testprogramm sind hier zu finden.

Friedhold