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

Keine Kommentare: