6 Mapviewer. Points couverts Architecture Installation et configuration Définition de cartes...

Post on 03-Apr-2015

114 views 2 download

Transcript of 6 Mapviewer. Points couverts Architecture Installation et configuration Définition de cartes...

<Insert Picture Here>

6

Mapviewer

Points couverts

ArchitectureInstallation et configurationDéfinition de cartesMapBuilderLa console MapviewerExemple d’utilisationOracle Maps

JDBC

MapViewer Architecture

Database

Oracle Application Server

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

Application

XML/HTTP

SpatialTables

Map Definitions

Java API

Mapbuilder

Map Rendering Engine

Requêtes et réponses

Une requête spécifie:

• Le contenu de la carte• Carte de base• Thèmes Statiques • Thèmes Dynamiques • Formes Dynamiques

• La position de la carte• Centre et taille

• Le format du résultat • Type d'image • Dimensions en pixels

La réponse contient:

• L'image proprement dite Ou• L' URL vers l'image ainsi que

le MBR de la carte

Formats:• GIF, PNG, SVG, JPEG

MapViewer

Mapping Client

Oracle Spatial

Contenu d'une installation MapViewer

La servlet MapviewerL'outil de définition de cartesDes styles de baseDes exemples d'applications (JSP)Une IHM d’administration (HTML)

Sample JavaServer Page

MapViewer

Application Server JDBCHTTP/XML

Oracle Spatial

MappingMetadata

Mapbuilder

Installation de MapViewer

• MapViewer n'est pas déployé automatiquement avec le serveur d'application

• Le kit est fourni sous forme d'un fichier "EAR" (J2EE Enterprise Archive) standard: mapviewer.ear de 2.3 MB

• Installation au moyen des outils de déploiement standard du serveur d'application.

• Peut s'installer dans le moteur J2EE du serveur d'application (Oracle Components for J2EE - OC4J)

Démarrage de Mapviewer

• Automatiquement lors du démarrage du serveur d'application.

java -jar oc4j.jar

05/03/06 18:56:59 Oracle Containers for J2EE 10g (10.1.3.0.0) - Developer Preview 3 initialized

05/03/06 18:56:55 Sun Mar 06 18:56:55 CET 2005 INFO [oracle.lbs.mapserver.oms, ,#Thread-9] *** Oracle MapViewer started. ***

Définition des Cartes

• Les définitions sont dans la baseUSER_SDO_MAPS

USER_SDO_THEMES

USER_SDO_STYLES

• Définition au moyen de l'outil fourni (Mapbuilder)

MapMetadata

Définition des Cartes

• STYLE• Couleurs, styles de lignes, symboles, textes• Style avancés pour thématiques

• THEME• Associe un ou plusieurs styles avec une table spatiale• Style graphique, et style des étiquettes• Correspond à une couche dans la carte

• MAP• Groupement de thèmes• Spécifie l'ordre des thèmes et leur visibilité selon l'échelle• Les cartes peuvent partager les thèmes

USER_SDO_STYLES

• Chaque style a un nom unique (par utilisateur) • Type de style: COLOR, MARKER, TEXT, LINE, ADVANCED• Définition codée en XML• Aussi formes géométriques et bitmaps (pour les symboles)• Quelques styles de base fournis dans l'installation de Mapviewer

(fichier DefaultStyles.sql)

SQL> describe user_sdo_stylesName Type---------------------- ------------------NAME VARCHAR2(32)TYPE VARCHAR2(32)DESCRIPTION VARCHAR2(4000)DEFINITION CLOBIMAGE BLOBGEOMETRY MDSYS.SDO_GEOMETRY

USER_SDO_THEMES

• Chaque thème a un nom unique (par utilisateur)• Un thème est associé à une table et une colonne géométrique• Règles de représentation en XML

• Se réfèrent aux styles définis par leur nom

SQL> describe user_sdo_themes Name Type ------------------ --------------- NAME VARCHAR2(32) DESCRIPTION VARCHAR2(4000) BASE_TABLE VARCHAR2(32) GEOMETRY_COLUMN VARCHAR2(2048) STYLING_RULES CLOB

USER_SDO_MAPS

• Chaque carte a un nom unique (par utilisateur)• Liste des thèmes utilisés• Codés en XML

SQL> describe user_sdo_maps Name Type ------------------- ------------------- NAME VARCHAR2(32) DESCRIPTION VARCHAR2(4000) DEFINITION CLOB

Utilisation de MapBuilder

Styles

Themes

Cartes

Console MapViewer

Exemple d’utilisation de MapViewer

Anatomie d'une requéte XML

<?xml version="1.0" standalone="yes"?>

<map_request

datasource="spatial10g" basemap="US_BASE_MAP"

format="PNG_STREAM" width="480" height="400">

<center size="12">

<geoFeature>

<geometricProperty> <Point>

<coordinates>-120.0,39.0</coordinates></Point>

</geometricProperty>

</geoFeature>

</center>

<themes>

<theme name="PARKS.US_PARKS" />

<theme name="INTERSTATES.US_INTERSTATES" />

</themes>

</map_request>

Data source et carte

Format du résultat

Centre et taille de la carte

Thémes additionnels

Le résultat …

Une requête en Java

// Setup map request

mv = new MapViewer(mapViewerURL);

mv.setDataSourceName(dataSource);

mv.setBaseMapName(baseMap);

mv.setImageFormat(MapViewer.FORMAT_PNG_URL);

mv.setDeviceSize(new Dimension(mapWidth, mapHeight));

mv.setCenterAndSize(cx, cy, mapSize);

// Send map request

mv.run();

// Get URL to generated Map

imgURL = mv.getGeneratedMapImageURL();

// Get size and center of new map

mapSize = mv.getSize();

Point2D center = mv.getCenter();

JDBC

MapViewer "AJAX" Architecture

Map Cache Server

Database

Oracle Application Server

Client(browser)

Application

XML/HTTP

SpatialTables

Map Definitions

JavaScript Map API

Mapbuilder

FOI Server

Map Rendering Engine

Map Cache

Oracle Maps client side: a simple HTML page showing a map

<html><head><script language="Javascript" src="jslib/loadscript.js"></script><script language=JavaScript> var baseURL = "http://"+document.location.host+"/mapviewer"; function display_map() { var mapview = new MapView(document.getElementById("map"), baseURL); mapview.addBaseMapLayer(new BaseMap("mvdemo.demo_map")); mapview.setCenter(-122.45, 37.75); mapview.setZoomLevel(5); var foiLayer = new ThemeBasedFOI ('customers', 'mvdemo.customers') ; mapview.addThemeBasedFOI (foiLayer); mapview.addNavigationPanel("east"); mapview.display(); }</script></head><body onload= JavaScript:display_map() ><h2>A Simple Web Mapping Application</h2><div id="map" style="left:10; top:60;width: 600px; height: 500px"></div> </body></html>

Load the Oracle Maps client viewing libLoad the Oracle Maps client viewing lib

map initialization functionmap initialization function

where the map will appear on the pagewhere the map will appear on the page

Invoke map initialization functionInvoke map initialization function