Oracle SPATIAL WMS Oracle Maps Fischer-Wasels · PDF filespecifically the WMS 1.1.1...

Post on 03-Feb-2018

252 views 0 download

Transcript of Oracle SPATIAL WMS Oracle Maps Fischer-Wasels · PDF filespecifically the WMS 1.1.1...

Bernhard Fischer-WaselsLeitender SystemberaterOracle Deutschland GmbHHamburg

Spatial: WMS Web Map Services - Oracle Maps

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 registeredand superimposed map-like views of information that come simultaneously from multiple remoteand 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 themto 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/

G.1 Example 1: One Server, One Layer, Default Style

The following hypothetical URL requests the US National Oceanographic and Atmospheric Administrationhurricane 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--toproduce 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 twoseparate Map Servers.

WMS Web Map Services - Beispiele

WMS Web Map Services - Beispiele

Oracle Application Express mit 8 Layern von 2 Web Map Servern

WMS Funktionalität

• GetCapabilitiesGetCapabilitiesGetCapabilitiesGetCapabilities... liefert Informationen über die Karten, die ein Server liefern kann

• GetMapGetMapGetMapGetMap... wie bekommt man die Karte und welche Art Bild und andere Attribute sind verfügbar

• GetFeatureInfo GetFeatureInfo GetFeatureInfo GetFeatureInfo (optional) (optional) (optional) (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 ?

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

WMS Web Map Services - Integration mit Oracle

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

Oracle® Application Server MapViewer User’s Guide Release 10.1.3.1 August 2006

Wo

d oku

men

ti ert

?

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

WMS Web Map Services - Integration mit Oracle

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

Oracle® Application Server MapViewer User’s Guide Release 10.1.3.1 August 2006

Wo

d oku

men

ti ert

?

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 Symbolein der Datenbank

• Thematisches “mappen”

• Erstellt: PNG, GIF, JPEG, SVG

• Map cache

WMS Web Map Services - Integration mit Oracle

WMS Web Map Services - Integration mit Oracle

Hier: Oracle Application Express

Auch: JDeveloper (JSP; Servlet)

Das WMS Interface ist implementiert als Servlet Filter. Die „Requests“ GetMap, GetFeatureInfo,

or GetCapabilities werden für den OracleAS MapViewer in XML Requestsumgesetzt.

JDBC

MapViewer “Klassische" Architektur

Datenbank

Oracle

Application Server

Client(browser, servlet, JSP, PL/SQL)

Application

XML/HTTP

SpatialTables

Map

Definitions

Java API

Mapbuilder

Map Rendering Engine

external map providersWMS

servlet HTTP

(get map tiles)

JDBC

MapViewer "AJAX" Architektur

Map Cache Server

Datenbank

Oracle

Application Server

Client(browser)

Application

XML/HTTP

SpatialTables

Map

Definitions

JavaScript Map API

Mapbuilder

FOI Server

Map Rendering Engine

Map Cache

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

“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 !!

Oracle Maps: die Antwort auf Industrie Trends

• 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

Was ist Oracle Maps?

Map automatically moves to display the data at that location.

User floats mouse over icon

Oracle Maps : Beispiel

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

browser serveruser browser serveruser

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 10g DB(Spatial)

Oracle Maps client

external map providers

Oracle AS

MapViewer

map tiles cacheserver (mcs)

Oracle Maps server-side

FOI server

renderingengine

AJAX

adapter HTTP

(tiles and FOI data)

(get map tiles)

Oracle Maps : Architektur

Die Client Seite

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”.

Das Entwickeln von Oracle Maps Anwendungen erfordert nur etwas Basiswissen im Bereich Standard HTML und JavaScript.

Man braucht noch nicht einmal AJAX zu kennen; wenngleich die “viewing library” im Wesentlichen auf AJAX basiert.

Oracle Maps Client Seite : Anwendungsentwicklung

Oracle Maps Client Seite: einfache HTML Seite mit einer Karte

<html><head><script language="Javascript" <script language="Javascript" <script language="Javascript" <script language="Javascript" srcsrcsrcsrc="="="="jslibjslibjslibjslib////loadscriptloadscriptloadscriptloadscript....jsjsjsjs"></script>"></script>"></script>"></script><script language=JavaScript>

var baseURL = "http://"+document.location.host+"/mapviewer";function display_map() function display_map() function display_map() function display_map() {{{{

varvarvarvar mapviewmapviewmapviewmapview = new = new = new = new MapViewMapViewMapViewMapView(document.(document.(document.(document.getElementByIdgetElementByIdgetElementByIdgetElementById("map"), ("map"), ("map"), ("map"), baseURLbaseURLbaseURLbaseURL););););mapviewmapviewmapviewmapview....addBaseMapLayeraddBaseMapLayeraddBaseMapLayeraddBaseMapLayer(new (new (new (new BaseMapBaseMapBaseMapBaseMap("("("("mvdemomvdemomvdemomvdemo.demo_map"));.demo_map"));.demo_map"));.demo_map"));mapview.setCenter(mapview.setCenter(mapview.setCenter(mapview.setCenter(----122.45, 37.75);122.45, 37.75);122.45, 37.75);122.45, 37.75);mapview.setZoomLevel(5);mapview.setZoomLevel(5);mapview.setZoomLevel(5);mapview.setZoomLevel(5);varvarvarvar foiLayerfoiLayerfoiLayerfoiLayer = new = new = new = new ThemeBasedFOIThemeBasedFOIThemeBasedFOIThemeBasedFOI ('customers', '('customers', '('customers', '('customers', 'mvdemomvdemomvdemomvdemo.customers') ; .customers') ; .customers') ; .customers') ; mapviewmapviewmapviewmapview....addThemeBasedFOIaddThemeBasedFOIaddThemeBasedFOIaddThemeBasedFOI ((((foiLayerfoiLayerfoiLayerfoiLayer););););mapviewmapviewmapviewmapview....addNavigationPaneladdNavigationPaneladdNavigationPaneladdNavigationPanel("east"); ("east"); ("east"); ("east"); mapviewmapviewmapviewmapview.display();.display();.display();.display();

}}}}</script></head><body onloadonloadonloadonload= JavaScript:display_map()= JavaScript:display_map()= JavaScript:display_map()= JavaScript:display_map() ><h2>A Simple Web Mapping Application</h2><div id="map" style="left:10; top:60;width: 600px; height: 500px<div id="map" style="left:10; top:60;width: 600px; height: 500px<div id="map" style="left:10; top:60;width: 600px; height: 500px<div id="map" style="left:10; top:60;width: 600px; height: 500px"></div>"></div>"></div>"></div></body></html>

Laden der Oracle Maps client viewing lib

map initialization function

Wo die Karte auf der Seite erscheint

Laden der map initialization function

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 anderenMapViewer MARKER styles angezeigt werden.

Oracle Maps Client Seite: Map Layers

Statische Karten Teile (tiles=Fliesen) als Images/Bilder – serverseitig vorgeneriert für festgesetzte Zoom-Levels.

Anklickbare Features Of Interest (FOI) kommend von einem MapViewer Theme.

Dynamische Features hinzufügbar über den “client application code”

Info-tip Windows

z.B. copyright, Navigation Bar und anderer ‘fixed’ Content.

http://stadb33.us.oracle.com:8888/mapviewer/mcserver?request=gettile&mapcache=mvdemo.demo_map&format=PNG&zoomlevel=3&mx=4&my=12

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/foi?request=getfoi&version=1.0&theme=mvdemo.FIELD_OFFICE&bbox=-115.3948:28.4266:105.1281:30.6266&width=600&height=400

Ein typischer Request für einen FOI Request basierend auf einem MapViewer Theme:

Oracle Maps Client – Server Kommunikation

Die Server Seite

Oracle Maps Client – Server Kommunikation

MapViewer

map tiles cacheserver (mcs)

Oracle Maps Server-Seite

FOI server

renderingengine

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

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 : Server Seite

Der Map Cache Server

Oracle Maps Client – Server Kommunikation

Map Cache Server

Map Cache Instance 1

Map Cache Instance 2

Map Cache Instance 3

map tiles

Vereinfachte Darstellung der Map Cache Server Architektur:

Map source 1

Map source 2

Map source 3

Oracle Maps : Map Cache Server : Architektur

Oracle Maps : Map Cache Server

Workflow: Handling eines“Map-Requests”:

Webbasierte “Admin Console”für das Verwalten derMap Cache InstancesAls Teil des Mapviewers:

Oracle Maps: Map Cache Server : Administration

Features of Interest (FOI) Server

Oracle Maps Client – Server Kommunikation

• 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:

Oracle Maps: FOI Server

Probieren Sie es aus !!

Oracle Technology Networkhttp://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 GmbHKühnehöfe 522761 HamburgGermany

Phone: +49 40 89091 128Fax: +49 40 89091 250Mobile: +49 177 5949 128e-Mail: bernhard.fischer-wasels@oracle.comAPEX (HTMLDB) Blog in Deutsch: http://htmldb-de.blogspot.com