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:
Kommentar veröffentlichen