Spatial: WMS Web Map Services - Oracle Maps

Werbung
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
Oracle® Application
Server
MapViewer User’s Guide
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
Release 10.1.3.1
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
The information in this guide
is provided for review
purposes only. All
information is
B14036-02
August 2006
Describes how to use
OracleAS MapViewer, a tool
that renders maps showing
different kinds of spatial
data.
Beta Draft
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
Application
Client
(browser, servlet, JSP, PL/SQL)
Java API
XML/HTTP
Oracle
Application
Server
Map Rendering Engine
servlet
HTTP
(get map tiles)
JDBC
Datenbank
Spatial
Tables
Map
Definitions
Mapbuilder
external map providers
WMS
MapViewer "AJAX" Architektur
Application
Client
(browser)
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:
•
•
•
user
browser
server
user
Seitenteile fragen beim Server an
Empfangen der Antwort
Nur der Seitenteil (page section)
wird aktualisiert
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
FOI server
rendering
engine
map tiles cache
server (mcs)
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.
2.
3.
4.
5.
HTML Seite anlegen mit einem Editor.
Laden der “Oracle Maps’ client viewing library” im Webseiten HEAD element.
Ein HTML DIV Element auf der Seite hinzufügen; hier wird die Karte angezeigt.
Ein paar Zeilen JavaScript zum Setup der Karte (Center und Inhalt).
Ö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>
Laden der Oracle Maps client viewing lib
<script language="Javascript" src="
src="jslib
="jslib/
jslib/loadscript.
loadscript.js"></script>
js"></script>
<script language=JavaScript>
var baseURL = "http://"+document.location.host+"/mapviewer";
function display_map()
map initialization function
{
var mapview = new MapView(document.
MapView(document.getElementById
baseURL);
(document.getElementById("map"),
getElementById("map"), baseURL);
mapview.
mapview.addBaseMapLayer(new
addBaseMapLayer(new BaseMap("
BaseMap("mvdemo
("mvdemo.demo_map"));
mvdemo.demo_map"));
mapview.setCenter(mapview.setCenter(-122.45, 37.75);
mapview.setZoomLevel(5);
var foiLayer = new ThemeBasedFOI ('customers', 'mvdemo
'mvdemo.customers')
mvdemo.customers') ;
mapview.
mapview.addThemeBasedFOI (foiLayer);
foiLayer);
mapview.
mapview.addNavigationPanel("east");
addNavigationPanel("east");
mapview.display();
mapview.display();
}
</script>
</head>
Laden der map initialization function
<body onload=
onload= JavaScript:display_map() >
<h2>A Simple Web Mapping Application</h2>
<div id="map" style="left:10; top:60;width: 600px; height: 500px"></div>
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 ZoomLevels.
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
FOI server
rendering
engine
map tiles cache
server (mcs)
Oracle Maps Server-Seite
Beide Komponenten sind als Servlet implementiert. Sie bestehen neben dem HauptMAPVIEWER 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: [email protected]
APEX (HTMLDB) Blog in Deutsch:
http://htmldb-de.blogspot.com
Herunterladen