Spatial: WMS Web Map Services - Oracle Maps Bernhard Fischer-Wasels Leitender Systemberater Oracle Deutschland GmbH Hamburg Konferenz - Mannheim, 16. November 2006
Agenda WMS Web Map Services Grundfunktionalität Integration mit Oracle Oracle Maps Architektur Client side: AJAX Server Side: Map cache und FOI server Mapbuilder PL/SQL API Zusammenfassung
WMS Web Map Services...rendering of data delivered using the Open GIS Consortium (OGC) Web Map Service (WMS) protocol, specifically the WMS 1.1.1 implementation specification. The OpenGIS Web Map Service (WMS) Implementation Specification provides three operations (GetCapabilities, GetMap, and GetFeatureInfo) in support of the creation and display of registered and superimposed map-like views of information that come simultaneously from multiple remote and heterogeneous sources. When client and server software implements WMS, any client can access maps from any server. Any client can combine maps (overlay them like clear acetate sheets) from one or more servers. Any client can query information from a map provided by any server. While programmers need to write code to implement the specifications, end users can take advantage of products that include them to publish and access geospatial information. Software buyers can choose the best solution for their needs and not worry about if it will work with other solutions; if they all implement the same standard, WMS, they will all work together. Quelle: OGC - Open GIS Consortium (OGC) http://www.opengeospatial.org/
WMS Web Map Services - Beispiele G.1 Example 1: One Server, One Layer, Default Style The following hypothetical URL requests the US National Oceanographic and Atmospheric Administration hurricane image shown in Figure G.1: http://a-map-co.com/mapserver.cgi?version=1.3.0&request=getmap&crs=crs:84&bbox=-97.105,24.913,-78.794,36.358& WIDTH=560&HEIGHT=350&LAYERS=AVHRR-09-27&STYLES=&FORMAT=image/png&EXCEPTIONS=INIMAGE
WMS Web Map Services - Beispiele G.2 Example 2: One Server, Three Layers, Named Styles The following hypothetical URL requests three layers--built-up areas, coastlines, and political boundaries--to produce the map shown in Figure G.2. A transparent background has been requested for the map. http://b-maps.com/map.cgi?version=1.3.0&request=getmap&crs=crs:84&bbox=-97.105,24.913,-78.794,36.358& WIDTH=560&HEIGHT=350&LAYERS=BUILTUPA_1M,COASTL_1M,POLBNDL_1M&STYLES=0XFF8080,0X101040,BLACK &FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&EXCEPTIONS=INIMAGE
WMS Web Map Services - Beispiele G.3 Example 3: Two Servers, Four Layers Figure G.3 shows the result of overlaying Figure G.1 on Figure G.2 to produce a composite map from two separate Map Servers.
WMS Web Map Services - Beispiele Oracle Application Express mit 8 Layern von 2 Web Map Servern
WMS Funktionalität GetCapabilities... liefert Informationen über die Karten, die ein Server liefern kann GetMap... wie bekommt man die Karte und welche Art Bild und andere Attribute sind verfügbar GetFeatureInfo (optional)... wie bekommt man zusätzliche Infos wie Werte oder Attribute einer Location
WMS Funktionalität - GetCapabilities
WMS Funktionalität - GetCapabilities
WMS Funktionalität - GetCapabilities
WMS Funktionalität - GetMap
WMS Funktionalität - GetMap http://wms1.ccgis.de/cgi-bin/mapserv?map=/data/umn/germany/germany.map &VERSION=1.1.1 &REQUEST=GetMap &LAYERS=Bundeslaender,Bundeslaendernamen,Staedte, Topologie &SRS=EPSG:4326 &BBOX=5.86629,47.2736,15.0486,55.058 &FORMAT=image/png &HEIGHT=400 &WIDTH=500 http://wms1.ccgis.de/cgi-bin/mapserv?map=/data/umn/germany/germany.map&request=getmap&&version=1.1.1&service=wms&layers=bundeslaender, Bundeslaendernamen,Staedte&SRS=EPSG:4326&BBOX=5.86629,47.2736,15.0486,55.058&FORMAT=image/png&HEIGHT=400&WIDTH=500
WMS Funktionalität - GetFeatureInfo (optional) Bei Layer queryable OGC: optional Problem: Mehrere Layer Wen meint der User Beim Klick auf die Karte?
WMS Web Map Services - Integration mit Oracle Wo dokumentiert? Oracle Application Server MapViewer User s Guide Release 10.1.3.1 August 2006 D OGC WMS Support in OracleAS MapViewer D.1 Setting Up the WMS Interface for OracleAS MapViewer... D-1 D.1.1 Required Files... D-1 D.1.2 Data Source Named wms... D-2 D.1.3 SDO to EPSG SRID Mapping File... D-2 D.2 WMS Specification and Corresponding OracleAS MapViewer Concepts... D-2 D.2.1 Supported GetMap Request Parameters... D-3 D.2.1.1 BASEMAP Parameter (OracleAS MapViewer-Only)... D-3 D.2.1.2 BBOX Parameter... D-3 D.2.1.3 BGCOLOR Parameter... D-4 D.2.1.4 DATASOURCE Parameter (OracleAS MapViewer-Only)... D-4 D.2.1.5 DYNAMIC_STYLES Parameter (OracleAS MapViewer-Only)... D-4 D.2.1.6 EXCEPTIONS Parameter... D-4 D.2.1.7 FORMAT Parameter... D-4 D.2.1.8 HEIGHT Parameter... D-4 D.2.1.9 LAYERS Parameter... D-4 D.2.1.10 LEGEND_REQUEST Parameter (OracleAS MapViewer-Only)... D-5 D.2.1.11 MVTHEMES Parameter (OracleAS MapViewer-Only)... D-5 D.2.1.12 REQUEST Parameter... D-5 D.2.1.13 SERVICE Parameter... D-5 D.2.1.14 SRS Parameter... D-5 D.2.1.15 STYLES Parameter... D-5 D.2.1.16 TRANSPARENT Parameter... D-5 D.2.1.17 VERSION Parameter... D-5 D.2.1.18 WIDTH Parameter... D-5 Oracle Application Server MapViewer User s Guide Release 10.1.3.1 B14036-02 August 2006 Describes how to use OracleAS MapViewer, a tool that renders maps showing different kinds of spatial data. Beta Draft The information in this guide is provided for review purposes only. All information is subject to change. This draft produced on: August 23, 2006 10:58 am
WMS Web Map Services - Integration mit Oracle Wo dokumentiert? Oracle Application Server MapViewer User s Guide Release 10.1.3.1 August 2006 D.2.2 Supported GetCapabilities Request and Response Features... D-5 D.2.3 Supported GetFeatureInfo Request and Response Features... D-8 D.2.3.1 GetMap Parameter Subset for GetFeatureInfo Requests... D-9 D.2.3.2 EXCEPTIONS Parameter... D-9 D.2.3.3 FEATURE_COUNT Parameter... D-9 D.2.3.4 INFO_FORMAT Parameter... D-9 D.2.3.5 QUERY_LAYERS Parameter... D-9 D.2.3.6 QUERY_TYPE Parameter (OracleAS MapViewer-Only)... D-9 D.2.3.7 RADIUS Parameter (OracleAS MapViewer-Only)... D-10 D.2.3.8 UNIT Parameter (OracleAS MapViewer-Only)... D-10 D.2.3.9 X and Y Parameters... D-10 D.2.3.10 Specifying Attributes to Be Queried for a GetFeatureInfo Request... D-10 D.3 Adding a WMS Map Theme... D-11 D.3.1 XML API for Adding a WMS Map Theme... D-11 D.3.2 JavaBean-Based API for Adding a WMS Map Theme... D-13 Oracle Application Server MapViewer User s Guide Release 10.1.3.1 B14036-02 August 2006 Describes how to use OracleAS MapViewer, a tool that renders maps showing different kinds of spatial data. Beta Draft The information in this guide is provided for review purposes only. All information is subject to change. This draft produced on: August 23, 2006 10:58 am
WMS Web Map Services - Integration mit Oracle Oracle Application Server MapViewer Bestandteil aller Versionen des Oracle Application Servers XML, Java und JSP APIs Jetzt auch: AJAX API Map Definition Tool Map Definitions und Symbole in der Datenbank Thematisches mappen Erstellt: PNG, GIF, JPEG, SVG Map cache
WMS Web Map Services - Integration mit Oracle Das WMS Interface ist implementiert als Servlet Filter. Die Requests GetMap, GetFeatureInfo, or GetCapabilities werden für den OracleAS MapViewer in XML Requests umgesetzt. Hier: Oracle Application Express Auch: JDeveloper (JSP; Servlet)
MapViewer Klassische" Architektur Client (browser, servlet, JSP, PL/SQL) Java API Application XML/HTTP Oracle Application Server Map Rendering Engine JDBC servlet HTTP (get map tiles) external map providers WMS Datenbank Spatial Tables Map Definitions Mapbuilder
MapViewer "AJAX" Architektur Client (browser) Application JavaScript Map API XML/HTTP Oracle Application Server Map Cache Map Cache Server FOI Server Map Rendering Engine JDBC Datenbank Spatial Tables Map Definitions Mapbuilder
Agenda WMS Web Map Services Grundfunktionalität Integration mit Oracle Oracle Maps Architektur Client side: AJAX Server Side: Map cache und FOI server Mapbuilder PL/SQL API Zusammenfassung
Oracle Maps: die Antwort auf Industrie Trends Key Features der neuen Generation von online Mapping services: Schnelle und unkomplizierte Navigation in der Karte Kein web page refresh bei Navigation und Zoomen i.d. Karte Interaktive, clickable point-of-interest Objekte mit Info-Tip Easy-to-use JavaScript basiertes Karten API Einfaches Hinzufügen von lokalen Daten (points data only) zur Karte Redlining Schnell, ohne nervige Pages-Refreshes AJAX technology, starke Rich Client Interaktionen Oracle Maps kann das alles und mehr!!
Was ist Oracle Maps? Ein Key Feature des OracleAS MapViewer 11g AJAX basierter Mapping Client; starke Funktionalität; flexibles Setup Cached, pre-generated map tiles von Geo-Spatial Daten Ad hoc query basiert, interaktive Features of Interest (FOI) in der Karte Voll supportetes Oracle Product (Oracle Application Server) Nahtlos integriert mit Oracle Spatial Basiert auf Oracle Technologie; keine Drittanbieter Komponenten erforderlich
Oracle Maps : Beispiel User floats mouse over icon Map automatically moves to display the data at that location.
Asynchronous JavaScript und XML (AJAX) Klassischer Browser Cycle: Server sendet Ganze Seite wird empfangen "AJAX" Browser Cycle: Seitenteile fragen beim Server an Empfangen der Antwort Nur der Seitenteil (page section) wird aktualisiert user browser server user browser server
Oracle Maps : Architektur Oracle Maps besteht aus Komponenten auf der Client- und Server Seite Client Seite: JavaScript viewing library (sogen. FSMC - Free Scrolling Map Client ) und ein public API Befindet sich im Browser Setzt verschiedene Inhalte in eine Karte für den End User Kommuniziert mit der Server-Seite über AJAX Calls Server Seite Map Cache Server verwaltet vor-generierte Base Map Tiles Feature of Interest (FOI) Server kreiert interaktive FOI Daten für den Client Alles basierend auf der MapViewer rendering engine
Oracle Maps : Architektur Oracle Maps client AJAX (tiles and FOI data) MapViewer Oracle AS rendering engine map tiles cache server (mcs) FOI server adapter Oracle Maps server-side HTTP (get map tiles) external map providers Oracle 10g DB (Spatial)
Die Client Seite
Oracle Maps Client Seite : Anwendungsentwicklung Das Entwickeln von Oracle Maps Anwendungen erfordert nur etwas Basiswissen im Bereich Standard HTML und JavaScript. Wie stelle ich eine Karte dar mit Oracle Maps? Hier die Schritte: 1. HTML Seite anlegen mit einem Editor. 2. Laden der Oracle Maps client viewing library im Webseiten HEAD element. 3. Ein HTML DIV Element auf der Seite hinzufügen; hier wird die Karte angezeigt. 4. Ein paar Zeilen JavaScript zum Setup der Karte (Center und Inhalt). 5. Öffnen der Webseite mit einem Browser! Man kann die Karte bewegen, mouse over Funktionalität auf Attributen und Info-Tipps, etc, out of the box. Man braucht noch nicht einmal AJAX zu kennen; wenngleich die viewing library im Wesentlichen auf AJAX basiert.
Oracle Maps Client Seite: einfache HTML Seite mit einer Karte <html> <head> <script language="javascript" src=" ="jslib jslib/loadscript loadscript.js js"></script> Laden der Oracle Maps client viewing lib <script language=javascript> var baseurl = "http://"+document.location.host+"/mapviewer"; function display_map() map initialization function { var mapview = new MapView(document. (document.getelementbyid getelementbyid("map"), baseurl); mapview.addbasemaplayer addbasemaplayer(new BaseMap(" ("mvdemo mvdemo.demo_map")); mapview.setcenter(-122.45, 37.75); mapview.setzoomlevel(5); var foilayer = new ThemeBasedFOI ('customers', 'mvdemo' mvdemo.customers') ; mapview.addthemebasedfoi addthemebasedfoi (foilayer foilayer); mapview.addnavigationpanel addnavigationpanel("east"); mapview.display(); } </script> </head> <body onload= JavaScript:display_map() > Laden der map initialization function <h2>a Simple Web Mapping Application</h2> <div id="map" style="left:10; top:60;width: 600px; height: 500px"></div> Wo die Karte auf der Seite erscheint </body></html>
Oracle Maps Client Seite : Die Karte Das Ergebnis: Die Karte kann bewegt werden Die roten Punkte sind Features of Interests (FOI). Beim Anklicken erscheint ein Info-tip Window Die Daten im Info-Tip Window kommen von einem ad-hoc query Der FOI kann auch in anderen MapViewer MARKER styles angezeigt werden.
Oracle Maps Client Seite: Map Layers z.b. copyright, Navigation Bar und anderer fixed Content. Info-tip Windows Dynamische Features hinzufügbar über den client application code Anklickbare Features Of Interest (FOI) kommend von einem MapViewer Theme. Statische Karten Teile (tiles=fliesen) als Images/Bilder serverseitig vorgeneriert für festgesetzte Zoom- Levels.
Oracle Maps Client Server Kommunikation Zum Anzeigen einer Karte fordert der Client viele Karten-Teile und Attribute (FOI)vom Map Server an. Dies sind alles HTTP AJAX Requests. Ein typischer Request für einen einzelnen Kartenteil. http://stadb33.us.oracle.com:8888/mapviewer/mcserver?request=gettile&mapcache =mvdemo.demo_map&format=png&zoomlevel=3&mx=4&my=12 Ein typischer Request für einen FOI Request basierend auf einem MapViewer Theme: http://stadb33.us.oracle.com:8888/mapviewer/foi?request=getfoi& version=1.0&theme=mvdemo.field_office&bbox=- 115.3948:28.4266:105.1281:30.6266&width=600&height=400
Oracle Maps Client Server Kommunikation Die Server Seite
Oracle Maps : Server Seite Die Hauptkomponenten der Server Seite von Oracle Maps sind: Map Cache Server: managed Cache Instances mit vor-generierten map image tiles FOI server: Query und Generieruntg von FOI Data Objects für die Clientseitige Karte MapViewer rendering engine map tiles cache server (mcs) FOI server Oracle Maps Server-Seite Beide Komponenten sind als Servlet implementiert. Sie bestehen neben dem Haupt- MAPVIEWER Servlet - sind davon aber auch abhhängig bzw. ergänzen sich. Der mapviewer.ear File enthält alle diese Servlets.
Oracle Maps Client Server Kommunikation Der Map Cache Server
Oracle Maps : Map Cache Server : Architektur Vereinfachte Darstellung der Map Cache Server Architektur: Map Cache Server Map source 1 Map Cache Instance 1 Map source 2 Map Cache Instance 2 Map source 3 Map Cache Instance 3 map tiles
Oracle Maps : Map Cache Server Workflow: Handling eines Map-Requests :
Oracle Maps: Map Cache Server : Administration Webbasierte Admin Console für das Verwalten der Map Cache Instances Als Teil des Mapviewers:
Oracle Maps Client Server Kommunikation Features of Interest (FOI) Server
Oracle Maps: FOI Server Ein existierendes Geometry Theme kann als FOI Layer genutzt werden Der FOI Server benötigt keine Konfiguration; er setzt auf dem MapViewer auf, ein Theme zu prozessieren: die Daten werden dann so ausgegeben, dass die client viewing library sie anziegen kann Wenn man mittels des MapBuilders ein Theme definiert, kann man sogen. info columns anlegen dies werden dann als FOI info-tip Windows ausgegeben:
Probieren Sie es aus!! Oracle Technology Network http://technet.oracle.com/products/spatial Und sagen Sie uns, wie es Ihnen gefällt!!
Bernhard Fischer-Wasels Leitender Systemberater STCC Server Technology Competence Center Nord, Hamburg ORACLE Deutschland GmbH Kühnehöfe 5 22761 Hamburg Germany Phone: +49 40 89091 128 Fax: +49 40 89091 250 Mobile: +49 177 5949 128 e-mail: bernhard.fischer-wasels@oracle.com APEX (HTMLDB) Blog in Deutsch: http://htmldb-de.blogspot.com