... French Géoportail API v User Guide.... Institut National de l'information Géographique et Forestière - France
|
|
|
- René Laframboise
- il y a 10 ans
- Total affichages :
Transcription
1 ... French Géoportail API v User Guide... Institut National de l'information Géographique et Forestière - France 06/29/2015
2
3 Table of Contents i Table of Contents Table of Contents i 2. Forewords License Historical ChangeLog Prerequisites Overview Geoportal layers Coordinates Reference Systems Controls Using the loader Using the JS API Adding layers Adding vector layers Adding image layers Adding controls Changing styles Changing srs GPS positionning Adding a proxy Multi-keys Multi-lingual Using the Flash API Adding layers Adding layers in MXML Adding layers in as Adding controls Compiling OpenLayers Advanced WMTS layers API key Advanced search services Advanced elevation service Multi-lingual
4 Table of Contents ii
5 1 Forewords 1 1 Forewords Avant propos API Web 2D API Web 2D en Javascript API Web 2D en Flex API 3D L'API du Géoportail a pour but de permettre la superposition des couches métiers utilisateurs avec les référentiels Géoportail pour différents types d'applications cartographiques. Le schéma ci-dessus décrit son fonctionnement: architecture
6 1 Forewords 2 On distingue trois parties principales : les composants côté serveur : Les entrepôts de données sont gérés ici. Ils peuvent être sous un gestionnaire de base de données (postgresql, mysql, Oracle, Informix, ArcSDE, etc...) ou directement sur le système de fichiers sous forme de répertoires de fichiers (cache, arborescences). les services : Ces entrepôts sont accessibles par des services (Web Map Service, Web Feature Service,...) ou par des transferts HTTP classiques (Keyhole Markup Language,...). L'accès à ces services est protégé par le contrôle des droits d'accès: chaque requête aux serveurs nécessite une clef d'accès. les composants côté client : L'API cliente est chargée ici. 1.2 API Web 2D Disponible dans deux langages de programmation (JavaScript et Flex), elle permet d'intégrer les référentiels Géoportail dans un site Web via un client cartographique. L'utilisation de l'api en Flex n'est cependant pas encouragée du fait de l'obsolescence de la technologie flash API Web 2D en Javascript Réalisée en JavaScript et basée sur la bibliothèque OpenLayers (logiciel libre sous licence BSD), elle surcharge les librairies de cette dernière pour apporter de nouvelles fonctionnalités comme des contrôleurs, des visualiseurs,... Toutes ces fonctionnalités sont accessibles d'une manière très simple grâce à la classe Geoportal.Map, qui encapsule toute la puissance de l'api derrière quelques méthodes. Les développeurs peuvent également utiliser l'intégralité des fonctions OpenLayers. Les livraisons sont construites sur différentes versions d'openlayers. Un exemple est donné là. les composants côté client : Pour le client Web 2D, son architecture interne est la suivante : Bibliothèques OpenSource utilisées : Prototype Javascript Framework (jusqu'à 1.0beta2), Script.aculo.us - Web 2.0 javascript (jusqu'à 1.0beta2), PROJ4JS, OpenLayers, NaturalDocs (depuis 1.0beta3) Sarissa (depuis 1.0beta3) la bibliothèque Geoportal Cette bibliothèque met en oeuvre la charte graphique de l'api.
7 1 Forewords API Web 2D en Flex Réalisée en Flex et basée sur le projet open source OPENSCALES (licence LGPL v3), elle surcharge les librairies de ce dernier pour apporter de nouvelles fonctionnalités. Elle permet ainsi d'intégrer les données du Géoportail dans une application flash. Un exemple est donné là. 1.3 API 3D Réalisée en javascript, l'api 3D permet d'intégrer dans une page web le globe virtuel VirtualGeo avec les données du Géoportail. Un exemple est donné là.
8 2 License 4 2 License Licence BSD Copyright (c) , Institut National de l'information Géographique et Forestière France Tous droits réservés. La redistribution du code source, modifié ou non, sous forme de binaire est soumise aux conditions suivantes : Le copyright ci-dessus, la présente liste des conditions et l'avertissement qui la suit doivent figurer dans le code source. La documentation et/ou les fichiers accompagnant le code source distribué sous forme de binaire doivent faire apparaître le copyright ci-dessus, la présente liste des conditions et l'avertissement qui la suit. Le nom de l'institut National de l'information Géographique et Forestière, pas plus que ceux de ses collaborateurs, ne sauraient être utilisés dans le but de promouvoir ou de légitimer un produit dérivé de ce programme sans autorisation écrite préalable à cet effet. CE PROGRAMME EST FOURNI «TEL QU'EN L'ÉTAT» PAR LES MEMBRES DU CONSEIL D'ADMINISTRATION ET LEURS COLLABORATEURS ET IL N'EST DONNÉ AUCUNE GARANTIE, IMPLICITE OU EXPLICITE, QUANT À SON UTILISATION COMMERCIALE, PROFESSIONNELLE OU AUTRE. LES MEMBRES DU CONSEIL D'ADMINISTRATION ET LEURS COLLABORATEURS NE PEUVENT EN AUCUN CAS ÊTRE TENUS POUR RESPONSABLES DE QUELQUE DOMMAGE OU PRÉJUDICE DIRECT, INDIRECT, SECONDAIRE OU ACCESSOIRE (Y COMPRIS LES PERTES FINANCIÈRES DUES AU MANQUE À GAGNER, À L'INTERRUPTION D'ACTIVITÉS, OU LA PERTE D'INFORMATIONS ET AUTRES) DÉCOULANT DE L'UTILISATION DU PROGRAMME, OU DE L'IMPOSSIBILITÉ D'UTILISER CELUI-CI, ET DONT L'UTILISATEUR ACCEPTE L'ENTIÈRE RESPONSABILITÉ. Le texte de la licence en anglais est donné là.
9 3 Historical 5 3 Historical Historique des versions Les livraisons de l'api Web 2D en Javascript sont construites sur différentes versions d'openlayers : Date de livraison Version Fonctionnalités 2 avril Version correctrice de bugs Voir les évolutions. 24 novembre Gestion du service d'altimétrie de la plateforme Géoportail Voir les évolutions. 27 mai OpenLayers 2.12, nouvelle procédure de compilation. Voir les évolutions. 9 juillet Accès à l'infrastructure du Géoportail 3. Remplacement du WMSC par le WMTS, support du HTTPS, refonte de la gestion des droits d'accès... Voir les évolutions. 20 février OpenLayers 2.11, introduction des interfaces pour les visualisateurs, d'un chargeur exposant des fonctionnalités liées avec la version 2.0 à venir mi Voir les évolutions. 17 janvier OpenLayers 2.10, les données vectorielles sont dorénavant chargés en utilisant OpenLayers.Protocol et OpenLayers.Strategy sans impact sur l'api elle-même et pour se rapprocher d'openlayers août OpenLayers mars OpenLayers 2.8, support expérimental des ExtendedData pour KML. Voir les évolutions. Analyse des capacités WMS (1.3.0) et WFS (1.1.0). Les accès OpenLS sont dorénavant protégés par GeoDRM.
10 3 Historical 6 6 mai beta4 Séparation entre le visualisateur et la carte en préparation de la version 1.0 : il est nécessaire de modifier les pages pour passer à cette version comme indiqué dans les évolutions. Introduction des API minimum, standard et étendue. Ajout du support de la recherche par OpenLS (Location Utility Service). Expérimental. 4 novembre beta3 OpenLayers 2.7, support préliminaire en écriture du format Geoconcept export. Retrait de Prototype et Script.aculo.us. Nouvelle barre d'édition et nouveaux composants pour le gestionnaire de couches. Documentation basée sur NaturalDocs. Ouverture au zoom mondial. 1er juillet beta2 OpenLayers 2.6, plus de fonctionnalités au support du format GPX. 4 juin beta1 Corrections de quelques boggues, quelques fonctionnalités OpenLayers 2.6 et support préliminaire du format GPX. 28 avril beta OpenLayers 2.5 avec le support des projections.
11 4 ChangeLog 7 4 ChangeLog Modifications API Web 2D en Javascript /04/2015 (2.1.2) : Corrections de bugs : Résolution du bug d'affichage du layer Switcher sous IE introduit par la version Retrait des paramètres JSONP lors de l'appel à l'autoconf lorsque celle-ci est chargée localement. Affichage d'images "nodata" lorsque les tuiles attendues sont en HTTP 404 en mode HTTPS (comme c'est déjà le cas en HTTP). Géocodage inverse : lorsqu'on saisit un cercle ou rectangle comme zone de recherche, celuici est réduit aux tailles limites acceptées par le service (par défaut : 1000m) de façon à ne pas avoir d'erreur du service. Gestion par les CSS de certaines images utilisées par les widgets API. Modification des styles d'affichage des tracés des outils de mesure. Retrait des dépendances Flex du packaging GeoportalExtended. 3D : correction du bug de centrage par géocodage. 3D : ajout de la couche MNT par défaut. correction d'un bug dans la gestion des ratios min et max de l'éechelle dans la mini carte (OverviewMap). meilleure gestion des événements claviers dans le controle d'autocompletion. Prise en compte native des résolutions des pyramides des couches en Lambert 93. Mise en place d'entêtes Expires sur les fichiers js et CSS de l'api /11/2014 (2.1.1) : Gestion du service d'altimétrie de la plateforme Géoportail. un nouveau parser ; des nouveaux contrôles Geoportal.Control.Measure.Elevation et Geoportal.Control.Measure.ElevationPath pour calculer une altitude ou un profil altimétrique sur une carte. Disponibles dans l'api Standard. des exemples d'illustration : paramétrage des outils d'altimétrie, intégration des outils altimétriques avec les outils de mesure et personnalisation de l'affichage du profil altimétrique avec une bibliothèque tierce. Amélioration de la gestion du géocodage inverse : rajout du parsing de la balise SearchCenterDistance dans la gestion du format OpenLS. Le contrôle ne propose que les ressources (toponymes, adresses ou parcelles) disponibles sur la clef. Possibilité de paramétrer le contrôle sur les ressources utilisées (allowsearchtype). Changements sur le LayerSwitcher : rajout des méthodes movelayerup et movelayerdown. gestion plus fine des identifiants des panneaux relatifs aux couches décrites : ils sont construits à la fois à partir de l'identifiant de la couche et de celui du LayerSwitcher.
12 4 ChangeLog 8 Debug divers : Modification du contrôle LayerCatalog pour qu'il n'affiche que les couches disponibles sur la clef. diverses retouches de pictos et CSS (notamment pour la compatibilité avec Wordpress). API 3D : prise en compte des paramètres heading et tilt d'orientation de la caméra. Gestion correcte du WFS par le contrôle AddVectorLayer. Mise à jour des emprises des regions et departements à partir de GEOFLA. Le format WFST v2 utilise bien les filtres v /05/2014 (2.1.0) : Utilisation d'openlayers 2.12 cf. Changelog d'openlayers 2.12 Réorganisation de l'arborescense des sources et du système de compilation Le projet api-js est désormais éclaté en trois projets : api-js-libraires (pour le source de l'api), api-js-examples (pour les exemples d'utilisation) et api-js-techdocs (pour la présente documentation technique). Le système de compilation a été revu pour être en phase avec l'infrastructure du Géoportail phase 3, permettant désormais des procédures de livraison plus simples. Nouvelle définition de l'api Minimale : celle-ci est désormais indépendante de tout chargement préalable d'openlayers (elle en embarque les classes nécessaires), mais elle n'écrase pas ses définitions si ce dernier est chargé en premier. Le thème geoportal3 devient le thème par défaut et remplace l'ancien geoportal qui est renommé en 'legacy'. Voir le nouveau thème par défaut. Gestion du géocodage inverse par l'api (contrôles et parseur) Ajout d'un contrôle printmapdom qui repose sur une copie du DOM de la carte et non la création d'un nouveau viewer. La copie des couches vecteurs ne fonctionne pas pour les navigateurs utilisant VML comme moteur de rendu (ie8 et ie9). Reste encore expérimental. cohabite avec le controle printmap existant Intégration d'un correctif d'openlayers 2.13 permettant le support d'ie10 (et 11). Un nouveau design pour la page d'index des exemples d'utilisation. Voir la nouvelle page. Optimisation de l'affichage des pictos par l'utilisation de sprites css Modification de la gestion des territoires En 2.0, lorsqu'on initialisait la carte par défaut, sans spécification de territoire, celle-ci permettait de naviguer sur le territoire métropolitain (FXX) aux grandes échelles et sur le territoire monde entier (WLD) aux petites échelles. En 2.1.0, la carte est initialisée uniquement sur le territoire métropolitain par défaut à toutes les échelles : du coup la navigation est limitée à son emprise. Par contre, le territoire monde entier a été étendu à toutes les échelles (même s'il n'y a pas de données partout) et du coup, si on veut pouvoir débrider la navigation, il faut indiquer que l'on créé la carte avec ce territoire.
13 4 ChangeLog 9 Diverses corrections de bugs /02/2013 (2.0.3) : Refactoring des classes d'affichage des informations sur les couches Refactoring des classes du "Location Utility Service" gestion du KML tuilé Ajout d'un nouveau thème "geoportal3" Diverses corrections de bugs /10/2012 (2.0.2) : Corrections de bugs : outils de mesure : correction de bug sur le calcul des surfaces Echelle graphique : prise en compte de la résolution terrain pour le calcul de l'échelle Logos : correction de bug sur l'affichage des logos en fonction du niveau de zoom /09/2012 (2.0.1) : Corrections de bugs : outils de mesure : les distances sont calculées sur l'ellipsoide https : invocation des services en https si la page est en https PrintMap : gestion des urls commençant par '/' Ajout des grilles de transformation NTF - RGF /07/2012 (2.0) : Accès à l'infrastructure du Géoportail 3: Remplacement du WMS-C par le WMTS Support du HTTPS Une nouvelle gestion des droits d accès aux données: => plus de notion de jetons Une nouvelle projection de visualisation : Web Mercator Sphérique Ajout de nouveaux contrôles: Catalogue de couches, barre de croquis,... Accès aux nouveaux services: Auto-configuration, géocodage inverse, autocomplétion,... Utilsation de la version 1.2 d'openls Les services de géocodage possibilité d'éffectuer une recherche par identifiant parcellaire ou par sites géodesiques à travers le service de géocodage /02/2012 (1.3) : Ajout d' OpenLayers.UI et Geoportal.UI pour séparer les contrôleurs de leur rendu; OpenLayers.Format.WMC fait maintenant partie de l'api standard en prévision de son utilisation de la version 2.0 à venir pour charger les informations liées au clef API; Ajout de OpenLayers.Protocol.WFS.v2 dans l'api étendue (expérimental); Correction du calage des grilles dans Geoportal.Layer.Grid; Ajout de la classe Geoportal.Layer.WMTS; Correction de la lecture des capacités WMTS et modifications de geturl() de Geoportal.Layer.WMTS pour propager les informations en provenance des capacités. Ajout de
14 4 ChangeLog 10 la lecture de la balise TileMatrixSetLimits, et correctif pour ows:wgs84boundingbox dans la lecture des capacités de WMTS; Premier support du WMTS dans Geoportal.Control.AddImageLayer; Correction boggues lecture des capacités de service WFS : le préfixe des typenames n'était pas stocké et sauvegarde des SRS dans la liste des SRS disponibles. Prise en compte des préfixes et espaces de nommage dans Geoportal.Control.AddVectorLayer. Correction boggue sur le style par défaut des couches WFS, la taille des points était oubliée. Corrections boggues sur Geoportal.Control.AddVectorLayer et ajout de l'utilisation de DescribeFeatureInfo pour le champ géométrie lors d'un accès WFS. Correction des URLs WFS de Geoportal.Control.AddVectorLayer; Ajout de la documentation sur le GET KVP d''openls. Correction d'un boggue dans Geoportal.Layer.OpenLS.Core.LocationUtilityService dans le cas des requêtes GET : les options de la couche étaient écrasées par celles passées à la construction de la requête. Modification des méthodes tostring() et tohtmlstring() de Geoportal.OLS.Address; Ajout des méthodes setcenteratlocation() et setcenteratgeolocation() sur Geoportal.Map pour se positionner sur un toponyme ou une adresse ou à une IP; Ajout des méthodes setkeys() et getallowedgeoportallayers() sur Geoportal.Catalogue; Ajout de la méthode setkeys() sur Geoportal.Viewer; Ajout du support des légendes dans la configuration des couches API; Internationalisation des libellés associés aux légendes des couches; Mise à jour de PROJ4JS : entre autres, utilisation du code Google Mercator officiel (EPSG:3857). Ajout des caractères ` et `` dans l'analyse des degrés sexagésimaux; Retrait des systèmes de référence de coordonnées STEREOSX (non utilisé) et UTM39ETRS89 (hors emprise Europe INSPIRE). Correction TERA50GEO par TERA50G; Modification du registre IGNF (suite à commit sur PROJ.4); Suppression des appels à OpenLayers.Element.hide() et OpenLayers.Element.show() dépréciés; Prise en compte du ticket 3486 sur OpenLayers.Protocol.Script; Prise en compte du ticket 3567 d'openlayers 2.11 sur l'option autosize des OpenLayers.Popup; Modification du constructeur d' OpenLayers.Control.ZoomPanel pour pouvoir passer des options aux sous-contrôles; Changement du logo Géoportail et des CSS associées (proposition); Modification des styles associés à Geoportal.Control.PermanentLogo et Geoportal.Control.TermsOfService; Correction boggue et utilisation de toutes les couches du contrat dans l'exemple geoportalmap_all; Correction de l'exemple geoportalmap_basicviewer.html : support d' OpenLayers.UI, blocage de la miniaturisation de Geoportal.Control.Information (contrôle externalisé); Ajout des exemples simple1.2 (thème), simple1.3 (fonctions de rappel), simple6.1 (GPX), simple6.2 (WMS), simple7 (contrôle externe) et simple8 (WFS); API Flash : intégration d'une application developpée avec une version alpha de l'api version 2.0 ; API Flash : Ajout d'exemples utilisant la nouvelle application version 2.0 : simple1 (intégration simple), simple2 (ajout de données au format KML), simple2.1 (ajout de données au format GPX) et simple3 (positionnement par noms de lieux); Ajout de l'exemple geoportalmap_wmts.html; Ajout d'un exemple mimiquant l'utilisation de GoogleMaps API;
15 4 ChangeLog 11 Ajout d'un premier exemple sur les mobiles : geoportalmap_mobile1.html; Ajout d'un second exemple sur les mobiles avec JQueryMobile : geoportalmap_mobile2.html; Mise-à-jour de la documentation sur les modèles de codes API : l'ancienne méthode de chargement via l'utilisation de <script type="text/javascript" src=" v=version&key=clef&instance=visu&"><!--//--><![cdata[// ><!-- //--><!]]></script> est dépréciée à partir de cette version de l'api. il est conseillé d'utiliser soit Geoportal.load, soit un chargement "manuel" de l'api et de passer à cette version de l'api. Les plus anciennes ne sont plus maintenues. Plus d'informations sur la migration là. Problèmes connus : Le contrôleur PrintMap présente des dysfonctionnements sous Chrome, IE et Safari (il reste expérimental) ; Les halo des labels ne se déplacent pas correctement lors d'un déplacement de la carte; /02/2011 (1.2) : Correction boggue de la désactivation du clavier quant activeovermaponly est faux; Correction des surcharges OpenLayers.Map.getObjectProjection() et OpenLayers.Layer.getNativeProjection() pour mimiquer OpenLayers correctement; Changement de signature de Geoportal.Control.LocationUtilityService. [Geocode GeoNames].setZoom() : la méthode attend un OpenLayers.Feature.Vector issu de la recherche. Répercution sur Geoportal.Control.LocationUtilityService.GeoNames.setZoomForBDNyme(); Modification du nom du callback onselectaddress() par onselectlocation(); Désactivation de la gestion de la visibilité des couches lors de leur chargement; Les fenêtres flottantes sont désormais 'resizable' ( Geoportal.Control.Floating); Prise en compte des modifications de la taille des fenêtres flottantes et des résultats dans Geoportal.Control.Form; Prise en compte de la propriété resultdiv de Geoportal.Control.Form dans les sous-classes; Désactivation du test sur l'existance d'une extension lors de l'import de fichiers vecteurs pour permettre d'importer des webservices qui retournent des kml, gpx, osm, etc... Ajout des méthodes Geoportal.Viewer.(get set)application(); Ajout du module Geoportal.GeoRMHandler.getConfig() et de son callback Geoportal.GeoRMHandler.getContract(); Ajout des méthodes Geoportal.GeoRMHandler.getServicesCapabilities() et du callback associé Geoportal.GeoRMHandler.getCapabilities() et autres corrections mineures; Ajout de la lecture de TimeStamp/when et TimeSpan/(begin end) sur les KML; Ajout des codes EPSG: 4467, 4471, 4474, 4559 pour RGSPM06 / UTM zone 21N, RGM04 / UTM zone 38S, Cadastre 1997 / UTM zone 38S, RRAF 1991 / UTM zone 20N; Les Geoportal.Layer.Aggregate transmettent dorénavant leurs zooms aux couches aggrégées qui ne peuvent appartenir qu'à un seul groupe. Simplification de la gestion de la visibilité des couches aggrégées;
16 4 ChangeLog 12 Support des classes OpenLayers.Popup dans les callback de création des popups via la nouvelle propriété popupclass; Ajout de la recherche affinée sur les adresses lors d'un cntrl-alt-clic sur un résultat de type 'city'; Correction boggue dans l'affichage du résultat de la recherche par adresse : clonage de l'objet résultat pour ne pas vider la pile d'objets lors de plusieurs cntrl-clic consécutifs; Retour des tailles des caractères des en-têtes Geoportal.Control.Floating à 0.8em à cause de IE8 sous W$ vista, mais augmentation des tailles des labels et champs de saisies et diminutation des tailles des champs de saisies; Modification de l'exemple geoportalmap_localise.html : les services IPinfoDB et GeoNames sont utilisés en JSON; Ajout du test basic-token-uncompressed.html pour tester l'api sans passer par la servlet api (lecture du getconfig et récupération du getcontract); Correction boggue sur geoportalmap_overview.html : ajout d'un timer sur les appels à Geoportal.Control.Information.showControls() et Geoportal.Control.Information.toggleControls() pour attendre que la carte soit prête; Ajout des exemples geoportalmap_simple1.html, geoportalmap_simple2.html, geoportalmap_comparator.html et geoportalmap_ignrge.html; Correction pour IE7 des labelbordercolor et labelbordersize non supportées; Modification de la documentation en mode développeur par défaut; Mise à jour de la documentation en ligne; Mise à jour des composants Mediawiki et Joomla; /01/2011 (1.2) : Remplacement d'openlayers par OpenLayers 2.10; Prise en charge de trac.osgeo.org/openlayers/ticket/2870 (régression OpenLayers 2.10); Application du ticket 2933 : chargement de l'api dans les navigateurs comptabiles HTML5; Ajout du nouveau mécanisme évitant de charger OpenLayers.js ou Geoportal*.js qui sera mis en place avec OpenLayers 2.11 et retrait des *._scriptname; Ajout des cartes littorales, topographiques, cassini et RPG 2007, 2008 et Désactivation des cartes de Cassini, Corine Land Cover. Mises à jour des échelles des couches; Modification des Geoportal.VERSION_NUMBER : la chaîne est du type INF;DATE avec INF valant "Geoportal versionapi typeapi"; Modification des Geoportal.Viewer.Default et Geoportal.Viewer.Standard : le contrôleur Geoportal.Control.Information peut dorénavant s'escamoter/se minimiser; mise-à-jour des CSS; Ajout de l'évènement controlvisibilitychanged sur OpenLayers.Map et prise en charge dans les contrôleurs Geoportal.Control.PermanentLogo, Geoportal.Control.Logo, Geoportal.Control.TermsOfService; Ajout de l'évènement controldeleted sur OpenLayers.Map et prise en charge dans les contrôleurs Geoportal.Control.Projections, Geoportal.Control.Form et Geoportal.Control.MousePosition; Ajout de la méthode OpenLayers.Map.getApproxScaleDenominator() en substitution de la méthode OpenLayers.Map.getScale(); Ajout de l'écouteur Geoportal.Control.SliderBase.displayInfo() pour l'évènement mouseover; Prise en charge des évènements mapmouseover et mapmouseout dans Geoportal.Control.LayerSwitcher, Geoportal.Control.Floating, Geoportal.Control.ToolBox; Ajout des méthodes Geoportal.Control.mapMouseOut() et Geoportal.Control.mapMouseOver() en charge de lancer les évènements mapmouseover et mapmouseout;
17 4 ChangeLog 13 Prise en charge de visibilitychanged sur OpenLayers.Protocol.Response pour arrêter le chargement dans les stratégies OpenLayers.Strategy.BBOX, OpenLayers.Strategy.Fixed; Mise à jour de PROJ4JS et du catalogue IGNF pour les systèmes de référence INSPIRE. Ajout du support de l'option +axis= ( patch envoyé au projet); Remplacement des procédures de chargements KML, GPX, OSM, GeoRSS, GML et WFS par des nouvelles utilisant OpenLayers.Strategies et OpenLayers.Protocol (anticipation OpenLayers 3.0); Développement de l'option preventdefaultbehavior du constructeur de Geoportal.Map pour supporter diverses sous-options; Support des emprises sur l'affichage des logos des couches au travers de Geoportal.Control.Logo; Support des Geoportal.Layer.Aggregate par Geoportal.Control.Loading; Support de l'option logosize à la création d'un Geoportal.Viewer; Support en tant que tableau des propriétés description, legends, dataurl and metadataurl des couches par Geoportal.Control.LayerSwitcher. Mises à niveau des contrôleurs Geoportal.Control.AddImageLayer et Geoportal.Control.AddVectorLayer; Support des couches Géoportail dans Geoportal.Control.AddVectorLayer; Déplacement du code lié à l'évènement onload dans le body des exemples HTML et non dans l'en-tête; Restriction des systèmes de projection de coordonnées "compatibles" aux seuls plate-carré et équidistant cylindrique; Restriction des WMS du Géoportail aux seules projections légales; Correction boggue dans Geoportal.Popup.setPointerCursorForFeature() : création d'un clone des styles modifiés pour éviter l'écrasement des styles originaux; Correction de la taille des champs pour l'affichage des coordonnées dans Geoportal.Control.MousePosition; Correction boggue OpenLayers.Renderer.*.setExtent() : cas où l'emprise est nulle; Séparation des styles IE6 des autres styles; /11/2010 (1.0, 1.1) : Ajout des paramètres center et zoom dans les exemples Flex; Correction du calcul des résolutions des Geoportal.Layer.Grid : test sur les résolutions de la couche versus la base; Correction des zooms minimum et maximum et correction de la pyramide des résolutions lors de l'ajout d'un service WMS-C; Ajout du support de l'attribut skipattributes sur les couches pour l'affichage des popups étendant le support actuel; Correction d'une régression sur OpenLayers.Control.WMSGetFeatureInfo.buildWMSOptions() affectant l'api depuis la version 1.1 (le CRS envoyé n'est pas celui des couches, mais de la carte); Correction typographique dans l'api Standard : "OpenLayers.Protocol" et non "OpenLayers.Protocole" (certaines classes OpenLayers manquaient); Retrait de l'interception du clic droit dans la carte : trop de problèmes avec IE; Correction boggue sur la fermeture des popup dans le cas d'un contrôleur gérant plusieurs couches;
18 4 ChangeLog /10/2010 (1.1) : Création des fichiers d'en-tête des APIs minimum, standard et étendue : GeoportalMin.js, GeoportalStandard.js et Geoportal.js; Extension du composant Geoportal.Control.Logo : prise en compte du champ attribution; Ajout de la propriété privée OpenLayers._document (avec ses méthodes OpenLayers.getDoc() et OpenLayers.setDoc() associées) pour contenir le document de travail courant. Modifications de toutes les classes OpenLayers et Geoportail qui utilisaient document directement; Ajout des contrôleurs Geoportal.Control.PrintMap, Geoportal.Control.CSW et Geoportal.Control.PageManager; Date of publication and author fields are now taken into account for GeoRSS streams; Passage à PROJ4JS 1.0.2; Mise-à-jour du catalogue IGNF de PROJ4JS pour ajouter les CRS basés sur RGTAAF07. Renommage de IGNF:TERA50GEO en IGNF:TERA50G. Retrait de IGNF:TERA50STPA; Ajout de l'exemple sur les fils GeoRSS; Ajout du style virtuel lors de l'utilisation d' OpenLayers.Control.ModifyFeature (geoportalalert.html); Activation de la case "Code postal" du moteur de recherche par adresses; Modification d' OpenLayers.Control.Measure (patch 2820); Récriture de Geoportal.Format.GPX, support des versions 1.0 et 1.1; Ajout des styles "black" et "covisu" et corrections de boggues associés à la gestion des thèmes; Ajout de la méthode Geoportal.Control.Form.buildRadioFields() et diverses optimisations dans Geoportal.Control.Form; Ajout de l'ortho-photographie littoral dans Geoportal.Catalogue; Support de OpenLayers.Request.abort() pour les contrôleurs Geoportal.Control.LocationUtilityService, Geoportal.Control.AddVectorLayer, Geoportal.Control.AddImageLayer; Corrections de boggues sur Geoportal.Map : prise en compte de options.formatoptions correctement, vérification des contrôles déjà chargés, prise en charge du i18n sur des couches OpenLayers.Layer, prise en charge de OpenLayers.Layer.Markers pour les popup; Amélioration du chargement de la fenêtre ( Geoportal.Viewer.Default et Geoportal.Viewer.Standard); Correction boggue sur l'exemple geoportalmap_providers.html (suite au portage en OpenLayers 2.9.1); Prise en compte de la nouvelle capacité de la servlet API (clefs et instances multiples) sur certains exemples de test et de production; /08/2010 (1.1) : Remplacement d'openlayers 2.8 par OpenLayers /08/2010 (1.0) : Déplacement de OpenLayers.Tile de l'api standard vers l'api minimum à cause de la gestion GeoRM; Ajout de OpenLayers.Control.ArgParser, OpenLayers.Control.Attribution, OpenLayers.Control.PanZoom pour être en conformité avec OpenLayers.Map; Ajout des styles olcontroldragpanitemactive, olcontroldragpaniteminactive, olcontrolzoomoutitemactive, olcontrolzoomoutiteminactive; Le nombre de CRS lors de la lecture des capacités des WMS est maintenant une option de Geoportal.Control.AddImageLayer;
19 4 ChangeLog 15 Amélioration du chargement des couches OpenLayers.Layer.GeoRSS dans Geoportal.Map.addLayer(), ajout d'une légende par défaut; Ajout de la méthode Geoportal.Map.setCursor() et retrait de la règle cursor 'crosshair' sur la classe gpmap, l'api utilise la méthode pour assigner le type de curseur; Correction d'un boggue sur Geoportal.Layer.OpenLS.LocationUtilityService.GEOCODE() et Geoportal.Layer.OpenLS.LocationUtilityService.REVERSE_GEOCODE() pour protéger les paramètres d'une destruction par clonage de ceux-ci; Correction d'un boggue sur Geoportal.GeoRMHandler lors du partage de clefs ayant des écouteurs d'évènements; Correction de fuites de mémoire dans Geoportal.Control.LayerSwitcher (évènements non libérés); Correction de Geoportal.Viewer.Default pour IE (suppression d'une ligne d'un tableau vide provoquant un décalage d'un pixel); Correction d'un boggue label sous OpenLayers.Renderer.VML (OpenLayers 2.9); Correction d'un boggue OpenLayers.Layer.setOpacity() pour les couches à base d' OpenLayers.Layer.Vector; Correction d'un boggue lors du chargement du type de service WFS dans Geoportal.Control.AddVectorLayer; Correction d'un boggue sur Geoportal.Control.MeasureToolbar pour IE à cause d'une virgule trainant en fin de ligne; Ajout des îles Amsterdam et Saint-Paul, de la Terre Adélie et de leurs systèmes de références de coordonnées; Geoportal.Control.Logo est intégré dans l'api Géoportail minimum; Les informations sur la GeoRM sont dorénavant stockées dans le catalogue de la carte et non plus la carte elle-même; Les noms des territoires sont maintenant traduits (leur code sert de clef de traduction). L'exemple geoportalmap_all.html est mis-à-jour en accord; proxy.php.zip and proxy.php.zip.md5 sont maintenant à jour; Les exemples complexes ( geoportaladdressform.html, geoportalalert.html, geoportalgeocoder.html, geoportalxyform.html) ont été revus à cause d'ie; Mise-à-jour de la documentation sur le non-support du protocole HTTPS /06/2010 (1.0) : Correction de boggue sur OpenLayers.Format.WFST.v1.getSrsName() : la propriété externalprojection n'était pas prise en compte quant elle est définie; Correction de la règle CSS gpcontrolinformation pour éviter une erreur de calcul sur la largeur de l'élément DOM; OpenLayers.Util.onImageLoadError() réutilise OpenLayers.Util.onImageLoadErrorColor quand les images ne sont en provenance ni d'osm, ni du Géoportail; Mise à jour de OpenLayers.Request.XMLHttpRequest sur le trunk OpenLayers; Prise en compte des modifications du trunk de PROJ4JS (somerc); Corrections boggues OpenLayers.Format.GML.Base sur les reprojections des BBOX des objets lus; Améliorations de OpenLayers.Protocol.WFS.v1.prototype.read() pour supporter des features multiples en entrée; Prise en compte de OpenLayers.Control.GetFeature d'openlayers 2.9; Correction des problèmes de reprojection des BBOX dans OpenLayers.Control.GetFeature;
20 4 ChangeLog 16 Ajout du support des requêtes par polygones dans OpenLayers.Control.GetFeature; Prise en compte des cartes en très grandes échelles (1:4000 à 1:1000) dans les territoires; Correction du moteur de changement de baselayer pour Geoportal.Control.ZoomSlider, pour Geoportal.Control.ZoomBar (les zooms sont toujours au nombre de 22), des fonctions par défaut pour Geoportal.Control.SliderBase (les zooms retournent null et non -1 dans les fonctions génériques); Correction boggue Geoportal.Control.Form : réactivation du clavier lors de la fermeture du contrôle; Correction boggue dans la création des couches Geoportal.Map.addLayer : les options passées s'appliquent bien en dernier pour ne pas être écrasées par les valeurs par défaut; Le contenu des Geoportal.Popup.Anchored est dorénavant basé sur name, description et les attributs étendus; Correction boggue sur les Geoportal.Layer.Aggregate lors des changements de zoom et de baselayer; Ajout de l'option usedefaultbaselayers pour désactiver la création des baselayers Géoportail par défaut Geoportal.Viewer; Correction de la méthode Geoportal.Viewer.addSphericalMercatorBaseLayer() et ajout de la méthode Geoportal.Viewer.addPlateCarreBaseLayer(); Correction boggue sur l'option global lors de l'appel à Geoportal.Viewer.addGeoportalLayer(); Vérification des extensions des fichiers dans Geoportal.Control.AddVectorLayer, du type de service dans Geoportal.Control.AddVectorLayer (WFS) et Geoportal.Control.AddImageLayer (WMS); Correction boggue sur affectation des territoires SBA et SMA; Nettoyage zindex Geoportal.Control.LayerSwitcher; Ajout de l'option attachdefaultpopup pour les couches vectorielles directement chargées via Geoportal.Map.addLayer() afin d'ajouter, en conjonction avec l'option preventdefaultbehavior, les popups automatiquement; Correction de la désactivation du contrôle Geoportal.Control.Measure: réinitialisation de targetelement si besoin. Geoportal.Control.Measure.Azimuth ouvre un panneau de résultats (distance et angle). Réorganisation de Geoportal.Control.MeasureToolbar pour faciliter les surcharges utilisateurs. Ajout du style gpcontrolmeasureazimuthazimuthinput; Modification du code des proxy PHP/Perl; Amélioration des codes RIG pour les territoires des "Îles éparses"; Correction des explications liés à la GeoRM; Correction de liens cassés dans la documentation; Retrait de OpenLayers.Control.Measure de l'api standard (API étendue); Retrait de OpenLayers.Control.MousePosition de l'api étendue (API standard); Correction inclusion de OpenLayers.Control.OverviewMap dans l'api standard au lieu de l'api étendue; Mise-à-jour de la date de la licence, ajout de la license XmlHttpRequest.js, ajout du lien téléchargement du code source de l'api dans le texte des licences; Modification du style gpcontrolmeasuretoolbarresult pour que sa hauteur s'adapte à son contenu. Ajout de la régle gpcontrolmeasureazimuthazimuthinput; Prise en compte des tickets et ticket/2096 dans OpenLayers.Control.Measure; Mise-à-jour de XmlHttpRequest en version (
21 4 ChangeLog 17 Ajout des évènements mapmouseover et mapmouseout (basé sur ticket/2577); Prise en compte des évènements mapmouseover et mapmouseout dans OpenLayers.Control.KeyboardDefault (propriété activeovermaponly), OpenLayers.Map (propriété mapmouseeventsenable sur Geoportal.Viewer); Ajout de OpenLayers.Control.Click dont il suffit de surcharger les méthodes onclick(e) ou ondblclick(e); Correction du boggue sur la méthode addfeatures() sur OpenLayers.Layer.Vector et OpenLayers.Layers.GML quant la propriété extractfolder est à true; Surcharge de la méthode getdataextent() de OpenLayers.Layers.GML pour prise en compte des objets sans primitive géométrique; Récriture de la gestion des éléments de mesure ( Geoportal.Control.MeasureToolbar, Geoportal.Control.Measure.Azimuth) pour faciliter les surcharges utilisateurs. Geoportal.Control.Measure.Azimuth affiche ses résultats dans une fenêtre avec la distance et l'angle; Légère optimisation de la gestion du déplacement des Geoportal.Control.Floating; Correction boggue Geoportal.OLS.Address des méthodes tostring() et tohtml(); Les visualiseurs de l'api activent les options mapmouseeventsenabled et activeovermaponly pour activer les évènements mapmouseover et mapmouseout; Correction boggue lors de la destruction des contrôleurs de Geoportal.Viewer.Default et Geoportal.Viewer.Standard; Suppression dans les exemples de la gestion du clavier hors de la carte gràce aux évènements mapmouseover et mapmouseout; Ajout de la date de publication sur la version de l'api; Corrections de boggues (IE) lors de la fermeture des pages contenant l'api; /04/2010 (1.0) : Remplacement dans les sources de "Copyright 2008" en "Copyright (c) "; Correction affichage des projections UTM dans le cas où celles-ci sont les premières des projections d'affichage; Retrait des fichiers htc des CSS; Correction boggue des tooltips sous FF: retrait de l'interception des mousemove sur Geoportal.Control.LayerSwitcher et Geoportal.Control.ToolBox; Correction des styles : généralisation des styles attachés aux boutons; Ajout d'une pollution du cache lors des rejeux des 404; Réactivation du code postal dans la recherche par adresse (bien que pas utilisé); Ajout de la transformation degré décimal vers grade; Ajout d'un formatage lors de la transformation degré décimal vers degré sexagécimal; Correction boggue OpenLayers sur OpenLayers.Layer.Vector.getDataExtent(); Retour sur la gestion des sous-contrôles de Geoportal.Control.Panel : rapprochement avec OpenLayers; Correction Geoportal.Control.PanelToggle : support des contrôles activé/désactivé en terme de CSS; Retrait de Geoportal.Control.MeasureToolbar de l'api standard (retour forum); Ajout du changement de langues sur Geoportal.Control.MeasureToolbox; Ajout de Geoportal.Control.Measure.Azimuth, suite à des travaux d'élèves de l'ensg;
22 4 ChangeLog 18 Correction de Geoportal.Viewer.Default.setInformationPanelVisibility() : dans le cas false, une modification précédente avait désactivée le rappel de la méthode pendant le chargement initial de l'api; Correction boggue sur Geoportal.Viewer.* lorsque infocntrl est null lors d'un apple à setsize(); Ajout de OpenLayers.Format.DescribeLayer et OpenLayers.Format.GetFeatureInfo à l'api standard; Ajout du support OpenLayers.Control.GetFeatureInfo lors de l'ajout d'une couche image par Geoportal.Control.AddImageLayer; Corrections de la méthode request de OpenLayers.Control.GetFeatureInfo : le CRS utilisé n'est pas celui de la carte, mais de la première couche, seules les couches visibles et à portée sont requêtables, les réponses vides ne sont pas analysées; Correction boggue champ à valeur null dans les réponses GetFeature des WFS; Application de la correction de boggue 2563 (OL 2.9 RC2) sur le "style labelalign contenant un caractère sous IE"; Désactivation de l'exemple WMS tuilé en WGS84 géographique sur OSM : service arrêté; /03/2010 (1.0) : Les labels associés aux contrôles Geoportal.Control.LayerSwitcher, Geoportal.Control.ToolBox et Geoportal.Control.Floating permettent d'ouvrir / fermer le contrôle (clic ou double-clic); Passage en CSS du bouton de fermeture du contrôle Geoportal.Control.Floating. La classe CSS est gpcontrolfloatingheadbtnsclose; Ajout du territoire ANF comme aggrégation des territoires GLP, MTQ, SBA et SMA; Suppression d'un certain nombre de contrôleurs lors de la construction d'une carte "mini" avec Geoportal.Viewer.Default; Ajout de Geoportal.Map.zoomToLonLatExtent(); Amélioration de Geoportal.Control.Floating.addContent() lors du calcul final de la taille de la fenêtre; Ajout du support de la propriété renderintent lots de la création des popups via Geoportal.Map.addLayer() pour améliorer le support du survol. Ajout d'un exemple montrant survol et clic sur KML; Ajout des propriétés Geoportal.Map.beforeOnBeforeMove() et Geoportal.Map.afterOnBeforeMove() appelées au tout début / fin de l'interception de l'évènement "beforemove". Ne font rien par défaut; Ajout de la propriété OpenLayers.Layer.onLoadError() pour permettre au développeur de gérer les erreurs de chargement; Ajout des classes OpenLayers.Strategy dans l'api standard; Ajout des projections ETRS Lambert conique conforme et équivalente pour la zone Europe avec l'algorithme laea de PROJ4JS; Retrait des retours chariots des Javascripts en production; Remplacement des comparaisons utilisant CLASS_NAME par l'opérateur instanceof; L'opacité est dorénavant gérée par les évènements dans le gestionnaire de couches ( Geoportal.Control.LayerSwitcher); Geoportal.Control.PermanentLogo gère l'évènement "changebaselayer" et l'affichage ou non de couches Géoportail; Ajout des évènements "tokenupdatestart", "tokenupdateend" et "tokenloaded", ainsi que de la propriété ontokenloaded() sur le gestionnaire de jeton ( Geoportal.GeoRMHandler.Updater);
23 4 ChangeLog 19 Modification de la levée des évènements "loadstart", "move" et "moveend" pour systèmatiquement tester le retour du callback (tout OpenLayers.Layer); Modification de la levée des évènements "reload" pour systèmatiquement tester le retour du callback ( OpenLayers.Tile.WFS et OpenLayers.Tile.WFS); Répartition des écouteurs d'évènements "changebaselayer" sur tout les types d' OpenLayers.Layer et Geoportal.Layer au lieu de Geoportal.Map; Ajout de l'évènement "beforemove" sur OpenLayers.Map.moveTo() et sa prise en compte dans Geoportal.Map (ticket 2359 / 2360); Ajout d'une méthode pour ajouter une baselayer basée sur Mercator Sphérique; Optimisation d' OpenLayers.Projection.transform() en lui permettant de traiter des tableaux et en prenant en compte la propriété bounds d' OpenLayers.Geometry (gain de 50% du temps dans les calculs); Ajout du ticket 2317 ( OpenLayers.Strategy.Refresh) pour les rafraîssements automatiques de couches; Prise en compte des alias du Mercator Sphérique ( EPSG:3785, EPSG:3857, EPSG:900913, EPSG:102113); Ajout d'un cache sur les OpenLayers.Projection pour stocker les alias pour accélérer les tests; Ajout des patches 2148, 2312 et 2349 pour la sélection des écritures via la propriété labelselect, le positionnement des écritures via les propriétés labelxoffset et labelyoffset, et la gestion de l'arrière-plan des écritures via les propriétés labelbackgroundcolor, labelbordercolor, labelbordersize et labelpadding; Prise en compte de la propriété layerlimit des WMS 1.3.0; Modification de la méthode OpenLayers.Map.setBaseLayer() pour lever l'évènement "changebaselayer" avant l'appel à OpenLayers.Map.setCenter(); Ajout d' OpenLayers.Control.Graticule et de la méthode OpenLayers.Util.getFormattedLonLat(). L'évènement "changelang" est aussi intercepté; Mise à niveau de PROJ4JS ( Ajout de tests sur les multi-fournisseurs; Amélioration de la gestion des zooms minimum et maximum de la carte lors de l'activation/ désactivation d'une couche; Retrait du centrage automatique de la carte : 1: les développeurs doivent appeler setcenter() ou zoomtoextent() dans leurs pages; Réorganisation de Geoportal.Format.GPX pour préparer la version 1.1; Ajout du support en lecture sur Geoportal.Format.Geoconcept, création de Geoportal.Layer.GXT sur des contributions de Jean-Marc Viglino (IGNF); Ajout de deux exemples utilisant Yahoo! User Interface et MapFish; Ajout de Geoportal.Lang dans l'api minimum pour bénéficier de la méthode Geoportal.Lang.add() et des traductions du Géoportail; Mise à jour de PROJ4JS en version 1.0 qui intègre des mises à jour de l'ign; Retrait de toutes les méthodes liées qui se trouvaient dans Geoportal.Util aux calculs des tailles des éléments DOM. L'API repose dorénavant sur le concepteur de la page; LES MÉTHODES SUIVANTES DOIVENT ÊTRE MODIFIÉES : 1: Remplacer Geoportal.Popup.Anchored.setPointerCursorForFeature par Geoportal.Popup.setPointerCursorForFeature; 2:
24 4 ChangeLog 20 Remplacer Geoportal.Map.getKMLDefaults par Geoportal.Map.getPopupDefaults ; 3: Geoportal.Util.getElementRenderedDimensions n'existe plus, selon le contexte la remplacer par OpenLayers.Util.getRenderedDimensions ou Geoportal.Util.getComputedStyle, voire par rien! 4: Geoportal.Util.getBorders() n'existe plus, utiliser des appels à Geoportal.Util.getComputedStyle sur les propriétés suivantes border-left-width, border-right-width, border-top-width et border-bottom-width ; 5: Remplacer Geoportal.Util.getElementGuessedDimensions par OpenLayers.Util.getRenderedDimensions ; 6: Geoportal.Util.isDocumentReady disparait totalement. Ajout du ticket 2195 (support des Folders) dans OpenLayers.Format.KML; Ajout du support de Openlayers.Layer.WFS à Geoportal.Control.AddVectorLayer. Mise à niveau de OpenLayers.Format.WFSCapabilities : ticket 1176/2245 et contributions IGNF (WMS et WFS 1.1.0); Ajout du contrôleur Geoportal.Control.Loading et prise en charge de celui-ci dans Geoportal.Control.LayerSwitcher. Mise à jour des tests et exemples utilisant OpenLayers.Control.LoadingPanel. Récriture de OpenLayers.Control.LoadingPanel pour qu'il hérite de Geoportal.Control.Loading; Ajout d'une méthode Geoportal.Control.Form.buildImageButton() et d'un drapeau mandatory pour modifier l'affichage des labels des champs de formulaire; Ajout de Geoportal.Control.AddImageLayer pour insérer des couches WMS ou WMS-C. Mise à niveau de OpenLayers.Format.WMSCapabilities : ticket 2164, trunk d'openlayers et VendorSpecificCapabilities pour OSGeO WMS-C (contribution IGNF); Amélioration de la méthode OpenLayers.Layer.calculateInRange() pour prendre en compte l'emprise maximale des couches par rapport à la fenêtre de visualisation courante; Ajout des grades et radians à l'affichage des coordonnées géographiques. Les degrés sexagésimaux ne sont plus l'unité par défaut (degrés décimaux). Les coordonnées peuvent maintenant être modifiées à la main (provoque un recentrage); Modifications des font-size et text-align des contrôleurs de projections et positions de la souris; Ajout des projections UTM pour Geoportal.Control.MousePosition (basé sur une contribution de gfilliere); Retrait de la prise en charge de la saisie des polygones à trous, non portée en OpenLayers 2.8; Extension d' OpenLayers.Format.KML de la version 2.8 dans l'api pour ajouter le support des autres ExtendedData; Remplacement d'openlayers 2.7 par OpenLayers 2.8; Écriture des polygones, multi-polygones, multi-lignes et multi-points ajoutée dans Geoportal.Format.GPX à minima; Geoportal.Control.AddVectorLayer : suppression de la case à cocher "à main levée?" si aucune couche linéaire ou polygonale n'est utilisée, suppression de l'entrée "URL" si aucune
25 4 ChangeLog 21 couche KML/GPX n'est utilisée. Récriture des options qui maintenant dépendent des types de couches. Positionnement sur l'emprise des couches KML, GPX et OSM; Ajout de Geoportal.Control.ToolBox.createControlAnchor() pour faciliter l'insertion de contrôleurs dans la boîte à outils; Seul le territoire courant et le Monde sont chargés par l'api accélérant les temps de chargement des pages Web; Changement du curseur en 'pointer' lors du survol des objets issus de KML/GPX/OSM; Utilisation de la propriété panmapifoutofview d' OpenLayers.Popup dans Geoportal.Popup.Anchored pour ne pas re-centrer systématiquement les fenêtres. Le comportement par défaut de l'api reste cependant inchangé : recentrage des fenêtres. Corrections de boggues : Ecriture des règles behavior et cursor modifiées sous IE : les url() relatives le sont par rapport à la page web, pas la CSS; Ajout de la couche parcelles cadrastrales sur la Guadeloupe, Martinique et Réunion; Geoportal.Map.render() se comporte désormais correctement; Prise en compte au plus prêt de OpenLayers.Control.SelectFeature pour les survols pour gérer les contrôles multiples sur un même objet; Couleur de fond des popups (gppopupcontent) n'est plus bloquée à blanc, mais héritée du style gppopup; Longueur des noms de couches affichés revue dans le gestionnaire de couches (cas sans ascenseur); Utilisation du trunk d'openlayers pour corriger un boggue dans la méthode OpenLayers.Map.updateSize(); Prise en compte du displayprojection lors d'un changement de baselayer ( Geoportal.Control.MousePosition et Geoportal.Control.Projections); Gestion de la synchronisation des visibilités sur l'évènement "changelayer"; Fuites de mémoire des settimeout() par libération du timer; Condition d'appel à Geoportal.Viewer.setSize() lors de la modification de la div de la carte; Application des patches OpenLayers sur les fuites de mémoire sous IE précédent la version 8 (changeset/9759, 9763); Calcul de la carte pour Geoportal.Viewer.Standard; Écriture des polygons dans Geoportal.Format.Geoconcept, contribution de Jean-Marc Viglino (IGNF); OpenLayers.Control.OverviewMap quand le contrôleur est hors du panneau d'affichage de la carte; Ajout du code 54 de la touche -/6 des certains portables français pour OpenLayers.Control.KeyboardDefaults; % et em dans le style de la div de la carte sont maintenant pris en compte; Fuite de mémoire sur Geoportal.Control.LayerSwitcher entraînant une erreur lors de la fermeture des pages; Geoportal.Control.Form.changeLang() mauvais élément DOM modifié; proxy.pl : utilisation de IO::Uncompress::Gunzip à la place de IO::Uncompress:Unzip quand l'en-tête HTTP Content-Encoding: gzip est trouvée. Mise à jour du répertoire téléchargement; Remplacement de argument.callee.caller pour portage sur opera (9.64); Diverses méthodes destroy() remisesà niveau;
26 4 ChangeLog 22 OpenLayers 2.8 sur l'interprétation de la balise BalloonStyle; Proj4js.loadScript() quand la définition du SRC est absente; Portage de l'algorithme d'utilisation des objets style en IE8 (boggue lors du calcul des tailles de div); Geoportal.Viewer.*.setSize() quand exécuté pendant le onload; Mode de compatibilité IE8 comme suggéré là pour les versions antétieures à la 1.0; Interprétation des "$[]" dans les BalloonStyle, OpenLayers les transforme en "${}" lors de la lecture et les charge dans feature.style.balloonstyle et non dans feature.style.text. Prise en compte des ExtendedData dans l'interprétation des styles ('displayname' n'est pas encore supporté); Documentation : Beaucoup de corrections typographiques ; Amélioration de la documentation de Geoportal.Control.Logo; Ajout de la documentation format OpenStreetMap (OSM) et exemples associés à OpenStreetMap; Ajout d'un exemple sur des WMS tuilés; AJout du changement de projections dans l'exemple sur les alertes /05/2009 (1.0beta4) : Ajout de la famille OpenLayers.Popup.Framed dans l'api standard; Amélioration du calcul de la taille de la carte quand la largeur ou la hauteur est indiquée en unité relative (%, em, pt) ; Corrections de boggues : Correction boggue d'affichage des coordonnées cartésiennes dans Geoportal.Control.MousePosition.displayEN ; Documentation : Archive des sources de l'api dans téléchargement /05/2009 (1.0beta4) : Création d'une API minimum, standard et étendue : Minimum : elle permet de connecter les couches Géoportail protégées par la GeoRM dans une application à base d'openlayers sans avoir à charger la partie IHM de l'api ; Standard : elle permet le chargement des couches standard du Géoportail, ainsi que le chargement des fichiers KML et GPX. L'accès à des services WMS est aussi inclus ; Étendue : elle utilise toutes les fonctionnalités de l'api Géoportail et d'openlayers. Support des API compressées quand l'en-tête HTTP Accept-Encoding: gzip est envoyé par le butineur ; Ajout de la classe Geoportal.Layer.Aggregate pour assembler des couches ; Ajout du composant Geoportal.Control.Floating pour avoir des contrôleurs pouvant se déplacer ; Support des conversions degrés sexagésimaux en degrés décimaux ; Support des degrés sexagésimaux dans la méthode Geoportal.Map.setCenterAtLonLat() ; Premier support du format OpenLS LocationUtilityService (lecture/écriture); Ajout des objets Geoportal.OLS pour l'analyse de Geoportal.Format.XLS ;
27 4 ChangeLog 23 Utilisation de la méthode surchargée OpenLayers.i18n() pour les localisations en lieu et place de la méthode Geoportal.i18n() qui est la surcharge pour faciliter les transitions vers OpenLayers ; Déplacement des variables globales et fonctions de l'espace de nommage OpenLayers.Ajax dans l'espace de nommage OpenLayers.Request.XMLHttpRequest : PARSED_OK ; PARSED_EMPTY ; PARSED_UNKNOWN_ERROR ; getparseerrortext() ; gettext(). Geoportal.Map est dorénavant une OpenLayers.Map. Deux classes ont été ajoutées : Geoportal.Viewer : classe de base des visualisateurs Géoportail ; Geoportal.Viewer.Default : implémentation par défaut d'un visualisateur Géoportail. Geoportal.Viewer.Standard : un visualisateur ressemblant à celui du Géoportail ; LES PORTIONS DE CODE ANTÉRIEUR À 1.0BETA4 SUIVANTES DOIVENT ÊTRE MODIFIÉS : 1: Modifier par ; 2: Remplacer INSTANCE.addControl par INSTANCE.getMap().addControl ; 3: INSTANCE.addGeoportalLayer() ne retourne plus rien ; 4: Remplacer INSTANCE.addGeoportalLayers( INSTANCE.allowedGeoportalLayers) par INSTANCE.addGeoportalLayers() ; 5: Remplacer INSTANCE.addLayers par INSTANCE.getMap().addLayers ; 6: Remplacer INSTANCE.addLayer par INSTANCE.getMap().addLayer ; 7: Remplacer INSTANCE.addPopup par INSTANCE.getMap().addPopup ; 8: Remplacer INSTANCE.allowedGeoportalLayers par INSTANCE.getMap().allowedGeoportalLayers ; 9: Remplacer INSTANCE.getDisplayProjection par INSTANCE.getMap().getDisplayProjection ; 10 : Remplacer INSTANCE.getPopupDefaults par INSTANCE.getMap().getPopupDefaults ; 11 :
28 4 ChangeLog 24 Remplacer INSTANCE.getProjection par INSTANCE.getMap().getProjection ; 12 : Remplacer INSTANCE.removePopup par INSTANCE.getMap().removePopup ; 13 : Remplacer INSTANCE.setCenterAtLonLat par INSTANCE.getMap().setCenterAtLonLat ; 14 : Remplacer INSTANCE.setCenter par INSTANCE.getMap().setCenter ; 15 : Remplacer INSTANCE.setLocale par INSTANCE.getMap().setLocale. Changement du nom du visualisateur par défaut de map à geoportalviewer ; Réécriture de la classe Geoportal.Control.Information : création des classes Geoportal.Control.Projections, Geoportal.Control.MousePosition et Geoportal.Control.Copyright ; Ajout du changement d'unité du système d'affichage de coordonnées ; Changement de la classe Geoportal.Control.AddLayerToolbar en Geoportal.Control.LayerToolbar avec les modifications nécessaires des styles CSS ; Changement de la méthode Geoportal.Map.setCenter en Geoportal.Map.setLonLatCenter et réciproquement pour être compatible avec OpenLayers.Map.setCenter ; Ajout du composant Geoportal.Control.Form pour la construction et gestion des formulaires HTML ; Ajout du composant Geoportal.Control.MeasureToolbar pour les mesures de distances et de surfaces ; Ajout du composant OpenLayers.Control.LoadingPanel (addin OpenLayers) ; Changement de la méthode Geoportal.Catalogue.getDisplayProjection() en Geoportal.Catalogue.getDisplayProjections(). Elle retourne désormais un tableau de système de référence de coordonnées OpenLayers.Projection ; Ajout des éléments suivant en lecture/écriture pour OpenLayers.Format.WMC : resolutions, nativeresolutions, nativeprojection, maxzoomlevel, minzoomlevel, SRS sur les couches et paramétrage de l'utilisation du service des Server ; Remplacement des derniers appels à $() par OpenLayers.Util.getElement() restant dans l'api causant un boggue au chargement dans SPIP (reporté sur la version 1.0beta3) ; Prise en charge de la saisie des polygones à trous via la sandbox donut polygons; Corrections de boggues : Correction à minima d'un boggue OpenLayers sur la fermeture des popups sous Firefox (reporté sur la version 1.0beta3) ; Correction boggue OpenLayers sur XMLSerializer() pour les butineurs IE : remplacement de this.xmldom par node.xml dans OpenLayers.Format.XML.write(). Geoportal.Catalogue.getDisplayProjections() : compatibilité avec 1.0beta2 rétablie (paramètre territory optionnel) ; Sauvegarde de la visibilité et de l'opacité des couches lors du changement de la carte de base locale / mondiale. Intégration du patch dans la surcharge d'openlayers ; Activation de la suppression des évènements "movestart" et "moveend" lors de la fermeture d'une popup par un "clickout" pour Firefox ;
29 4 ChangeLog 25 Taille de la carte corrigée quand la div de la carte est basée sur une règle CSS ; Clic proche du panneau d'opacité des couches ne provoque plus une désactivation de la navigation ou du zoom ; Geoportal.Control.Panel émet désormais l'évènement "controlactivated" pour les contrôleurs de type OpenLayers.Control.TYPE_TOGGLE ; la méthode OpenLayers.Format.KML.parseAttributes() n'analyse pas correctement une balise quant celle-ci est composée de 2 noeuds fils. Ce boggue apparaît sous Firefox 2/3, pas sous IE 7. La correction consiste à gérer ce cas (OpenLayers ne gérait qu'un ou trois noeuds fils) ; Règles CSS modifiées : retrait de projectioninfocrs ; retrait de gpcoordonneclass ; retrait gpmapcopyclass ; retrait de gpechelleclass ; retrait de gpprojectioninfoclass ; retrait de gpcontrolinformationcontainerclass ; retrait de gpbuttonselectproj ; retrait de gpselectprojections ; remplacement de gplayerdivclass.alternate par gplayerdivclassalternate ; remplacement de gplayerspanclass.notinrange par gplayerspanclassnotinrange ; ajout de olcontrolloadingpanel ; ajout de gpselectunits ; remplacement de gpfloatingdiv* par gpcontrolfloating* ; Documentation : Beaucoup de corrections typographiques ; Geoportal.Catalogue.getDisplayProjections() : ajout du paramètre territory manquant ; Orientée vers les utilisateurs de l'api plutôt que vers les développeurs de celle-ci ; Ajout d'un exemple sur une utilisation avancée de l'api ; Ajout des classes et méthodes surchargées d' OpenLayers et PROJ4JS /11/2008 (1.0beta3) : Utilisation d'openlayers 2.7 : affichage Mac possible via le support intégré de Canvas ; Support du changement de projection lors du passage carte par territoire à la carte mondiale ; Masquage/Démasquage de l'onglet contenant le retrait d'une couche, la modification de la transparence et le zoom sur l'emprise ; Ajout de l'écriture du format Géoconcept export (expérimental) ; Amélioration du support du format GPX en lecture/écriture (distinct de celui d'openlayers) ; Ajout d'un composant d'édition intégré au gestionnaire de couches ; Ajout d'un composant d'ouverture de couches vectorielles (optionnel) ; Ajout de deux exemples avancés (premières versions) :
30 4 ChangeLog Synchronisation formulaire HTML et carte pour des données ponctuelles ; Édition de ponctuels, linéaires et surfaciques. Corrections de boggues : Noms longs des couches mal affichés dans le gestionnaire ; Réactivation de l'évènement unload pour Firefox ; Panneaux complexes sous IE /09/2008 (1.0beta3 intermédiaire) : Amélioration du cache Géoportail (changement des résolutions) ; Suppression des dépendances "Prototype", "Script.aculo.us" et "Archetype" : récriture des contrôleurs de zoom et de transparence ; Ajout de méthodes de OpenLayers.Map dans Geoportal.Map pour faciliter le développement ; Mise en CSS de nombreux éléments de l'interface ; Mise en place d'une nouvelle gestion des droits : abandon de l'utilisation d'un timer ; utilisation des évènements clients. Support du changement d'affichage des systèmes de références de coordonnées ; Ajout des boutons "Retirer la couche" et "Zoomer sur l'emprise de la couche" dans le gestionnaire ; Documentation : Basée sur NaturalDocs /07/2008 (1.0beta2): Utilisation d'openlayers 2.6 ; Amélioration de la gestion des popups KML en version 1.0beta1 ; Compatibilité de la version 1.0beta1 avec Firefox 3 ; Documentation : Mise à disposition des sources de l'api sur le site de documentation /06/2008 (1.0beta1): Passage en licence BSD des sources de l'api ; Amélioration du support des reprojections des KML pour les géométries multiples ; Support préliminaire du format GPX (trace GPS) ; Support de la reprojection en géographique des données du Géoportail ; Corrections de boggues mineures. Documentation : Ajout de la documentation OpenLayers 2.5 et des exemples OpenLayers 2.5 ; Amélioration de la documentation Javascript de l'api /04/2008 (1.0beta): Livraison initiale de l'api Géoportail basée sur OpenLayers
31 5 Prerequisites 27 5 Prerequisites Prérequis Les informations contenues dans la présente documentation nécessitent à minima la connaissance d'un certain nombre de technologies liées à l'information géographique et de l'information Les langages de programmation Les technologies utilisées par les APIS Web 2D relèvent principalement des mécanismes de l'internet. Les flux d'informations proviennent de différents serveurs qui amènent l'information au client Web privilégié : le butineur. L'API Web 2D en JavaScript utilise 3 technologies de base : HTML (HyperText Markup Language) : langage de balisage qui permet de mettre en forme et de gérer le contenu des pages web. CSS (Cascading Style Sheet) : langage qui gère l'ergonomie de la page web (agencement, positionnement, couleurs, taille du texte ). JavaScript [1] : langage de script côté client reposant sur les normes ECMAScript. L'API Web 2D en JavaScript et ses composants (comme OpenLayers) l'utilisent. L'API Web 2D en Flex s'appuie sur deux langages: MXML: dérivé du XML, c'est un langage de balises qui gère l'affichage de l'application et la disposition des composants graphiques. ActionScript 3 [2] : repose sur les normes ECMAScript. C'est un langage de script orienté objet qui gère les données à afficher, les évènements et les interactions utilisateur. Un projet Flex, une fois compilé, permet de générer un fichier.swf pouvant être lu par le lecteur Adobe Flash Player Les standards Les services géographiques utilisent ces standards ou normes de l'iso ( International Organization for Standardization), de l'ogc ( Open Geospatial Consortium) et de l'osgeo ( Fondation Géospatiale Open Source). Il il s'agit donc d'en connaître l'existence et les fonctionnements : WMS (Web Map Service) : la cartographie par le réseau, ce service fournit principalement des images (mais pas uniquement). Bien que le butineur bénéficie au travers de l'api de ce type de services, un SIG est aussi potentiellement un client WMS ; WMTS (Web Map Tile Service) : La norme WMTS est proche de celle du WMS. Mais au lieu de générer une image à chaque requête comme dans le cas du WMS, le WMTS permettra de renvoyer de petites images pré-générées (tuiles) ou de réutiliser des images précédemment créées pour une même requête (cache) ; WFS (Web Feature Service) : à l'instar d'une connexion à une base de données, un tel service permet d'accéder à des bases de données géographiques par le réseau en utilisant principalement le format GML (Geographic Markup Language). Le butineur bénéficie au travers de l'api de ce type de service, mais un SIG est aussi potentiellement un client WFS ; KML (Keyhole Markup Language) : ce langage est en cours d'adoption entre l'ogc et Google. Il est très utilisé dans Google Earth. Il est supporté par OpenLayers ; GPX (GPS exchange Format) : ce langage supporté par l'api permet de récupérer des traces GPS et de les afficher dans l'api.
32 5 Prerequisites 28 WMS-C (Web Map Service -Cached ) : en l'absence d'un standard ISO/OGC, le Géoportail a mis en oeuvre un service de cartographie tuilé pour servir à hautes performances les données spécifié par MetaCarta. Ceci pourrait changer quand un standard émergera cette demande à commentaires de l'ogc ; Les bibliothèques cartographiques OpenLayers version 2 : bibliothèque cartographique en JavaScript. L'API Web 2D JavaScript repose sur elle. OpenScales : bibliothèque cartographique basée sur les technologies ActionScript3 / Flex / AIR. L'API Flash repose sur elle. N1 JavaScript est une marque déposée par Sun MicroSystems Inc. N2 ActionScript est une marque déposée par Adobe Inc.
33 6 Overview 29 6 Overview Premiers pas Obtention d'une clé API Afin d'obtenir une clé de développement API, il faut passer par les étapes suivantes : s'inscrire sur le site de l'api Géoportail Suite à l'inscription, un courriel de confirmation est envoyé. Une fois confirmé, il suffit de se connecter. ajouter un contrat Saisissez le titre du contrat, le type de clé selon l'utilisation et les ressources dont vous avez besoin. Une fois le contrat créé, la clef est générée et un code source exemple de démarrage est affiché Affichage de la première fenêtre cartographique Récupérez les informations de votre contrat (notamment la clé et le code à insérer) dans la rubrique "Mon compte". Copier/coller ce code source dans un fichier nommé "mapageapi.html" Installation du serveur Web Afin d'utiliser les APIs web, il est nécessaire d'équiper votre poste d'un serveur HTTP. Une adresse de type est en effet nécessaire pour franchir la couche de sécurité de la plateforme Géoportail et accéder à ses ressources. Les clefs de développement délivrées par le site api.ign.fr sont limitées à une utilisation derrière le nom de domaine "localhost". De nombreux serveurs HTTP libres et gratuits sont disponibles aujourd'hui ( Apache, lighttpd,...) et peuvent etre utilisés pour cela. Une fois placée dans l'arborescence servie par votre serveur, votre page est accessible dans votre navigateur à l'adresse
34 6 Overview 30 Visualisation de la page Pare-feux personnels Il est important de noter que la présence d'un pare-feu actif sur la machine peut provoquer l'affichage d'une carte vide ou "zébrée". Dans ce cas, il faut autoriser les flux en provenance de l'infrastructure du Géoportail de passer votre pare-feu : *.ign.fr et *.geoportail.gouv.fr devraient donc être autorisés dans les règles du pare-feu.
35 7 Geoportal layers 31 7 Geoportal layers Les couches Géoportail Noms harmonisés des ressources Géoportail Types de services Résolutions du Géoportail Territoires du Géoportail Noms harmonisés des ressources Géoportail Les couches principales sont identifiées par les codes suivants : Pour le service WMTS géoportail ( : Code Nom ADMINISTRATIVEUNITS.BOUNDARIES Limites administratives AREAMANAGEMENT.ZFU Zones franches urbaines AREAMANAGEMENT.ZUS Zones urbaines sensibles BUILDINGS.BUILDINGS Bâtiments CADASTRALPARCELS.PARCELS Parcelles cadastrales ELEVATION.ELEVATIONGRIDCOVERAGE MNT BDAlti V1 ELEVATION.LEVEL0 Trait de côte Histolitt ELEVATION.SLOPES Carte du relief ELEVATION.SLOPES.HIGHRES Litto3D GEOGRAPHICALGRIDSYSTEMS.1900TYPEMAPS Carte topographique - environs de Paris (1906) GEOGRAPHICALGRIDSYSTEMS.ADMINISTRATIVEUNITS France administrative GEOGRAPHICALGRIDSYSTEMS.BONNE Guyane française (1780) GEOGRAPHICALGRIDSYSTEMS.CASSINI Carte de Cassini (XVIIIe siècle) GEOGRAPHICALGRIDSYSTEMS.COASTALMAPS Carte littorale (SHOM/IGN) GEOGRAPHICALGRIDSYSTEMS.ETATMAJOR10 Carte de l'état-major - environs de Paris ( ) GEOGRAPHICALGRIDSYSTEMS.ETATMAJOR40 Carte de l'état-major ( ) GEOGRAPHICALGRIDSYSTEMS.FRANCERASTER Carte France Raster GEOGRAPHICALGRIDSYSTEMS.LEHAVRE1975 Cartographie Le Havre 1975 GEOGRAPHICALGRIDSYSTEMS.LEHAVRE1979 Cartographie Le Havre 1979 GEOGRAPHICALGRIDSYSTEMS.MAPS Cartes IGN GEOGRAPHICALGRIDSYSTEMS.MAPS.OVERVIEWCarte Mondiale pour la mini-vue
36 7 Geoportal layers 32 GEOGRAPHICALGRIDSYSTEMS.MAPS.SCANEXPRESS.CLASSIQUE PYRAMIDE SCAN EXPRESS CLASSIQUE GEOGRAPHICALGRIDSYSTEMS.MAPS.SCANEXPRESS.STANDARD PYRAMIDE SCAN EXPRESS STANDARD GEOGRAPHICALGRIDSYSTEMS.MAPS.SCANOACI carte OACI-VFR 2014 GEOGRAPHICALGRIDSYSTEMS.PLANIGN Plan IGN GEOGRAPHICALNAMES.NAMES Dénominations géographiques HABITATSANSBIOTOPES.ZICO Zones d'importance pour la conservation des oiseaux HYDROGRAPHY.HYDROGRAPHY Hydrographie LANDCOVER.CORINELANDCOVER Corine Land Cover 2006 LANDCOVER.FORESTAREAS Régions forestières nationales LANDCOVER.FORESTCOVER Forêt LANDCOVER.FORESTINVENTORY.V1 Carte forestière v1 ( ) LANDCOVER.FORESTINVENTORY.V2 Carte forestière (v2 : 2006-) LANDCOVER.SYLVOECOREGIONS Sylvoécorégions LANDCOVER.SYLVOECOREGIONS.ALLUVIUM Sylvoécorégions d'alluvions récentes LANDUSE.AGRICULTURE2007 Registre parcellaire graphique (RPG) 2007 LANDUSE.AGRICULTURE2008 Registre parcellaire graphique (RPG) 2008 LANDUSE.AGRICULTURE2009 Registre parcellaire graphique (RPG) 2009 LANDUSE.AGRICULTURE2010 Registre parcellaire graphique (RPG) 2010 LANDUSE.AGRICULTURE2011 Registre parcellaire graphique (RPG) 2011 LANDUSE.AGRICULTURE2012 Registre parcellaire graphique (RPG) 2012 Pour le service WMS raster géoportail ( : Code Nom ELEVATION.ELEVATIONGRIDCOVERAGE MNT BDAlti V1 GEOGRAPHICALGRIDSYSTEMS.CASSINI Carte de Cassini (XVIIIe siècle) GEOGRAPHICALGRIDSYSTEMS.ETATMAJOR10 Carte de l'état-major - environs de Paris ( ) GEOGRAPHICALGRIDSYSTEMS.ETATMAJOR40 Carte de l'état-major ( ) GEOGRAPHICALGRIDSYSTEMS.MAPS Cartes IGN GEOGRAPHICALGRIDSYSTEMS.MAPS.SCANEXPRESS.CLASSIQUE PYRAMIDE SCAN EXPRESS CLASSIQUE GEOGRAPHICALGRIDSYSTEMS.MAPS.SCANEXPRESS.STANDARD PYRAMIDE SCAN EXPRESS STANDARD GEOGRAPHICALGRIDSYSTEMS.PLANIGN Plan IGN HR.ORTHOIMAGERY.ORTHOPHOTOS BDORTHOHR WM LANDUSE.AGRICULTURE2007 Registre parcellaire graphique (RPG) 2007
37 7 Geoportal layers 33 LANDUSE.AGRICULTURE2008 Registre parcellaire graphique (RPG) 2008 LANDUSE.AGRICULTURE2009 Registre parcellaire graphique (RPG) 2009 LANDUSE.AGRICULTURE2010 Registre parcellaire graphique (RPG) 2010 LANDUSE.AGRICULTURE2011 Registre parcellaire graphique (RPG) 2011 LANDUSE.AGRICULTURE2012 Registre parcellaire graphique (RPG) 2012 ORTHOIMAGERY.ORTHOPHOTOS Photographies aériennes ORTHOIMAGERY.ORTHOPHOTOS.BDORTHO BDORTHO WM - D ORTHOIMAGERY.ORTHOPHOTOS.PARIS Paris haute résolution Pour le service WMS vecteur géoportail ( : Code (ter=territoire, srs=projection) Nom BDADRESSEPOINTADRESSE_BDD_ter_srs BDAdresse Point Adresse BDADRESSEROUTESADRESSE_BDD_ter_srs BDAdresse Routes Adresse BDCARTO-ADMINISTRATIF_ter_srs BDCarto thème ADMINISTRATIF BDCARTO-EQUIPEMENT_ter_srs BDCarto thème EQUIPEMENT BDCARTO-HABILLAGE_ter_srs BDCarto thème HABILLAGE BDCARTO-HYDROGRAPHIE_ter_srs BDCarto thème HYDRAGRAPHIE BDCARTO-RESEAU_ROUTIER_ter_srs BDCarto thème RESEAU ROUTIER BDGEODESIQUE-RGP_BDD-POI_WLD Réseaux Géodésiques BDGEODESIQUE-RN_BDD-POI_WLD BDGEODESIQUE-SITE-RBF_BDD-POI_WLD BDGEODESIQUE-SITE-RDF_BDDPOI_WLD BDGEODESIQUE-TRIPLET_BDD-POI_WLD BDPARCELLAIREVECTEUR_WLD_BDD_WGS84G BDParcellaire Vecteur BDTOPO-ADMINISTRATIF_ter_srs BDTopo Thème Adminstratif BDTOPO-BATI_ter_srs BDTopo Thème Bati BDTOPO-HYDROGRAPHIE_ter_srs BDTopo Thème Hydrographie BDTOPO-OROGRAPHIE_ter_srs BDTopo Thème Orographie BDTOPO-RESEAU_ROUTIER_ter_srs BDTopo Thème Réseau Routier BDTOPO-TRANSPORT_ENERGIE_ter_srs BDTopo Thème Transport d'énergie BDTOPOTRANSPORT_VOIES_FERREES_ter_srs BDTopo Thème Voies Ferrées BDTOPO-VEGETATION_ter_srs BDTopo Thème Végétation BDTOPO-ZONE-ACTIVITES_ter_srs BDTopo Thème Zones d'activités Pour le service WMS raster inspire ( :
38 7 Geoportal layers 34 Code Thème INSPIRE CP.CadastralParcel I.6. Parcelles cadastrales EL.GridCoverage II.1. Altitude OI.OrthoimageCoverage II.3. Ortho-imagerie OI.OrthoimageCoverage.HR II.3. Ortho-imagerie Pour le service WMS vecteur inspire ( : Code Thème INSPIRE AD.Address I.5. Adresses AU.AdministrativeUnit I.4. Unités administratives BU.Building III.2. Bâtiments GN.GeographicalNames I.3. Dénominations géographiques HY.PhysicalWaters I.8. Hydrographie TN.AirTransportNetwork I.7. Réseaux de transports (Aérien) TN.RailTransportNetwork I.7. Réseaux de transports (Ferré) TN.RoadTransportNetwork I.7. Réseaux de transports (Routier) US.UtilityAndGovernmentalServices III.6. Services d'utilité publique et services publics Les ressources pour les moteurs de recherches sont identifiées par les codes suivants : Code Nom StreetAddress PositionOfInterest CadastralParcel Adresses début-fin sur les tronçons de route Dénominations géographiques Identifiants parcellaires Les codes sont ajoutés/mis à jour avec les mises-à-jour de l'infrastructure Géoportail. Pour rester informés sur les codes, il faut récupérer les capacités des services ad hoc (e.g., les capacités du WMTS sont là, les capacités du WMS raster sont là et celles du WMS vecteur sont là). L'accès à ces différentes couches est conditionné par le type de contrat souscrit auprès de l'ign Types de services L'API permet d'accéder aux types de services suivants : Type Service d'accès URLs des services WMTS WMTS WMTS du Géoportail WMS WMS N/A WMS WMS WMS Raster du Géoportail WMS Raster INSPIRE
39 7 Geoportal layers 35 WMS WMS WMS Vecteur du Géoportail WMS Vecteur INSPIRE WFS WFS N/A WFS WFS N/A WFS WFS WFS du Géoportail WFS INSPIRE OLS OLS N/A OLS OLS Recherche-Géocodage OpenLS par adresses Recherche-Géocodage OpenLS par noms de lieux Recherche-Géocodage OpenLS par identifiants parcellaires WMS-C N/A WMSC Pour connaître les données auxquelles vous avez accès, vous pouvez utiliser ce lien en remplaçant VOTRE_CLEF_API par votre clé API Résolutions du Géoportail L'API supporte 21 niveaux de zoom. Les niveaux de zoom sont utilisés par l'api via les méthodes setcenter*(). Les tableaux ci-dessous indiquent pour les niveaux de zooms actifs la correspondance avec les échelles : Résolutions et échelles en Web Mercator Sphérique (EPSG:3857) : système de référence par défaut du Géoportail Zoom Résolution (m/ px) Résolution géographique (deg/px) : : : : : : : : : : : : : : : Échelle approximative
40 7 Geoportal layers : : : : : : : 267 Résolutions et échelles en Lambert 93 (EPSG:2154) Zoom Résolution (m/px) Échelle approximative : : : : : : : : : : : : : : : : : : : : : : 178 Les résolutions de la couche peuvent être différentes en nombre et en valeur, la classe Geoportal.Layer.Grid se charge d'appeler la résolution la plus proche de celle du Géoportail pour permettre la superposition Territoires du Géoportail Le nom du territoire est un code ISO3166 alpha-3 :
41 7 Geoportal layers 37 Codes standards de l'iso 3166 alpha-3 du territoire. Les valeurs possibles sont : ATF Terres Arctiques Australes (non encore en ligne) FXX France métropolitaine GLP Guadeloupe GUF Guyane MTQ Martinique MYT Mayotte NCL Nouvelle Calédonie PYF Polynésie Française REU Réunion SPM Saint Pierre et Miquelon WLF Wallis et Futuna Les valeurs suivantes sont des extensions de l'iso 3166 alpha-3 pour le Géoportail : ANF Antilles Française (GLP, MTQ, SMA, SBA) CRZ Crozet EUE Union Européenne KER Kerguelen SBA Saint-Barthélémy SMA Saint-Martin ASP Saint-Paul-Amsterdam (non encore en ligne) WLD La Terre Par défaut, l'api s'initialise avec le territoire "FXX".
42 8 Coordinates Reference Systems 38 8 Coordinates Reference Systems Systèmes de référence de coordonnées Projection des caches Géoportail Les caches du Géoportail ont été générés en Web Mercator Sphérique (EPSG:3857). Cette projection est utilisée sur tous les territoires. Les APIs sont en mesure de superposer les flux plate-carré avec du Web Mercator Sphérique sans faire de reprojection Systèmes de référence de coordonnées supportés par les APIs L'API du Géoportail supporte les systèmes de référence de coordonnées définis par les standards OGC. On trouvera donc aussi bien des systèmes EPSG que des systèmes basés sur le catalogue de l'ign. Ce catalogue fournit chaque fois que c'est possible la correspondance entre un code IGNF et un code EPSG. Les systèmes de référence de coordonnées utilisés dépendent du territoire accédé, ainsi que du service utilisé (par défaut, les coordonnées de la souris peuvent être dans l'un quelconque des systèmes de référence de coordonnées supportés sauf mention contraire explicite). Les principaux systèmes de référence de coordonnées sont : Système de Nom du territoire coordonnées Services Support type API France métropolitaine WFS, WMS WMTS toutes toutes étendue seulement toutes Guadeloupe Saint-Bartélémy Saint-Martin IGNF:WGS84RRAFGEO WFS, IGNF:UTM20W84GUAD WMS IGNF:GUADFM49U20 EPSG:3857 WMTS toutes toutes étendue seulement toutes GUF Guyane IGNF:RGFG95GEO WFS, IGNF:UTM22RGFG95 WMS IGNF:CSG67UTM22 EPSG:3857 WMTS toutes toutes étendue seulement toutes MTQ Martinique IGNF:WGS84RRAFGEO WFS, IGNF:UTM20W84MART WMS IGNF:MART38UTM20 EPSG:3857 WMTS toutes toutes étendue seulement toutes MYT Mayotte Juan de Nova Glorieuses Tromelin IGNF:RGM04GEO WFS, IGNF:RGM04UTM38SWMS IGNF:MAYO50UTM38S EPSG:3857 WMTS toutes toutes étendue seulement toutes Code FXX GLP SBA SMA IGNF:RGF93G IGNF:LAMB93 IGNF:LAMBE EPSG:3857
43 8 Coordinates Reference Systems 39 NCL Nouvelle Calédonie IGNF:RGNCGEO WFS, IGNF:RGNCUTM58S WMS IGNF:IGN72UTM58S EPSG:3857 WMTS toutes toutes étendue seulement toutes PYF Polynésie Française IGNF:RGPFGEO WFS, IGNF:RGPFUTM5S WMS IGNF:TAHAAUTM05S EPSG:3857 WMTS toutes toutes étendue seulement toutes REU Iles Basas da India Réunion Europa IGNF:RGR92GEO WFS, IGNF:RGR92UTM40S WMS IGNF:REUN47GAUSSL EPSG:3857 WMTS toutes toutes étendue seulement toutes SPM Saint Pierre et Miquelon IGNF:RGSPM06GEO WFS, IGNF:RGSPM06U21 WMS IGNF:STPM50UTM21 EPSG:3857 WMTS toutes toutes étendue seulement toutes WLF Wallis et Futuna IGNF:WGS84G WFS, IGNF:UTM01SW84 WMS IGNF:WALL78UTM1S EPSG:3857 WMTS toutes toutes étendue seulement toutes CRZ Crozet IGNF:WGS84G WFS, IGNF:UTM39SW84 WMS IGNF:CROZ63UTM39S EPSG:3857 WMTS toutes toutes étendue seulement toutes KER Kerguelen IGNF:WGS84G WFS, IG NF:UTM42SW84 WMS IGNF:KERG62UTM42S EPSG:3857 WMTS toutes toutes étendue seulement toutes ASP Saint-Paul and Amsterdam IGNF:WGS84G IGNF:UTM43SW84 EPSG:3857 WFS, WMS WMTS toutes toutes toutes ATF Dumont d'urville EPSG:3857 WMTS toutes WLD La Terre CRS:84 EPSG:3857 WMTS toutes toutes API Web 2D en Javascript L'API Javascript du Géoportail supporte les systèmes de référence de coordonnées définis au travers du projet PROJ4JS API Web 2D Flash L'API Flash supporte les systèmes de référence de coordonnées définis au travers du projet PROJ4AS, inclus nativement dans OpenScales.
44 9 Controls 40 9 Controls Les différents contrôles: Les contrôles sont des composants qui permettent de dialoguer avec la carte : afficher et réorganiser les couches, déplacer la carte, zoomer... Les contrôles par défaut de la carte: Par défaut, la carte contient plusieurs contrôles permettant de proposer aux utilisateurs des intéractions minimums avec la carte. Name Role Copyright Affiche un copyright pour l'application courante. KeyBoardNavigation Permet aux utilisateurs de déplacer la carte avec le clavier Logo Affiche les logos des fournisseurs des couches affichées sur la carte MouseNavigation Permet aux utilisateurs de déplacer la carte par glisser/déposer et de zoomer avec la molette de la souris PanPanel composant graphique permettant de déplacer la carte à l'aide de boutons PermanentLogo Affiche le logo du Géoportail TermsOfService Affiche un lien vers les conditions d'utilisation du Géoportail ZoomBar Composant graphique permettant de zoomer à l'aide d'un slider Les contrôles existants pouvant être ajoutés à la carte : Name Role DrawingToolbar Composant graphique regroupant un ensemble d'outils de croquis GraphicScale Affiche un étalon de distance ainsi que la valeur d'échelle numérique Graticule Affiche un quadrillage cartographique permettant d'afficher un repère lon/lat LayerCatalog Affiche une liste des couches existantes sur le Géoportail LayerSwicher Affiche l'ensemble des couches contenues dans la carte MeasureToolbar Composant graphique regroupant un ensemble d'outils de mesure MousePosition Affiche les coordonnées de la souris OverviewMap Affiche une minivue synchronisée avec la vue principale
45 9 Controls 41 Moteurs de recherche Composants graphiques permettant d'effectuer des recherches sur des noms de lieux, des adresses ou des parcelles cadastrales Dans cette partie, nous détaillerons le fonctionnement des contrôles suivants: Gestionnaire des couches Barre de croquis Calatogue de couches Moteurs de recherche Gestionnaire des couches Le gestionnaire de couches permet d'afficher l'ensemble des couches contenues dans la carte. On retrouve pour chaque couche les fonctionnalités suivantes: Affichage de la légende et de la description de la couche: Le nom de la couche est systématiquement affiché, sauf si cette couche est marquée comme baselayer (auquel cas, elle n'apparaît jamais dans le gestionnaire de couches pour l'api du Géoportail). Dans le cas des couches du Géoportail, un clic sur le nom de la couche ouvre une nouvelle fenêtre contenant la légende, la description de la couche et, éventuellement donne accès à au plus deux liens : une page web pour télécharger les données quant le lien de téléchargement est indiqué ; une page web pour afficher les métadonnées quant le lien est indiqué Activation d'une couche: Il y a 4 cas d'état d'activation de la couche : la couche est activée et visible à l'échelle courante. la couche est activée, mais plus visible à l'échelle courante : la couche n'est ni activée, ni visible à l'échelle courante :
46 9 Controls la couche n'est pas activée, mais potentiellement visible à l'échelle courante : Ordre d'affichage des couches: Changer l'ordre d'affichage de la couche est possible en cliquant sur les flèches à droite Options supplémentaires: Lors d'un clic sur la roue crantée, le gestionnaire affiche ceci : Un clic sur l'icône "loupe" effectue un zoom arrière sur l'emprise totale de la couche. Un clic sur l'icône "poubelle" retire définitivement la couche du gestionnaire ; Le glissement de la réglette permet de modifier la transparence de la couche ; Barre de croquis Le contrôle outils de croquis fait partie de l'api étendue. Par défaut, la barre d'outils de croquis est dans le mode multiple (chaque barre d'outils est affichée dans le gestionnaire de couches en dessous du nom de la couche vectorielle). La barre d'outils peut également être utilsée en mode unique (une barre d'outils unique qui intéragit avec une couche vecteur active): 42
47 9 Controls Pour changer de couche vecteur, il faut sélectionner la couche en cliquant dessus au niveau du gestionnaire de couches. Les outils de croquis opèrent désormais sur la couche sélectionnée. 43
48 9 Controls Calatogue de couches Le catalogue affiche les couches autorisées pour les clés de l'utilisateur. (a) Une couche du catalogue peut être ajoutée à la carte (et au gestionnaire de couches) à l'aide de l'icône "plus" (verte). Le catalogue liste toutes les couches disponibles pour les clés de l'utilisateur. Si une couche a une projection incompatible avec celle de la carte, ou si une couche a déjà été ajoutée (présente dans le gestionnaire de couches), ou si une couche n'est pas disponible sur le territoire courant, la couche ne peut être ajoutée et l'icône "plus" est désactivée (grisée). (b) Le nom de la couche est toujours affiché. En cliquant sur le nom de la couche (b), une fenêtre d'informations s'ouvre pour afficher la description de la couche. (c) Un bouton permet de filtrer les couches du catalogue : pour afficher dans le catalogue les couches sur l'étendue courante, rechercher une couche par son nom, filtrer les couches selon des mots clés, des thématiques ou des dates. (d) Un bouton permet d'annuler un précédent filtre et donc de lister toutes les couches disponibles pour les clés de l'utilisateur.
49 9 Controls Moteurs de recherche L'API du Géoportail propose deux moteurs de recherche : un moteur de recherche par lieux basé sur la BD NYME ; un moteur de recherche par adresses basé sur ROUTE ADRESSE. Pour avoir accès à ces moteurs, le contrat API doit contenir les couches idiones (Cf. "Créer un nouveau contrat"): recherche par lieux : Toponymes (PositionOfInterest) ; recherche par adresses : Adresses (StreetAddress) Recherche par lieux : L'API Javascript propose un composant qui permet d'interagir avec le service de recherche par lieux. Un clic sur le picto de recherche par lieux provoque l'apparition du formulaire de recherche : Le champ Lieu permet d'entrer le lieu recherché! Un clic sur le bouton Rechercher lance le moteur de recherche: Les résultats sont affichés dans le formulaire : Un clic sur un résultat de recherche centre la visualisation sur le lieu trouvé en fermant le formulaire de recherche. Un Cntrl-clic sur un résultat de recherche centre la visualisation sur le lieu trouvé en ne fermant pas le formulaire de recherche. Une option permet d'activer l'auto-complétion pour afficher une liste de suggestions à l'utilisateur lors de la saisie du lieu :
50 9 Controls Recherche par adresses : L'API Javascript propose un composant qui permet d'interagir avec le service de recherche par adresses. Un clic sur le picto de recherche par adreses provoque l'apparition du formulaire de recherche : Le champ Rue permet d'entrer l'adresse à la rue, le champ Ville permet d'indiquer la localité. Un clic sur le bouton Rechercher lance le moteur de recherche : Les résultats sont affichés dans le formulaire : Un clic sur un résultat de recherche centre la visualisation sur l'adresse trouvée en fermant le formulaire de recherche. Un Cntrl-clic sur un résultat de recherche centre la visualisation sur l'adresse trouvée en ne fermant pas le formulaire de recherche. Une cible repère l'adresse en question; au survol de la cible, une fiche contenant les informations sur l'adresse apparaît.
51 9 Controls 47 Un Cntrl-Alt-clic sur un résultat de recherche qui est un ville relance la recherche en mettant la ville et son code pastal sélectionnés dans la nouvelle recherche. Une option permet d'activer l'auto-complétion afin d'afficher une liste de suggestions à l'utilisateur lors de la saisie d'une adresse. Lorsque l'auto-complétion est activée, les champs code postal et ville n'apparaissent pas, l'utilisateur saisit l'adresse directement dans le champs unique : Recherche par parcelles cadastrales : L'API Javascript propose un composant qui permet d'interagir avec le service de recherche par parcelles cadastrales. Un clic sur le picto de recherche par parcelles provoque l'apparition du formulaire de recherche : La parcelle cadastrale doit être renseignée de la manière suivante : champ "Département" : le code du département (2 chiffres) ; champ "Commune INSEE" : le code INSEE de la commune (3 chiffres) ; champ "Commune absorbée INSEE" : le code commune absorbée INSEE (3 chiffres, souvent égaux à '000') ; champ "Section" : la section (2 chiffres ou lettres, complétés à droite par des zéros) ;
52 9 Controls 48 champ "Numéro" : le numéro de parcelle (4 chiffres ou lettres, complétés à droite par des zéros) Un clic sur le bouton "Rechercher" lance le moteur de recherche. Les résultats sont affichés dans le formulaire. Un clic sur un résultat de recherche centre la visualisation sur la parcelle trouvée en fermant le formulaire de recherche Recherche inversée : L'API Javascript propose un composant qui permet d'interagir avec le service de recherche inversée. Un clic sur le picto de recherche inversée provoque l'apparition du formulaire de recherche : Le champ Longitude permet d'entrer une longitude, le champ Latitude permet d'indiquer la latitude voulue. Ces champs permettent de recentrer la carte pour effectuer une nouvelle recherche sur une coordonnée. Ces champs sont mis à jour lors d'un glisser-déposer du curseur (positionné au centre de la carte).
53 9 Controls 49 La recherche peut être restreinte à l'intérieur d'un cercle en sélectionnant l'option Limiter la recherche : Dessiner un cercle. Il est alors possible de dessiner un cercle sur la carte et ainsi d'effectuer une recherche inversée dans ce cercle. La recherche peut être restreinte à l'intérieur d'une emprise en sélectionnant l'option Limiter la recherche : Dessiner une emprise. Il est alors possible de dessiner un rectangle sur la carte et ainsi d'effectuer une recherche inversée dans ce rectangle. L'option Recherche d'adresse permet de spécifier que l'on souhaite rechercher des lieux de type adresse. L'option Recherche de toponyme permet de spécifier que l'on souhaite rechercher des lieux de type toponyme. Un clic sur le bouton Rechercher lance le moteur de recherche : Les résultats sont affichés sur la carte. Au survol d'un repère, une fiche contenant les informations sur le lieu apparaît :
54 9 Controls 50
55 10 Using the loader Using the loader Utilisation de l'api Haut Niveau Premiers pas Initialisation de la carte Paramétrer la carte après son chargement L'API Haut Niveau est une bibliothèque javascript qui permet d'initialiser une visualisation cartographique reposant sur un client de visualisation Flash, 3D ou javascript, avec la même syntaxe. Elle comprend une fonction de chargement, appelée "loader", qui permet d'initiliser la carte et qui retourne un objet InterfaceViewer décrivant cette carte avec lequel on peut interagir à l'aide de méthodes dédiées. Cette partie présente les différentes étapes permettant le chargement d'un client de visualisation 2D JavaScript, 2D Flash ou 3D en utilisant l'api Haut Niveau. Nous verrons comment initialiser la carte en précisant par exemple les couches Géoportail que l'on souhaite ajouter ainsi que leur opacité. Nous verrons également comment modifier ces paramètres après le chargement de la carte, lors de l'ajout d'un bouton externe à la carte permettant de modifier le zoom par exemple Premiers pas Ajout de la balise qui va contenir la carte Placer dans le corps de la page HTML une balise DIV dont l'identifiant et le style sont renseignés comme dans le code qui suit;
56 10 Using the loader Import du script de l'api L API du Géoportail est disponible sous plusieurs déclinaisons, que l on peut choisir en ajoutant une balise script. On considère ici que l'api utilisée est la version Javascript standard (Geoportal.js): Si vous utilisiez l'api Javascript minimale, chargez la bibliothèque GeoportalMin.js. Si vous utilisiez l'api Javascript étendue, chargez la bibliothèque GeoportalExtended.js. Si vous utilisiez l'api flash, chargez la bibliothèque GeoportalFlash.js. Si vous utilisiez l'api mobile, chargez la bibliothèque GeoportalMobile.js. Si vous utilisiez l'api 3D, chargez la bibliothèque Geoportal3D.js. NB: Si vous utilisez l'api Flash, téléchargez le fichier Geoportail-Flash-Viewers.zip décompressez le et placez les viewers dans la même arborescence que votre page HTML Chargement de la carte: Pour afficher la carte une fois notre page html chargée, utiliser l'évènement JavaScript "onload" ou n'importe quel autre moyen mis à disposition par d'autres environnements. Exécuter dedans la méthode Geoportal.load ( aussi appelée loader) qui va initialiser la carte. window.onload=function() { Geoportal.load( div, key, pos, zoom, options ); } Le loader insère et configure le client de visualisation (aussi appelé viewer) dans la page HTML en fonction des paramètres fournis par l'utilisateur: div: l'identifiant de la div qui va contenir la carte key: un tableau contenant les clés API permettant l'accès aux services de l'ign pos: Un objet contenant la position du centre de la carte zoom: un entier correspondant au niveau de zoom souhaité, allant de 0 (échelle monde entier) à 21 (échelle rue).
57 10 Using the loader 53 options: un objet contenant l'ensemble des paramètres obligatoires ou optionnels permettant de configurer le viewer. Le code qui suit montre comment charger un viewer 2D JavaScript: contenu dans la div dont l'identifiant est "viewerdiv" Centré sur les coordonnées De niveau de zoom 15 Pour charger un autre type de viewer, ajouter l'option 'type' aux options du loader ( sans oublier de charger le script adapté): { //Options du loader // type :type de viewer souhaité parmi les suivants : 'flash', 'js', '3d' ('js' par défaut) type : 'flash' type : '3d' }
58 10 Using the loader Initialisation de la carte Modification du centre de visualisation Si le développeur ne spécifie pas de centre, la carte est centrée sur des coordonnées par défaut (Paris par exemple). center : instance de la classe OpenLayers.LonLat avec les coordonnées (longitude, latitude) exprimées en WGS84 ; { // centre de la carte center:new OpenLayers.LonLat( , ) } lon : longitude en WGS84 lat : latitude en WGS84 Ces deux paramètres longitude et latitude peuvent être : soit exprimés en degrés décimaux (Number); soit exprimés en degrés sexagésimaux (String); Ainsi, pour se centrer sur le marégraphe de Marseille : { // centre de la carte en degrés sexagésimaux lon: "5d21'13,62161E", lat: "43 16' N" }; { // centre de la carte en degrés décimaux lon: , lat: }; place : Le nom de la position souhaitée ; { // centre de la carte place:"marseille" }; address : L'adresse souhaitée, rue,code postal,ville ; { // centre de la carte address:'73 avenue de Paris, 94165, Saint-Mandé Cedex' }; geolocate : booléen. true si l'on souhaite utiliser la géolocalisation ; { // centre de la carte geolocate:true }
59 10 Using the loader Modification du label et du texte descriptif { //Options du loader //label: titre de la popup label:'smne Saint-Mandé - IGN', //description: description de la popup s'affichant au centre du viewer description:'voir la fiche de la station du réseau GNSS permanent <a href=" } Modification des fonds de carte Géoportail chargés par défaut Selon le viewer chargé (2D Javascript, 2D Flash ou 3D), l'api charge par défaut des couches Géoportail suivantes: 2D Javascript: les couches orthophotos et cartes scannées 2D Flash: les couches orthophotos et parcelles cadastrales Pour ajouter les autres couches auxquelles votre licence vous donne l'accès, il suffit d'ajouter au loader l'option layers qui est un objet contenant la liste des identifiants des couches: { //Options du loader //layers: liste des identifiants des couches géoportail à utiliser layers:['orthoimagery.orthophotos','geographicalgridsystems.maps','administrativeunits.boundaries'] } Pour modifier les options d'affichage par défaut de ces couches comme la transparence, ajouter au loader l'option layersoptions: { //Options du loader layers:['orthoimagery.orthophotos','geographicalgridsystems.maps',administrativeunits.boundaries], //layersoptions: options liées aux couches géoportail: les noms des couches sont les clefs qui pointent layersoptions:{ 'ADMINISTRATIVEUNITS.BOUNDARIES':{ visibility:true, opacity:0.7 } } } Modification du type de viewer par défaut de l'api 2D Javascript Par défaut, c'est le viewer simple qui est utilisé: la carte ne contient aucun panneau et les déplacements ainsi que les zooms sont possibles via la souris. Il existe deux autres types de viewers : Default : carte de grande taille avec tous les panneaux visibles (gestionnaire de couche, boîte à outils et panneau d'information); { //Options du loader viewerclass: Geoportal.Viewer.Default } Standard : Même que le default sauf que le premier et le dernier panneau sont à l'extérieur de la carte.
60 10 Using the loader Modification du fichier.swf utilisé pour charger le viewer 2D Flash Pour modifier le fichier swf utilisé, ajouter au loader l'option viewerclass, avec pour valeur le nom du fichier swf sans son extension : { //Options du loader... viewerclass: 'nouveaufichier' } Modification du thème de la carte Ajouter aux options du loader l'option theme: { // Options du loader // theme: objet contenant les urls des CSS disponibles, leur identifiant, ainsi qu'optionnellement le theme:{name:'black',styles:[{css:' } Ajout / suppression de composants Ajouter aux options du loader l'option controlsoptions: { // Options du loader //controlsoptions : liste des composants à ajouter/modifier. Cet objet est composé, pour chaque compo controlsoptions:{ { nomcomposant1: { nompropriété1:valeur, nompropriété2:valeur,... } }, { nomcomposant2: { nompropriété1:valeur, nompropriété2:valeur,... } },... } } Autres options { // Options du loader // language : La langue de l'application définie par deux caractères IETF 4646 language : 'EN', //displayprojection : La projection utilisée pour l'affichage (uniquement pour les viewers 2D) displayprojection : 'EPSG:4326', //proxyurl : L'URL du proxy à utiliser proxyurl : '../proxy.php' }
61 10 Using the loader Ajout de couches métier Ajouter aux options du loader l'option overlays: { //Options du loader //overlays: liste des couches à ajouter. Cet objet est composé, pour chaque protocole, d'un tableau d overlays:{ // Cas de services "WMS", "WMTS", "WFS" ou "GEORSS" 'WMS':[{name:'Nom_de_la_couche', url:'urlofservice', {name:'nom_de_la_couche', url:'urlofservice', ], // Cas de fichiers "KML", "GPX" ou "OSM" 'KML':[{name:'Nom_de_la_couche', url:'urlofoverlay', {name:'nom_de_la_couche', url:'urlofoverlay', ],... options:{params:{paramètres_service}, option options:{params:{paramètres_service}, option options:{params:{paramètres_couche}, options options:{params:{paramètres_couche}, options } } Paramètres_service :Objet contenant les informations nécessaires pour paramétrer le service comme les noms de couches à ajouter ou le format de l'image retournée dans le cas du WMS. Paramètres_popup :Objet optionnel contenant les informations nécessaires pour affiner le comportement des popups associées à une couche. Paramètres_couche :Objet contenant les informations nécessaires pour affiner le comportement d'une couche. Le détail de ces paramètres se trouve ici. Exemple d'ajout d'une couche KML, GPX, WMS, WFS Gestion des évènements de la carte Ajouter au loader les options suivantes: { // Options du loader onview: a pour valeur le nom de la fonction qui sera declanchée une fois le viewer chargé et configur onbeforeview: a pour valeur le nom de la fonction qui sera declanchée avant le chargement du viewer } Paramétrer la carte après son chargement Après l'exécution du loader, ce dernier charge le viewer et crée un objet JavaScript nommé interfaceviewer: var iv=null; window.onload=function() { iv=geoportal.load( div, key, pos, zoom, options ); } L'interfaceViewer contient un ensemble de méthodes permettant de modifier le viewer après son chargement. Parmi ces derniers, on retrouve:
62 10 Using the loader 58 Nom de la méthode Rôle setcenter Positionne le centre de la carte en coordonnées WGS84 (degrés décimaux ou sexagésimaux): iv.setcenter( , ); setzoom Définit le zoom de la carte au niveau de zoom donné ou à la résolution donnée iv.setzoom(13); pan Déplace le centre de la carte (en pixels) iv.pan(5,5); setlayeropacity Gère l'opacité d'une couche iv.setlayeropacity('orthoimagery.orthophotos',0.3); setlayervisibility Gère la visibilité d'une couche iv.setlayervisibility('administrativeunits.boundaries',true); addgeoportallayer(s) Ajoute une/plusieurs couche(s) géoportail en spécifiant un id/tableau d'ids iv.addgeoportallayer('id_couche'); addlayer(s) Ajoute une couche externe iv.addlayer("type","nom", "Url", Paramètres_service, Paramètres_couche); togglecontrol Développe un composant en spécifiant son identifiant ou le nom de sa classe var LS= viewer.getmap().getcontrolsbyclass("geoportal.control.layerswitcher") [0]; iv.togglecontrol(ls.id); setlanguage Définit le language du viewer (deux caractères IETF 4646) iv.setlanguage('en'); setsize Définit la taille (hauteur et largeur) du viewer. iv.setsize('500','300'); addcomponent Ajoute un composant à la carte. iv.addcomponent('geoportal.component.layercatalog');
63 11 Using the JS API Using the JS API Utiliser l'api JavaScript Quelle API utiliser? L'API Javascript est proposée sous différentes formes selon les fonctionnalités que l'on va vouloir mettre en oeuvre. En effet, la taille du fichier javascript à inclure dans la page pour bénéficier des fonctionnalités de l'api va influer sur le temps de chargement de la page API minimale, standard, étendue, mobile, 3D et Flash L'API minimale: permet au développeur d'utiliser les connecteurs vers les services protégés par le de contrôle des droits accès (WMS, WFS et WMTS). Elle fournit aussi le logo du Géoportail (Voir les Conditions d'utilisation). La bibliothèque PROJ4JS est aussi embarquée dans cette API. Ce niveau d'api permet d'intégrer dans un site web les données en provenance du Géoportail à l'aide d'une librarie cartographique javascript de son choix (Leaflet, OpenLayers, Google,...). On la charge ainsi dans la page : <script type="text/javascript" charset="utf-8" src=" L'API standard: propose les fonctionalités de l'api minimale plus certains connecteurs d'openlayers (accès aux services WMS, aux formats KML, GPX, aux fonctionalités du moteur de recherche et aux contrôles de base). Elle embarque aussi un visualiseur qui reprend l'identité visuelle du site web du Géoportail. On la charge ainsi dans la page : <script type="text/javascript" charset="utf-8" src=" L'API étendue: contient l'api standard et toutes les fonctionalités d'openlayers non sélectionnées dans l'api standard. On la charge ainsi dans la page : <script type="text/javascript" charset="utf-8" src=" L'API mobile: fournit les fonctionalités nécessaires aux téléphones et tablettes et embarque une interface graphique légère. On la charge ainsi dans la page : <script type="text/javascript" charset="utf-8" src=" l'api Haut Niveau 3D : elle offre les classes Javascript nécessaires pour l'inclusion et l'intéraction avec un plugin VirtualGéo dans la page. On la charge ainsi dans la page : <script type="text/javascript" charset="utf-8" src=" l'api Haut Niveau Flash : elle offre les classes Javascript nécessaires pour l'inclusion et l'intéraction avec un viewer Flash basé sur l'api Flash. On la charge ainsi dans la page : <script type="text/javascript" charset="utf-8" src=" Poids des différentes versions de l'api version Tailles minimum (compressée) standard (compressée) étendue (compressée) flash (compressée) mobile (compressée) 3D (compressée)
64 11 Using the JS API ,2Mo (282ko) 1,9Mo (467ko) 2,5Mo (588ko) 277ko ( 69ko) 1,7Mo (413ko) 287ko ( 72ko) ,1Mo (276ko) 1,9Mo (450ko) 2,4Mo (572ko) 270ko ( 71ko) 1,7Mo (405ko) 280ko ( 73ko) ko (192ko) 1,9Mo (458ko) 2,5Mo (577ko) 276ko (72 ko) 1,7Mo (405ko) 286ko (74 ko) ko (91 ko) 1,9Mo (443ko) 2,4Mo (562ko) 252ko (60 ko) 1,8Mo (403ko) 261ko (62 ko) ,7ko (92 ko) 1,9Mo (436ko) 2,4Mo (548ko) 248ko (60ko) 1,7Mo (396 ko) 256ko (64 ko) ,3ko (87 ko) 1,5Mo (350ko) 2,0Mo (471ko) 252ko (59 ko) 1,3Mo (311ko) 260ko (62 ko) Si le butineur supporte l'en-tête HTTP " Accept-Encoding: gzip", alors l'api est retournée compressée (son poids est réduit jusqu'à quatre fois la taille non compressée) Quelle version utiliser? On accède aux différentes versions de l'api en mettant le numéro de version dans l'url de téléchargement : Les numéros de version sont de type "2.x.y", "2.x" ou "latest". "2.x" et "latest" sont des alias qui pointent vers des numéros de versions particuliers : "latest" pointe vers la dernière version publiée en date. "2.x" pointe vers la dernière version 2.x.y publiée en date. Comme on est passé en "2.1.y", l'alias "2.0" pointe désormais définitivement vers la version
65 11 Using the JS API 61 De manière générale, il est déconseillé d'utiliser les alias (surtout "latest") pour des sites en production : cela les expose à des dysfonctionnements éventuels dus à des changements de comportement ou d'interface lors d'une montée de version de l'api Chargement de la carte Méthode 1: En utilisant le loader Méthode 2: Sans utiliser le loader Il existe deux manières de charger un viewer 2D JavaScript: La première méthode consiste à utiliser le loader et l'évènement 'onview' pour paramétrer le viewer une fois qu'il est chargé. La deuxième méthode consiste à effectuer chacune des étapes nécessaires au chargement de la visualisation (téléchargement du code JS, récupération des droits associés à la clé API, création du viewer etc). Le choix entre ces deux méthodes est laissé au développeur selon qu'il préfère utiliser des méthodes à bas niveau d'abstraction pour une maîtrise totale du code (méthode 2) ou une méthode plus haut niveau pour un développement plus simple (méthode 1) Méthode 1: En utilisant le loader Ajouter aux options du loader l'option 'onview' qui a pour valeur le nom de la fonction callback qui sera executée une fois le viewer chargé (ici, initmap). C'est à l'intérieur de cette fonction qu'on va récupérer le viewer et effectuer nos traitements:
66 11 Using the JS API Exemple de code à copier/coller ; 62
67 11 Using the JS API Méthode 2: Sans utiliser le loader Ajout de la balise qui va contenir la carte Placer dans le corps de la page HTML une balise DIV dont l'identifiant et le style sont renseignés comme dans le code qui suit; Import du script de l'api On considère ici que l'api utilisée est la version Javascript standard (Geoportal.js): 63
68 11 Using the JS API 64 Si vous utilisiez l'api Javascript minimale, charger la bibliothèque GeoportalMin.js. Si vous utilisiez l'api Javascript étendue, charger la bibliothèque GeoportalExtended.js. Si vous utilisiez l'api mobile, charger la bibliothèque GeoportalMobile.js Récupération de la configuration liée à la clé: Utiliser l'évènement JavaScript "onload" ou n'importe quel autre moyen mis à disposition par d'autres environnements pour exécuter la méthode loadapi dès l'explorateur a fini de charger la page. Cette fonction appelle la méthode Geoportal.GeoRMHandler.getConfig en lui passant en paramètres la liste des clés API, l'url du service d'autoconfiguration ainsi que la méthode qui sera appelée une fois la configuration retournée (fonction dite de callback), ici : initmap:
69 11 Using the JS API Chargement de la carte: La fonction initmap charge la carte dans la div dont l'identifiant est 'viewerdiv'. Elle crée une instance de la classe Geoportal.Viewer.Default avec en paramètre cet identifiant et un jeu d'options: 65
70 11 Using the JS API Exemple de code à copier/coller ; 66
71 12 Adding layers Adding layers Ajout de couches Le support du WMTS, KML, GPX, OSM, WMS est assuré dans les APIs minimum, standard et étendue tandis que le support du WFS n'est assuré que dans l'api étendue. L'ajout de ces couches peut s'effectuer de deux manières: En utilisant le loader L'ajout de couches externes en utilisant le loader est expliqué ici En utilisant la méthode Geoportal.Map.addLayer() // Cas de services "WMS", "WMTS", "WFS" ou "GEORSS" viewer.getmap().addlayer( "Type_de_la_couche", "Nom_de_la_couche", "Url d'accès", {Paramètres_service}, {Paramètres_couche} ); // Cas de fichiers "KML", "GPX" ou "OSM" viewer.getmap().addlayer( "Type_de_la_couche", "Nom_de_la_couche", "Url d'accès", {Paramètres_couche}, {Paramètres_popup} ); Détail des paramètres utilisés: Type_de_la_couche : "WMS", "WMTS", "WFS", "GEORSS", "KML", "GPX" ou "OSM" Nom_de_la_couche : Contient le texte qui sera affiché dans le gestionnaire de couches. Ce nom peut être une chaîne de caractères ou un objet permettant le support du multi-langues ; Url d'accès : Chaîne de caractères contenant le chemin d'accès aux fichiers ou l'url du service ; Paramètres_service : Objet contenant les informations nécessaires pour paramétrer le service comme les noms de couches à ajouter ou le format de l'image retournée dans le cas du WMS.
72 12 Adding layers Paramètres_couche : Objet contenant les informations nécessaires pour affiner le comportement d'une couche. Les paramètres optionnels communs aux différentes couches sont: visibility : true (la couche est affichée au chargement), false sinon ; opacity: entier inclus entre 0 à 1. Définit l'opacité de la couche. minzoomlevel : entier inclus entre 0 et 21. Définit l'échelle la plus petite d'affichage. Par défaut, c'est 0 (échelle monde entier) ; maxzoomlevel : Définit l'échelle la plus grande d'affichage. Par défaut, c'est le zoom correspondant à l'échelle maximale de la carte de base ; stylemap : Instance de la classe OpenLayers.StyleMap. Par défaut, l'api crée un légende pour chaque type de couche. Dans le cas du WFS, l'api crée un légende INSPIRE : les points, lignes et polygones sont en noir. view : Objet contenant les paramètres de gestion de la couche : drop : ajoute un contrôleur permettant d'enlever la couche du gestionnaire. Mis à true par défaut ; zoomtoextent : ajoute un contrôleur permettant de zoomer sur l'emprise de la couche chargée. Mis à true par défaut ; originators: Objet permettant d'effectuer l'attribution des propriétaires des données contenant les propriétés suivantes pour chacun des distributeurs : logo:une chaîne de caractères identifiant le logo du distributeur. Cf. pictureurl pour de plus amples informations ; pictureurl: 'si définie, c'est l'url de l'image. Si non définie, la propriété logo est utilisée pour construire l'url de l'image comme suit : legendes/logo_ + logo +.gif ; url: l'url du distributeur. La page web sera ouverte dans une nouvelle fenêtre ; extent : emprise d'application des données ; attribution : texte court relatif aux propriétaires des données ; isbaselayer: mis à false par défaut. Si mis à true, la couche ajoutée est définie comme couche de base. maxextent: Instance de la classe OpenLayers.Bounds. Représente l'emprise maximale de la couche. Il est important de noter qu'elle doit être exprimée dans le système de coordonnées projection. Exemple: new OpenLayers.Bounds(-180,-90,180,90) pour la projection 'EPSG:4326' constraints: liste de contraintes pour n'afficher la couche qu'à certaines résolutions sur certaines emprises. Une contrainte est définie par les propriétés suivantes: maxextent: Instance de la classe OpenLayers.Bounds. Représente l'emprise maximale de la couche pour cette contrainte. Il est important de noter qu'elle doit être exprimée dans le système de coordonnées projection. Exemple: new OpenLayers.Bounds(-180,-90,180,90) pour la projection 'EPSG:4326' maxresolution: la résolution maximum pour cette contrainte. minresolution: la résolution minimum pour cette contrainte. format : format gérant la lecture du fichier: OpenLayers.Format.KML, OpenLayers.Format.GPX, OpenLayers.Format.OSM,... eventlisteners: a pour valeur un objet contenant les événements attachés à la carte et chaque événement a pour valeur une fonction callback.
73 12 Adding layers Paramètres_popup : Objet optionnel contenant les informations nécessaires pour affiner le comportement des popups associées à une couche. Les paramètres communs aux couches KML/GPX/OSM/WFS sont: onselect : fonction appelée lors de la sélection d'un objet: KML/GPX/OSM: Par défaut, c'est la fonction Geoportal.Control.selectFeature qui est utilisée : elle affiche la fiche de l'objet ; WFS: Par défaut, c'est la fonction Geoportal.Control.hoverFeature qui est utilisée : elle affiche la fiche de l'objet ; onunselect : fonction appelée lors de la désélection d'un objet. Par défaut, la fonction Geoportal.Control.unselectFeature qui est utilisée : elle ferme la fiche et la libère ; hover : indicateur de sélection des objets. Par défaut, il faut cliquer (false) pour sélectionner un objet ; preventdefaultbehavior : Mis à false par défaut.si mis à true, la gestion des popups est désectivée et c'est au développeur d'ajouter les mécanismes de gestion des popups ;
74 13 Adding vector layers Adding vector layers Ajout de couches vecteur Ajout de couches KML, GPX et OSM Ajout d'une couche WFS Modification du style des couches vecteur via l'api Modification du comportement par défaut de l'api La méthode permettant l'ajout de couches est expliquée ici. Ce chapitre détaille les paramètres obligatoires ou optionnels permettant l'ajout de différentes couches vecteur Ajout de couches KML, GPX et OSM Exemples d'utilisation: Exemple d'ajout d'une couche KML sans loader / avec loader. Exemple d'ajout d'une couche KML sans loader / avec loader. Exemple d'ajout d'une couche GPX sans loader / avec loader. Exemple d'ajout d'une couche OSM sans loader Paramètres de couches optionnels spécifiques à ce type de couches: En plus des paramètres de couches optionnels cités ici, on retrouve: projection: projection de gestion des données (Cf. internalprojection). Par défaut, elle est mise à celle de la carte (au travers de la couche de base). Il est conseillé de ne pas surcharger cette option ; prefeatureinsert : function appelée juste avant l'insertion de l'objet dans la couche. Par défaut, c'est la fonction Geoportal.Popup.Anchored.setPointerCursorForFeature qui est utilisée : elle change la nature du pointeur de la souris quant celle-ci est au dessus d'un objet de la couche ; onfeatureinsert : fonction de création de la fiche d'objet KML, GPX, OSM ou WFS. KML : Par défaut, c'est la fonction Geoportal.Popup.Anchored.createPopUpForKMLFeature qui est utilisée : elle utilise les champs description et, si présent, name du KML; GPX : Par défaut, c'est la fonction Geoportal.Popup.Anchored.createPopUpForGPXFeature qui est utilisée : elle utilise les champs présents desc, cmt, ele et name du GPX; OSM / WFS : Par défaut, c'est la fonction Geoportal.Popup.Anchored.createPopUpForGMLFeature qui est utilisée : elle utilise les champs présents de l'objets; Les fiches sont portées par la classe Geoportal.Popup.Anchored ; formatoptions : options liées à la lecture du fichier : internalprojection : la projection de la carte (au travers de la couche de base) ; extractattributes : indicateur de lecture des informations du fichier. Par défaut, il est mis à true. Si mis à false (valeur par défaut d'openlayers), la fiche de l'objet est vide ;
75 13 Adding vector layers 71 extractstyles : indicateur de lecture des styles du fichier. Par défaut, il est mis à true. Si mis à false, c'est au développeur d'ajouter les styles; Les trois paramètres qui suivent sont spécifiques au format GPX: extractwaypoints : lit les points. Par défaut, mis à true ; extracttracks : lit les traces. Par défaut, mis à true ; extractroutes : lit les itinéraires. Par défaut, mis à true ; Les deux paramètres qui suivent sont spécifiques au format OSM: checktags : vérification des balises. Par défaut à false ; areatags : liste des balises, ne s'applique que si checktags est à true. Par défaut à null ; Performances Les données présentes dans le les fichiers sont chargées en mémoire de l'application. Le paramètre extractattributes peut être désactivé pour éviter de charger toutes les informations contenues dans le fichier. Cette remarque s'applique aussi aux paramètres: extractwaypoints, extracttracks et extractroutes pour les fichiers GPX checktags et areatags pour les fichiers OSM. Il a été mesuré qu'au delà de 200 objets des ralentissements sont perceptibles. Dans le cas de données GPX ou KML volumineuses, il est conseillé de se tourner vers le WFS ou une combinaison de WMS/WFS Dans le cas de données OSM volumineuses, il est conseillé de se tourner vers l' API OSM ou une combinaison de WMS/API OSM Ajout d'une couche WFS Exemples d'utilisation: Exemple d'ajout d'une couche WFS sans loader / avec loader. La capture d'écran ci-dessous repose sur le fragment de code suivant paramètres de service spécifiques aux couches wfs: Paramètres obligatoires: typename: Tableau contenant les noms des couches à afficher Paramètres optionnels: filter: filtre exprimant des conditions sur les objets à retourner version : version de WFS (e.g )
76 13 Adding vector layers paramètres de couche spécifiques aux couches wfs: En plus des paramètres de couches optionnels cités ici, on retrouve: Paramètres obligatoires: projection: projection de la couche. Exemple: 'EPSG:4326'. Paramètres optionnels: units: 'm' ou 'degrees' ratio: détermine la taille de la requête côté serveur par rapport à la taille de la carte de la fenêtre. [] Performances Tout d'abord, relire cette FAQ peut aider à comprendre! Voici quelques résultats de tests effectués sur un service WFS : Taille de la réponse GetFeature Nombre d'objets Chargement 1.8Mo 205 échoué 564Ko 699 réussi 483Ko 36 réussi 283Ko 406 réussi 89Ko 89 réussi Les diverses limitations sont une combinaison de plusieurs facteurs : Taille des géométries des objets : OpenLayers indique 2500 coordonnées, on va plus loin, mais c'est surtout une limitation sur le nombre de coordonnées par objet qui prévaut; Type des objets : pour le rendu en particulier, les polygones, c'est lourd; Nombre d'objets : au delà de 200 objets, le refraichissement de l'affichage est ralenti, mais les deux facteurs précédents sont prépondérants... Taille de la réponse : il semble que la longueur maximale d'une chaîne Javascript soit "limitée". Cette limitation dépend du navigateur (par exemple, sous Firefox 2, on ne peut avoir de chaîne de plus d'un 1Mo). Jeter un oeil pour de plus amples informations. Finalement, que faire : limiter les plages d'affichage pour limiter le nombre d'objets; utiliser le paramètre maxfeatures pour ne pas charger trop d'objets; découper les couches d'objets par plage d'échelles (bases multi-échelles) pour ramener les bons objets (pas trop, avec une géométrie ad hoc) ou le simuler avec Geoportal.Layer.Aggregate; implémenter alors les SuperOverlays}SuperOverlays pour les formats vecteurs; faire des cartes (WMS/Tile) et mettre les opérations GetFeature/GetFeatureInfo limitées à la zone cliquée; passer à l'api Web 2D en ActionScript dès que prête! Exemple de WFS version : utilisation du JSON-P pour appel Cross-Domain L'API permet d'accéder aux services WFS version
77 13 Adding vector layers 73 A partir de OpenLayers 2.11, un protocole OpenLayers.Protocol.Script permet d'implémenter la technique JSONP pour utiliser les données d'un service WFS situé sur un domaine différent de la page appelante sans configuration de proxy. La capture d'écran ci-dessus repose sur le fragment de code suivant Modification du style des couches vecteur via l'api Commencer par désactiver les styles définis dans le fichier en ajoutant le paramètre "formatoptions": formatoptions:{extractstyles:false}; Créer ensuite une instance de la classe OpenLayers.StyleMap avec en paramètre un objet qui contient les styles. var mystyle= new OpenLayers.StyleMap({ "default" : new OpenLayers.Style ({ strokecolor : "black", strokewidth: 2 }), "select" : new OpenLayers.Style ( { strokecolor : "red", strokewidth : 2 }) }) Ajouter ensuite ce stylemap à la couche grâce au paramètre de couche "stylemap" qui aura pour valeur le nom du style créé. Exemples de modification de style d'une couche KML, WFS ou GPX ou OSM Modification du comportement par défaut de l'api Pour modifier le comportement par défaut de ces fiches, il faut surcharger les options prefeatureinsert, onfeatureinsert, onselect, onunselect, et, éventuellement, hover. Ces attributs ont pour valeur le nom d'une fonction qui prend en entrée l'objet en question.
78 13 Adding vector layers Exemple utilisant le paramètres onselect: au clic sur l'un des objets de la couche "territoires", une fenêtre wikipedia s'ouvre. Exemple utilisant le paramètres prefeatureinsert. 74
79 14 Adding image layers Adding image layers Ajout de couches raster Ajout d'une couche WMS Ajout d'une couche WMTS Il est important de noter que les couches du Géoportail sont dans une projection spécifique (Cf. Web Mercator Sphérique). En tant que tel, toute couche image en superposition (comme les WMS, WMTS, WMS-C et consorts) devra être: soit dans la même projection ; soit dans la projection plate-carré (CRS:84 ou équivalent) ; soit dans les anciennes projections GEOPORTAL* (équidistant-cylindrique - dépréciée). L'API du Géoportail permet aussi d'afficher les couches du Géoportail en plate-carré (IGNF:RGF93G qui est compatible avec CRS:84) et toute autre couche doit être dans la même projection plate-carré Ajout d'une couche WMS Exemples d'utilisation: Exemple d'ajout d'une couche WMS sans loader. Exemple d'ajout d'une couche WMS avec loader Paramètres de service spécifiques aux couches wms: Paramètres obligatoires: layers : tableau contenant les noms des couches à afficher Paramètres optionnels: transparent : true (la couche est transparente), false sinon. format : format de l'image retournée, 'image/png' par exemple Paramètres de couche spécifiques aux couches wms: En plus des paramètres de couches optionnels cités ici, on retrouve: Paramètres obligatoires: projection: projection de la couche. Exemple: 'EPSG:4326'. Paramètres optionnels: units: 'm' ou 'degrees' ratio: détermine la taille de la requête côté serveur par rapport à la taille de la carte de la fenêtre. singletile: booleen. si true, la couche doit être affichée par une seule image contrairement à une grille d image tuilées.
80 14 Adding image layers Ajout d'une couche WMTS Exemples d'utilisation: Exemple d'ajout d'une couche WMTS sans loader Paramètres de service spécifiques aux couches wmts: Contient tous les paramètres nécessaires au paramétrage du service WMTS comme layer, style, format, etc Paramètres de couche spécifiques aux couches wmts: En plus des paramètres de couches optionnels cités ici, on retrouve: Paramètres obligatoires: projection: projection de la couche. Exemple: 'EPSG:4326'. tileorigin : indique l'origine des tuiles. Par défaut, c'est le (0, 0) dans le système de référence de coordonnées projection. matrixids : indique les résolutions du cache. Par défaut, ce sont celles du Géoportail en projection Web Mercator Sphérique matrixset : collection de matrices de tuiles définies à différentes échelles. Paramètres optionnels: units: 'm' ou 'degrees' 76
81 15 Adding controls Adding controls Ajout de contrôles Barre de croquis Calatogue de couches Gestionnaire des couches Moteurs de recherche Outils altimétriques Barre de croquis L'ajout des outils de croquis s'effectue de la façon suivante : var layer = new OpenLayers.Layer.Vector("My drawing layer"); mymap.getmap().addcontrol( new Geoportal.Control.DrawingToolbar(layer) ); Pour utiliser la barre d'outils dans le mode unique (une barre d'outils unique qui intéragit avec une couche vecteur active), l'option mode doit être passée dans les options de la barre d'outils : var layer = new OpenLayers.Layer.Vector("My drawing layer"); mymap.getmap().addcontrol( new Geoportal.Control.DrawingToolbar(layer, { mode: 'single' }) ); Calatogue de couches L'ajout d'un catalogue de couches s'effectue de la façon suivante : mymap.getmap().addcontrol( new Geoportal.Control.LayerCatalog() ); Le catalogue peut aussi être configuré via des options : var filterbykeyword = new OpenLayers.Filter.Comparison({ type:openlayers.filter.comparison.like, property:'keywords', value:'%admin%'}); var options = { editable : false, // default value is true filter : filterbykeyword }; mymap.getmap().addcontrol( new Geoportal.Control.LayerCatalog() ); l'option editable permet d'indiquer si le bouton de filtre (c) apparaît ou pas. l'option filter permet de définir un filtre pour les couches du catalogue. Les filtres sont des instances de la classe OpenLayers.Filter. Les valeurs possibles pour les property des filtres sont : the_geom pour restreindre les couches sur une emprise title pour rechercher une couche par son nom (le format attendu pour la valeur est "%mavaleur%") keywords pour filtrer sur des mots clés (le format attendu pour la valeur est "%mavaleur %"%) inspirethematics pour filtrer sur des thématiques (le format attendu pour la valeur est "%mavaleur%"%)
82 15 Adding controls 78 startproduction pour filtrer sur une date de début de production (le format attendu pour la valeur est 'YYYY-MM-DDTHH:MM:SSZ', cf. OpenLayers.Date.toISOString method pour convertir des objets javascript de type Date) endproduction pour filtrer sur une date de fin de production (le format attendu pour la valeur est 'YYYY-MM-DDTHH:MM:SSZ', cf. OpenLayers.Date.toISOString method pour convertir des objets javascript de type Date) publicationdate pour filtrer sur une date de publication (le format attendu pour la valeur est 'YYYY-MM-DDTHH:MM:SSZ', cf. OpenLayers.Date.toISOString method pour convertir des objets javascript de type Date) Exemples de filtre Filtrer les couches sur une emprise : var spatialfilter = new OpenLayers.Filter.Spatial({ type:openlayers.filter.spatial.bbox, property:'the_geom', value:new OpenLayers.Bounds( , , , ) }); mymap.getmap().addcontrol( new Geoportal.Control.LayerCatalog( {filter: spatialfilter} ); Filtrer les couches sur des mots-clés : var keywordsfilter1 = new OpenLayers.Filter.Comparison({ type:openlayers.filter.comparison.like, property:'keywords', value:'%admin%'}); var keywordsfilter2 = new OpenLayers.Filter.Comparison({ type:openlayers.filter.comparison.like, property:'keywords', value:'%ortho%'}); var keywordsfilteror = new OpenLayers.Filter.Logical({ filters : [keywordsfilter1,keywordsfilter2], type: OpenLayers.Filter.Logical.OR }); mymap.getmap().addcontrol( new Geoportal.Control.LayerCatalog( {filter: keywordsfilteror}); Filtrer les couches sur un intervalle de dates de début de production : var startproductionminfilter = new OpenLayers.Filter.Comparison({ type:openlayers.filter.comparison.greater_than, property:'startproduction', value:' t00:00:00z'}); var startproductionmaxfilter = new OpenLayers.Filter.Comparison({ type:openlayers.filter.comparison.less_than, property:'startproduction', value:' t00:00:00z'}); var filters = [startproductionminfilter, startproductionmaxfilter]; var startproductionfilter = new OpenLayers.Filter.Logical({ filters : filters, type: OpenLayers.Filter.Logical.AND }); mymap.getmap().addcontrol( new Geoportal.Control.LayerCatalog( {filter: startproductionfilter} ); Gestionnaire des couches A la création d'une couche, il y a de nombreuses options. Certaines d'entre elles influencent directement l'affichage dans l'interface du gestionnaire de couches :
83 15 Adding controls 79 Si l'une ou l'autre des options opacity ou view sont utilisées pour une couche, le gestionnaire de la couche affiche (1). Cette barre permet d'afficher/masquer son contenu : (2) supporte l'option opacity quant elle est définie (entre 0.0 et 1.0, plus le nombre est proche de 1.0, plus la couche est opaque) : la réglette permet de modifier la transparence de la couche ; (3) supporte l'option view.drop quant elle est à true : un clic sur la poubelle retire définitivement la couche du gestionnaire ; (4) supporte l'option view.zoomtoextent quant elle est à true : un clic sur l'icône effectue un zoom arrière sur l'emprise totale de la couche Moteurs de recherche La barre de recherche permet d'effectuer différents types de recherche: Recherche simple à partir d'un champ unique auto-complété Recherche avancée à partir d'un formulaire de recherche multi-critères (numéro, rue, adresse, code postal, ville, pays) Recherche inversée à proximité d'un point, à l'intérieur d'un cercle, ou à l'intérieur d'une emprise La barre de recherche s'appuie, que ce soit pour le géocodage "direct" ou le géocodage inverse, sur un service standard Open LS, par défaut celui du Géoportail Recherche par lieux : var tbx= viewer.getmap().getcontrolsbyclass('geoportal.control.toolbox')[0]; var panel= new Geoportal.Control.Panel({ div:openlayers.util.getelement(tbx.id+'_search') }); var gazetteer= new Geoportal.Control.LocationUtilityService.GeoNames( new Geoportal.Layer.OpenLS.Core.LocationUtilityService( 'PositionOfInterest:OPENLS;Geocode',//layer name { maximumresponses:100 } ),{ //Ajout de l'autocomplétion autocompleteoptions: {} } ); panel.addcontrols([gazetteer]); viewer.getmap().addcontrols([panel]);
84 15 Adding controls Recherche par adresses : var tbx= viewer.getmap().getcontrolsbyclass('geoportal.control.toolbox')[0]; var panel= new Geoportal.Control.Panel({ div:openlayers.util.getelement(tbx.id+'_search') }); var geocode= new Geoportal.Control.LocationUtilityService.Geocode( new Geoportal.Layer.OpenLS.Core.LocationUtilityService( 'StreetAddress:OPENLS;Geocode',//layer name { maximumresponses:100 } ),{ // options du controle } ); panel.addcontrols([geocode]); viewer.getmap().addcontrols([panel]); Recherche par parcelles cadastrales : var tbx= viewer.getmap().getcontrolsbyclass('geoportal.control.toolbox')[0]; var panel= new Geoportal.Control.Panel({ div:openlayers.util.getelement(tbx.id+'_search') }); var cadastralsearch= new Geoportal.Control.LocationUtilityService.cadastralParcel( new Geoportal.Layer.OpenLS.Core.LocationUtilityService( 'CadastralParcel:OPENLS;Geocode',//layer name { // options de la couche maximumresponses:100 } ),{ // options du controle } ); panel.addcontrols([cadastralsearch]); viewer.getmap().addcontrols([panel]); 80
85 15 Adding controls Recherche inversée : var tbx= viewer.getmap().getcontrolsbyclass('geoportal.control.toolbox')[0]; var panel= new Geoportal.Control.Panel({ div:openlayers.util.getelement(tbx.id+'_search') }); var gazetteer = new Geoportal.Control.LocationUtilityService.ReverseGeocode( new Geoportal.Layer.OpenLS.Core.LocationUtilityService( 'PositionOfInterest:OPENLS;ReverseGeocode', { formatoptions: { } } ),{ title: 'gpcontrollocationutilityservicereversegeocode.title', setzoom: Geoportal.Control.LocationUtilityService.ReverseGeocode.setZoomForBDNyme } ); panel.addcontrols([gazetteer]); viewer.getmap().addcontrols([panel]); Outils altimetriques Les outils altimétriques permettent de récupérer l'altitude en un point ou le long d'un tracé grace aux services de calculs altimétriques de la plateforme Géoportail. Altitude en un point Avec l'api Haut niveau : // iv == InterfaceViewer // on récupère la toolbox var tbx = iv.getviewer().getmap().getcontrolsbyclass('geoportal.control.toolbox')[0]; iv.addcomponent('geoportal.control.measuretoolbar', [{ targetelement: OpenLayers.Util.getElement(tbx.id+'_meares'), div: OpenLayers.Util.getElement(tbx.id+'_measure'), elevationoptions : { active: true, targetelement: null }, elevationpathoptions : { active: false // on ne veut pas afficher l'outil de profil } }] ); Profil altimétrique Avec l'api Haut niveau :
86 15 Adding controls 82 // iv == InterfaceViewer // on récupère la toolbox var tbx = iv.getviewer().getmap().getcontrolsbyclass('geoportal.control.toolbox')[0]; iv.addcomponent('geoportal.control.measuretoolbar', [{ targetelement: OpenLayers.Util.getElement(tbx.id+'_meares'), div: OpenLayers.Util.getElement(tbx.id+'_measure'), elevationoptions : { active: false // on ne veut pas afficher l'outil d'altitude en un point }, elevationpathoptions : { active: true, targetelement: null } }] ); // Traitement du tableau d'altitudes var ctrlelevationpath = map.getcontrolsbyclass('geoportal.control.measure.elevationpath')[0]; ctrlelevationpath.events.on({ // l'événement "measure" est envoyé à la réception des résultats du service "measure": function(data) { // process data //... } });
87 16 Changing styles Changing styles Modification des styles Les styles par défaut de l'api Géoportail Les styles par défaut de l'api Géoportail et d'openlayers sont automatiquement chargés par les API standard et étendue si nécessaire: coordinates fields En API minimum ou pour charger soi-même les styles, il faut utiliser les URLs suivantes : CSS OpenLayers : ie6-style.css pour IE 6 ou moins (correction canal alpha png); google.css quand OpenLayers.Layer.Google est utilisée. CSS Geoportail : standard.css surcharge les styles quand Geoportal.Viewer.Standard est utilisée. L'exemple Changement de l'affichage montre comment charger les CSS.
88 16 Changing styles 84 Il est important de noter que les CSS sont par défaut calibrées pour une carte de 800 par 600 pixels. Il est fortement conseillé d'adapter les règles à d'autres tailles Thèmes prédéfinis de l'api Géoportail Les différents thèmes: Le thème legacy Ce thème est celui qui était utilisé par défaut jusqu'à la version 2.0 de l'api. En voici un aperçu: coordinates fields Pour charger ce style, utiliser l'url suivante: Le thème black: Voici un apeçu de ce style:
89 16 Changing styles 85 coordinates fields Pour charger ce style, utiliser l'url suivante: Comment peut-on les changer? En utilisant la méthode Geoportal.load Ajouter l'attribut theme aux options du loader:
90 16 Changing styles 86 window.onload= function() { iv= Geoportal.load( // div's ID: 'viewerdiv', // API's keys: ['VOTRE_LICENCE'], {// map's center : // longitude: lon: , // latitude: lat: }, null, { language:'fr', geormurl:config.serverurl, theme:{ name:'black', styles:[{css:' id:' GeoportalBlackCss '} ] }, viewerclass:'geoportal.viewer.default', componentsoptions:{ 'Geoportal.Component.LegalNotice.Logo':{logoSize:30} } } ); }; Sans passer par la méthode Geoportal.load Ajouter aux options du viewer l'option loadtheme qui a pour valeur une fonction qui charge le style en question: viewer= new Geoportal.Viewer.Default( "viewerdiv", OpenLayers.Util.extend({ mode:'normal', territory:'fxx', loadtheme: function() { Geoportal.Util.setTheme('black'); Geoportal.Util.loadCSS(' } }, window.ggeoportalrightsmanagement===undefined? {apikey:['votre_licence']}:ggeoport );
91 17 Changing srs Changing srs Systèmes de référence de coordonnées Transformation de coordonnées Il est important de retenir que les données sont affichées en projection Web Mercator Sphérique et que les informations en provenance des contrôleurs (telle les coordonnées de la souris) sont exprimées dans le système de référence géographique sous-jacent à la projection. Pour obtenir la projection des données, on utilise le fragment de code suivant : var projection_carte= viewer.getmap().getprojection(); Pour obtenir le système d'affichage des contrôleurs, on utilise le fragment de code suivant : var projection_ctrl= viewer.getmap().getdisplayprojection(); La plupart des composants OpenLayers possède une méthode transform(openlayers.projection ini,openlayers.projection fin), consulter la documentation Openlayers pour de plus amples informations. Ainsi, pour transformer un point en coordonnées géographiques type GPS en coordonnées de la carte, on utilise le fragment de code suivant : var p= new OpenLayers.LonLat(longitude, latitude); p.transform(openlayers.projection.crs84, viewer.getmap().getprojection()); Accès à des systèmes de référence de coordonnées non inclus dans l'api L'API ne supportant qu'un nombre limité de systèmes de référence de coordonnées (plus de 200 dans l'api étendue), il peut être nécessaire d'accéder à de nouveaux systèmes de référence de coordonnées. Pour charger un système, l'api utilise un appel Ajax sur le site Spatial Reference, il faut donc qu'un proxy soit mis en place pour cela (Cf. Accès aux données). Il est possible aussi d'insérer directement dans la page le code du système de référence de coordonnées. Ce faisant, il faut le faire avant l'appel à la création de la carte comme suit :
92 17 Changing srs 88 <!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> </head> <body> <div id="planchecartographique" style="width:800px;height:600px;"></div> <script type="text/javascript" src=" charset <!--//--><![CDATA[//><!-//--><!]]> </script> <script type="text/javascript"><!--//--><![cdata[//><!-window.onload= loadapi; window.onload= function() { Geoportal.load("plancheCartographique", { ['VOTRE_LICENCE'], null, null, { onbeforeview: function() { // Ajout d'une nouvelle projection: Proj4js.defs['EPSG:32630']= '+proj=utm +zone=30 +ellps=wgs84 +datum=wgs84 +units=m +no_defs +title=utm Nord Zone 30 - France'; } } ) }; //--><!]]></script> </body> </html>
93 18 GPS positionning GPS positionning Coordonnées GPS Centrer la carte sur des coordonnées GPS Pour se localiser sur une position connue en coordonnées géographiques, il suffit d'utiliser dans votre page HTML la méthode Geoportal.load() en lui fournissant la longitude, la latitude et éventuellement le niveau de zoom. Si vous ne connaissez pas les coordonnées GPS du lieu où vous souhaitez centrer votre carte, il suffit de se rendre sur le site du Géoportail et d'utiliser le moteur de recherche : rechercher et "y aller" Activez les coordonnées du curseur : et positionnez vous sur le lieu Une fois positionné, il suffit de récupérer les coordonnées affichées en géographiques :
94 18 GPS positionning 90 Longitude : 04 44' 36.7" E Latitude : 44 06' 35.8" N Ces coordonnées seront simplement passées à la méthode Geoportal.load() comme suit : <!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> </head> <body > <div id="planchecartographique" style="width:800px;height:600px;"></div> <script type="text/javascript" src=" charset="utf-8"> <!--//--><![CDATA[//><!-//--><!]]> </script> <script type="text/javascript"><!--//--><![cdata[//><!-window.onload= function() { Geoportal.load("plancheCartographique", ['VOTRE_LICENCE'], { // on protège la " lon:"04 44' 36.7\" E", lat:"44 06' 35.8\" N" }, // le zoom 14 correspond à ville 14, { //la carte est paramétrée ici mode:"normal", viewerclass:"geoportal.viewer.default" } ) }; //--><!]]> </script> </body> </html> l'utilisateur peut aussi modifier directement les coordonnées à partir de l'interface en cliquant ou sélectionnant les textes affichant les coordonnées : coordinates fields puis, en les modifiant :
95 18 GPS positionning 91 coordinates fields modified Récupérer la position de la souris sur un clic Pour obtenir les coordonnées de la souris en coordonnées géographiques suite à un clic sur la carte, on utilisera un code basé sur l'exemple suivant :
96 18 GPS positionning 92 <!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> </head> <body> <div id="planchecartographique" style="width:800px;height:600px;"></div> <script type="text/javascript"><!--//--><![cdata[//><!-window.onload= function() { Geoportal.load("plancheCartographique", ['VOTRE_LICENCE'], null, null, { onview: function() { OpenLayers.Control.Click= OpenLayers.Class( OpenLayers.Control, { defaulthandleroptions:{ 'single': true, 'double': false, 'pixeltolerance': 0, 'stopsingle': false, 'stopdouble': false }, /** * Constructor */ initialize: function(options) { OpenLayers.Control.prototype.initialize.apply(this,arguments); this.handleroptions= OpenLayers.Util.extend({},this.defaultHandlerOptions this.handler= new OpenLayers.Handler.Click( this, {'click': this.trigger}, this.handleroptions); }, /** * APIMethod: trigger */ trigger: function(e) { var lonlat= this.map.getlonlatfromviewportpx(e.xy).transform( this.map.getprojection(), OpenLayers.Projection.CRS84 ); alert("vous avez cliqué près de " + lonlat.lon + "N, " + lonlat.lat + " E } }); // création et insertion du nouveau contrôleur var monclic= new OpenLayers.Control.Click({ autoactivate:true }); this.getviewer().getmap().addcontrol(monclic); } } ) }; //--><!]]> </script> <script type="text/javascript" 2015, Institut National de l'information Géographique et Forestière - France R E S E R V E D. src=" charset="utf-8"><!--//--><![cdata[//><!-//--><!]]> </script> ALL RIGHTS
97 19 Adding a proxy Adding a proxy Accès à des données non hébergées sur le serveur exposant l'api Introduction Utilisation du proxy JSP intégré au projet Utilisation d'un proxy PHP Utilisation d'un proxy ASP Utilisation d'un proxy CGI API Web 2D en Javascript Avant-propos Ce chapitre étant plutôt technique, il convient de vérifier comment votre application accède aux données, deux cas sont possibles : votre application et les données résident sur le même site : aucun problème, il suffit d'entrer le chemin d'accès aux données. Par exemple : l'url de votre site est ' votreappli.html', un fichier KML est situé dans ' macouche.kml', il suffit de créer une couche dont l'url est './kml/macouche.kml'. votre application et les données ne résident pas sur le même site : le proxy est obligatoire (et la lecture de cette page aussi). Pour charger les données, OpenLayers (et donc l'api) utilise Ajax. Les principes de sécurité font qu'il est interdit de lire des données sur un autre site que le site ayant envoyé la page web. Pour effectuer cette lecture, il faut donc un service que votre site web va mandater pour aller chercher les données : c'est le proxy (c'est une sorte de passe-plats). Ce dernier est obligatoirement sur votre site. Par exemple : l'url de votre proxy sera ' votre.site.web/proxy/monproxy.asp' (ou.php,...). Il faut alors renseigner ce proxy dans l'api : macarte.setproxyurl(' Où trouver un proxy? par exemple là. Vous pouvez aussi recopier le code mis en exemple dans cette page Introduction Pour charger une couche distante, un service mandataire (proxy) est obligatoire pour récupérer les données pour le client. De manière générale, toutes données nécessitant d'être traitées par la bibliothèque Javascript côté client a besoin de cette fonctionnalité. Ainsi les couches de type WFS, KML, GPX, OpenLS,... (c'est-à-dire toutes les réponses XML de services distants) sont gouvernées par cette "proxyfication". OpenLayers ajoute à l'url du service mandataire l'url des données à récupérer. Les exemples donnés ci-après utilisent la méthode GET avec le paramètre url pour passer l'url cible au service mandataire Pourquoi mettre en oeuvre un service mandataire? OpenLayers au travers d'ajax effectue des requêtes contre divers services. Pour des raisons de sécurité, il n'est pas possible d'effectuer de telles requêtes vers des serveurs se situant sur des domaines DNS (FQDN) différents du domaine du serveur. Il n'est donc théoriquement pas possible d'aller chercher des données WFS, KML, GPX sur un serveur externe du point de vue du client.
98 19 Adding a proxy 94 Cette restriction peut être contournée via l'utilisation d'un service mandataire hébergé sur le serveur de l'api (celui hébergeant son site). Le principe est d'envoyer la requête AJAX non pas vers le serveur cible, mais vers le serveur hébergeant le proxy. Celui-ci récupère la requête vers le service API et l'envoie à son tour au service cible, sans utiliser la technologie AJAX, puis retourne le résultat vers le client OpenLayers. L'API Géoportail fonctionne sur ce principe. La classe Geoportal.Map propose une méthode setproxyurl() qui prend en argument l URL du proxy à utiliser. Pour pouvoir utiliser des couches non situées sur le serveur API, il est donc nécessaire qu un proxy soit disponible sur ce serveur et que son URL soit transmise via l utilisation de instance.setproxyurl(). 19. Utilisation du proxy JSP intégré au projet L'API Géoportail proposait un proxy JSP et maintenant utilise une servlet xmlproxy. Si vous disposez d un moteur de servlets, vous pouvez copier ce proxy JSP en local et l utiliser. Par ailleurs, la JVM du moteur de servlets utilisé (Tomcat ou autre) peut être paramétrée pour utiliser le proxy Internet de l'entreprise. Pour cela, il faut la lancer avec les options : -Dhttp.proxyHost=<adresse_du_proxy> -Dhttp.proxyPort=<port_du_proxy>. Pour la version de Tomcat incluse dans Eclipse, ces options sont à ajouter dans Window/Preferences/, rubrique Tomcat, Paramétrages de la JVM, Ajouter aux paramètres de la JVM. 19. Utilisation d'un proxy PHP L'utilisation d'un proxy PHP est possible pour les webmaisters qui ne disposent pas de moteur de servlets. Le code suivant est un exemple de proxy PHP. 19. Utilisation d'un proxy ASP L'utilisation d'un proxy ASP est également possible. Le code suivant qui utilise le composant Coalesys ( en est un exemple. 19. Utilisation d'un proxy CGI Il est également possible d'utiliser des proxys réalisés avec d'autres langages (Shell UNIX, Python,...) via CGI. OpenLayers fournit un exemple de proxy écrit en Python. En Perl, l'url suivant est une excellente base de départ : Voici un exemple en Perl utilisant aussi la bibliothèque LWP. 19.Comment assigner le service mandataire? Il suffit juste d'appeler la méthode setproxyurl() comme suit :
99 19 Adding a proxy 95 function initgeoportalmap() {... viewer= new Geoportal.Viewer.Default('viewerDiv', OpenLayers.Util.extend( options, // API keys configuration variable set by // <Geoportal.GeoRMHandler.getConfig> // variable contenant la configuration des clefs API remplie par // <Geoportal.GeoRMHandler.getConfig> window.ggeoportalrightsmanagement===undefined? {'apikey':'apikey'} : ggeoportalrightsmanagement) ); // maintenant macarte est définie : viewer.getmap().setproxyurl(urlduproxy);... } On peut également passer le proxy dans les options du viewer : function initgeoportalmap() { //options for creating viewer: var options= { // default value // valeur par défaut //mode:'normal', // default value // valeur par défaut //territory:'fxx', // default value // valeur par défaut //displayprojection:'ignf:rgf93g' // only usefull when loading external resources // utile uniquement pour charger des resources externes */ proxy:'urlduproxy?url=' }; // viewer creation of type <Geoportal.Viewer> // création du visualiseur du type <Geoportal.Viewer> // HTML div id, options viewer= new Geoportal.Viewer.Default('viewerDiv', OpenLayers.Util.extend( options, // API keys configuration variable set by // <Geoportal.GeoRMHandler.getConfig> // variable contenant la configuration des clefs API remplie par // <Geoportal.GeoRMHandler.getConfig> window.ggeoportalrightsmanagement===undefined? {'apikey':'apikey'} : ggeoportalrightsmanagement) );... } Enfin, la spécification du proxy pour peut se faire via le loader comme indiqué en bas de cette page. La plupart des services des service du Géoportail supportent le protocole JSONP si possible permettant ainsi d'obtenir des réponses XML embarquées dans du JSON.
100 19 Adding a proxy API web 2D en flash L'utilisation d'un proxy peut aussi s'avérer nécessaire en Flash. En effet, une application web flash ne peut accéder aux données d'un serveur distant seulement si celui-ci possède à sa racine un fichier crossdomain.xml autorisant l'accès à son contenu depuis le server hébergeant l'animation flash. L'accès aux services du Géoportail ne pose pas de problèmes car les serveurs les hébergeant possèdent un tel fichier crossdomain.xml. Par contre, pour accéder à des services externes (serveurs WMS tiers par exemple), la présence d'un tel fichier n'est pas garantie et donc l'affichage des données du service non plus. Dans ce cas, l'utilisation d'un proxy permet de contourner le problème : l'application flash dialogue avec le proxy aui est dans le même domaine ; le proxy accède aux données du serveur de données car il ne s'agit pas d'une application flash. La spécification du proxy pour l'api flash peut se faire de plusieurs manières : à l'aide du loader via l'option proxyurl (comme dans l'exemple ci-dessous) :... iv= Geoportal.load( // div's ID: 'viewerdiv', // API's keys: [' '], {// map's center : // longitude in degrees: lon: , // latitude in degrees: lat: }, 10,//map's zoom { // adds a wms overlays:{ 'wms':[{ name:"carte Geologique", url:" options:{ version:"1.1.1", // url: typename:"scan_f_geol250", projection:"epsg:4326" } }] }, type:'flex', viewerclass:'geoportal.viewer.standard', proxyurl:'_urldu_proxy?url=' } );... à l'aide de l'api flash en mxml ou en action script en utilisant la propriété 'proxy' de l'objet Map (en AS) ou FxMap (en MXML)
101 20 Multi-keys 20 Multi-keys Multi-contrats Pour pouvoir ajouter dans sa page HTML des clés de plusieurs contrats différents, il faut: Appeler Geoportal.GeoRMHandler.getConfig() avec les clés de licence. Le paramètre key contient autant de clés de licence que nécessaire ; Pour chaque nouvelle clé, vous construisez un visualiseur via l'une des classes Geoportal.Viewer ; Le code HTML suivant contient tous les éléments nécessaires à l'inclusion de cartes avec plusieurs contrats de licence API :
102 20 Multi-keys 98 <!DOCTYPE html> <html> <head> <title>api 2D: multi-cartes</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <script type="text/javascript"> <!-if (window. Geoportal$timer===undefined) { var Geoportal$timer= null; } function checkapiloading(retryclbk,clss) { if ( Geoportal$timer!=null) { //cleartimeout: annule le minuteur " Geoportal$timer" avant sa fin window.cleartimeout( Geoportal$timer); Geoportal$timer= null; } /** * Il se peut que l'init soit exécuté avant que l'api ne soit chargée * Ajout d'un code temporisateur qui attend 300 ms avant de relancer l'init */ var f; for (var i=0, l= clss.length; i<l; i++) { try { f= eval(clss[i]); } catch (e) { f= undefined; } if (typeof(f)==='undefined') { Geoportal$timer= window.settimeout(retryclbk, 300); return false; } } return true; } function loadapi() { // on attend que les classes soient chargées if (checkapiloading(loadapi,['openlayers','geoportal','geoportal.viewer','geoportal.viewer.de return; } // on charge la configuration de la clef API, puis on charge l'application Geoportal.GeoRMHandler.getConfig(['CONTRAT1','CONTRAT2'], null, null, { oncontractscomplete: initgeoportalmap }); } map1= null; map2= null; function initgeoportalmap() { map1= new Geoportal.Viewer.Default( "Carte1Div", { apikey:'contrat1', 'CONTRAT1':gGEOPORTALRIGHTSMANAGEMENT['CONTRAT1'] } ); if (map1.getmap().allowedgeoportallayers ) { map1.addgeoportallayers(map1.getmap().allowedgeoportallayers);
103 20 Multi-keys Examinons le code plus en détail. Nous avons la méthode Geoportal.GeoRMHandler.getConfig() qui récupère les informations relatives aux contrats et dès réception appelle initgeoportalmap(). Un seul appel à la fonction initgeoportalmap() suffit pour terminer le travail. Dans cette fonction, on utilise Geoportal.Viewer.Default("Carte1Div",... ) qui permet charger la carte associée à la clé CONTRAT1. On initialise l'objet carte2 avec Geoportal.Viewer.Default("Carte2Div",... ) qui correspond au contrat CONTRAT2. Nous avons alors deux cartes différentes avec deux contrats différents sur lesquelles nous pouvons travailler indépendamment l'une de l'autre. 99
104 21 Multi-lingual Multi-lingual Internationalisations API Web 2D en Javascript L'internationalisation de la visualisation repose sur la mise en oeuvre par OpenLayers du support des langues. Ce support utilise la langue d'installation du butineur Web demandant l'affichage des cartes (Jetez un oeil à l'en-tête User-Agent). Par défaut, la visualisation affiche dans cette langue d'installation si elle existe dans la bibliothèque OpenLayers et sa surcouche Geoportal. Les langues couramment supportées sont : le français (code fr). l'anglais (code en). l'allemand (code de). l'espagnol (code es). l'italien (code it). Si la langue d'installation n'est pas connue, alors OpenLayers utilise l'anglais. Le webmestre n'a donc rien à changer pour obtenir une interface de visualisation qui s'adapte à la langue de l'internaute Assignation de la langue Il est possible de forcer la langue d'affichage pour ne pas dépendre de la langue d'installation du butineur de l'internaute : OpenLayers.Lang.setCode('fr'); Cet exemple force l'utilisation du français comme langue d'affichage, quelque soit la langue d'installation du butineur Web Internationalisation des cartes personnelles Lors de l'ajout d'une carte personnelle via addlayer(), il est possible d'ajouter les éléments de traduction au dictionnaire de l'interface de visualisation :
105 21 Multi-lingual 101 // add translations Geoportal.Lang.add( { 'cartorisque.wms.name': { 'fr':"cartorisque", 'en':"avalanches", 'de':"lawinen", 'es':"aludes", 'it':"valanghe" }, 'shom.kml.name': { 'fr':"marées", 'en':"tides", 'de':"gezeiten", 'es':"mareas", 'it':"maree" } } ); mymap.addlayer("wms","cartorisque.wms.name",url,params,options); mymap.addlayer("kml","shom.kml.name",url,params); Cet exemple ajoute les traductions en français, anglais, allemand, espagnol et italien des noms des couches Cartorisque ( MEEDDAT) et Prévisions de Marées ( SHOM). Si une traduction n'existe pas, alors OpenLayers utilise le code non traduit à la place. Il est important de noter que la page HTML doit contenir la déclaration d'encodage UTF-8 et doit donc être encodée selon ce jeu de caractères pour avoir un affichage des caractères correct : <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
106 22 Using the Flash API Using the Flash API Utiliser l'api Flash Mise en place de l'environnement Avant de développer votre première application avec l'api Flex du Géoportail, il est nécessaire d'installer les outils permettant de compiler votre application. Flash Builder est la solution officielle pour développer des applications Flex. Son installation est décrite dans le tutoriel Développer avec Flash Builder Une autre possibilité, à la préférence du développeur, est d'utiliser Maven. Pour cela, suivre le tutoriel Développer avec Maven Enfin, le plug-in Flash Player doit être installé sur le navigateur, en version release (par exemple 11.1 r102). En effet, les versions de développement peuvent parfois être la cause d'anomalies (par exemple, effet de quadrillage sur le WMTS avec la version 10.3 d162) Récupération des bibliothèques - projet quickstart Télécharger le projet pré-configuré. Pour importer le projet dans Flash Builder suivre la procédure indiquée dans la partie "import d'une application Flex existante" du tutoriel Développer avec Flash Builder Pour compiler le projet avec Maven, suivre le tutoriel Développer avec Maven Ouvrir le dossier du projet pour visualiser les dossiers et fichiers qu'il contient.
107 22 Using the Flash API 103 le projet quickstart Les bibliothèques de l'api Geoportail et d'openscales se trouvent dans le répertoire libs. Un fichier modèle d'application MainApplication.mxml se trouve dans le répertoire src/main/flex/. Ce dernier a le contenu suivant :
108 22 Using the Flash API 104 <s:application xmlns:fx=" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:geoportail=" xmlns:mx="library://ns.adobe.com/flex/mx" > <geoportail:map id="fxmap" projection="epsg:4326" center=" , " resolution=" " maxextent="-180,-90,180,90" width="100%" height="100%" defaultlayers="false" defaultcontrols="false" > <!-- En: Geographic data displayed by the Map are defined by Layers. You can overlay multiple Lay in the Map, and adjust their alpha.--> <!-- Fr: Les données géographiques affichées dans la carte sont définies par des Layers. Il est possible de superposer plusieurs couches et de gérer leur transparence. --> <!-- En: Layers --> <!-- Fr: couches --> <!-- En: Controls --> <!-- Fr: Contrôles --> </geoportail:map> </s:application> Il s'agit du fichier de base à partir duquel on va pouvoir développer une application flash à l'aide de l'api Flash Géoportail. Le premier détail à noter est l'attribut xmlns:geoportail=" de la balise s:application. Celui-ci permet d'importer les composants de l'api du Géoportail dans l'application. Ceux-ci seront alors accessibles sous la forme geoportail:... Le composant Map est le composant principal de l'application, c'est lui qui permet d'afficher une carte, c'est à dire un ensemble de données géographiques dans une projection donnée, centrées sur un point donné, à une résolution (m/pixel ou /pixel) donnée et sur une emprise maximum. Ici, par exemple, la carte est en projection EPSG:4326, centrée sur les coordonnées , , à une résolution de /pixel et sur le monde entier. A partir de ce modèle on peut construire son application en rajoutant des couches et des composants de l'interface en MXML ou en Action Script. Pour cela, vous pouvez vous référer aux pages de documentation suivantes ou aux divers tutoriels sur le sujet Compilation d'une application flex La compilation de l'application flex diffère selon l'environnement de développement choisi. Si ce dernier est maven, consulter le tutoriel Développer avec Maven ; s'il s'agit de Flash Builder, consulter le tutoriel Développer avec Flash Builder.
109 22 Using the Flash API Intégration de la visualisation Flash dans une page HTML Une fois l'application écrite, et compilée, il existe deux méthodes pour l'intégrer dans une page HTML : à l'aide d'une balise object ou en utilisant le loader A l'aide d'une balise object Voir le tutoriel Flash correspondant : "Intégrer son application dans une page web" A l'aide du Loader L'utilisation du loader consiste à se servir de l'api haut niveau pour masquer l'utilisation de la balise object. Pour cela, consulter la page dédiée à l'utilisation du loader.
110 23 Adding layers Adding layers Ajout de couches L'API Flash permet l'ajout de couches WMTS, WMS, WFS, KML, GPX et GeoRSS. Il est important de noter que les couches du Géoportail sont dans une projection spécifique (Cf. Web Mercator Sphérique). En tant que tel, toute couche image en superposition (comme les WMS, WMTS, WMS-C et consorts) devra être : soit dans la même projection ; soit dans la projection plate-carré (CRS:84 ou équivalent) ; soit dans les anciennes projections GEOPORTAL* (équidistant-cylindrique - dépréciée). L'API du Géoportail permet aussi d'afficher les couches du Géoportail en plate-carré (IGNF:RGF93G qui est compatible avec CRS:84) et toute autre couche doit être dans la même projection plate-carré. L'ajout d'une couche WMTS, WMS, WFS, KML, GPX ou GeoRSS peut s'effectuer de trois manières: En Javascript, en utilisant le loader Voir cette partie sur l'ajout de couches externes en utilisant le loader Dans l'application Flash, en MXML Cette méthode sera privilégiée si l'on souhaite un chargement statique de la couche. Pour en savoir plus Dans l'application Flash, en ActionScript Cette méthode sera utilisée dès lors que l'on souhaite ajouter la couche dynamiquement. Pour en savoir plus.
111 24 Adding layers in MXML Adding layers in MXML Ajout de couches en MXML Ajout d'une couche WMS Ajout d'une couche WMTS Ajout d'une couche WFS Ajout d'une couche KML Ajout d'une couche GPX Ajout d'une couche GEORSS Cette méthode montre l'ajout de couches en MXML. Il est important de noter que les couches du Géoportail sont dans une projection spécifique (Cf. Web Mercator Sphérique). En tant que tel, toute couche image en superposition (comme les WMS, WMTS, WMS-C et consorts) devra être: soit dans la même projection ; soit dans la projection plate-carré (CRS:84 ou équivalent) ; soit dans les anciennes projections GEOPORTAL* (équidistant-cylindrique - dépréciée). L'API du Géoportail permet aussi d'afficher les couches du Géoportail en plate-carré (IGNF:RGF93G qui est compatible avec CRS:84) et toute autre couche doit être dans la même projection plate-carré Ajout d'une couche WMS Dans le code de l'application, ajouter une balise <geoportail:wms> à l'intérieur de la balise <geoportail:map> Exemples d'utilisation: <geoportail:wms id="communes" name="carte Géologique" url=" layers="scan_f_geol250" transparent="true" tiled="true" projection="epsg:4326" maxextent="-4.979,42.347,8.187,51.074" format="image/png" alpha="0.5"/> Paramètres : Pour paramétrer la couche, ajouter les attributs suivants à l'intérieur de la balise geoportail:wms. Paramètres obligatoires: name : le nom que l'on souhaite donner à la couche. Ce nom sera, par exemple, utilisé pour identifier la couche dans le gestionnaire de couches. url : l'url du serveur où se trouvent les données de la couche. layers : l'identifiant permettant de récupérer les données de la couche au niveau du serveur.
112 24 Adding layers in MXML 108 version : la version du protocole à utiliser. Paramètres optionnels: transparent : true (la couche est transparente), false sinon. format : format de l'image retournée, 'image/png' par exemple. Le format par défaut est 'image/jpeg'. alpha : opacité de la couche (comprise entre 0 et 1). L'opacité par défaut est égale à 1. etc... Pour plus d'information parcourir le tutoriel et la documentation technique Ajout d'une couche WMTS Dans le code de l'application, ajouter une balise geoportail:wmts à l'intérieur de la balise geoportail:map Exemples d'utilisation: Exemple d'ajout d'une couche WMTS en MXML Paramètres : Pour paramétrer la couche, ajouter les attributs suivants à l'intérieur de la balise geoportail:wmts. Paramètres obligatoires: name : le nom que l'on souhaite donner à la couche. Ce nom sera, par exemple, utilisé pour identifier la couche dans le gestionnaire de couches. url : l'url du serveur où se trouvent les données de la couche. tilematrixset : Type d'ensemble de données demandée. layers : l'identifiant permettant de récupérer les données de la couche au niveau du serveur. format : format de l'image retournée, 'image/png' par exemple. Le format par défaut est 'image/jpeg'. Paramètres optionnels: projection : Projection géographique dans laquelle les données seront demandées au service. Par défaut la projection demandée est celle de la carte. maxextent : Emprise géographique maximale de laquelle les requêtes de données ne pourront sortir. alpha : opacité de la couche (comprise entre 0 et 1). L'opacité par défaut est égale à 1. etc... Pour plus d'information parcourir le tutoriel et la documentation technique Ajout d'une couche WFS Dans le code de l'application, ajouter une balise geoportail:wfs à l'intérieur de la balise geoportail:map.
113 24 Adding layers in MXML Exemples d'utilisation: <geoportail:wfs name="couche WFS" url=" typename="massedeauriviere" projection="epsg:2154" version="1.0.0" style="{style.getdefaultlinestyle()}" /> Paramètres : Pour paramétrer la couche, ajouter les attributs suivants à l'intérieur de la balise geoportail:wfs. Paramètres obligatoires: name : le nom que l'on souhaite donner à la couche. Ce nom sera, par exemple, utilisé pour identifier la couche dans le gestionnaire de couches. url : l'url du serveur où se trouvent les données de la couche. typename : identifiant de la couche fournie par le service. version : la version du protocole à utiliser. style : objet Style permettant de définir le style utilisé pour afficher la couche. Paramètres optionnels: projection : Projection géographique dans laquelle les données seront demandées au service. Par défaut la projection demandée est celle de la carte. maxextent : Emprise géographique maximale de laquelle les requêtes de données ne pourront sortir. alpha : opacité de la couche (comprise entre 0 et 1). L'opacité par défaut est égale à 1. etc... Pour plus d'information parcourir le tutoriel et la documentation technique Ajout d'une couche KML Dans le code de l'application, ajouter une balise geoportail:kml à l'intérieur de la balise geoportail:map Exemples d'utilisation: <geoportail:kml name="stations de Vélib à Paris" id="kmllayer" url=" style="{style.getdefaultpointstyle()}" srs="epsg:4326" /> Paramètres : Pour paramétrer la couche, ajouter les attributs suivants à l'intérieur de la balise geoportail:kml. Paramètres obligatoires: name : le nom que l'on souhaite donner à la couche. Ce nom sera, par exemple, utilisé pour identifier la couche dans le gestionnaire de couches. url : l adresse du fichier KML à récupérer. Paramètres optionnels:
114 24 Adding layers in MXML 110 proxy : l'adresse du serveur proxy de OpenScales. srs : la projection de la couche. style : objet Style permettant de définir le style utilisé pour afficher la couche. Etc. Pour plus d'information parcourir le tutoriel et la documentation technique Ajout d'une couche GPX Dans le code de l'application, ajouter une balise geoportail:gpx à l'intérieur de la balise geoportail:map Exemples d'utilisation: <geoportail:gpx id="gpxlayer" name="corse" version="1.0" url=" /> Paramètres : Pour paramétrer la couche, ajouter les attributs suivants à l'intérieur de la balise geoportail:gpx. Paramètres obligatoires: name : le nom que l'on souhaite donner à la couche. Ce nom sera, par exemple, utilisé pour identifier la couche dans le gestionnaire de couches. url : l adresse du fichier GPX à récupérer. Paramètres optionnels: proxy : l'adresse du serveur proxy de OpenScales. version : Numéro de la version de la norme GPX utilisée style : objet Style permettant de définir le style utilisé pour afficher la couche. etc. Pour plus d'information parcourir le tutoriel et la documentation technique Ajout d'une couche GeoRSS Dans le code de l'application, ajouter une balise geoportail:georss à l'intérieur de la balise geoportail:map Exemples d'utilisation: <geoportail:georss id="georsslayer" name="tremblements de terre" url=" /> Paramètres : Pour paramétrer la couche, ajouter les attributs suivants à l'intérieur de la balise geoportail:georss. Paramètres obligatoires: name : le nom que l'on souhaite donner à la couche. Ce nom sera, par exemple, utilisé pour identifier la couche dans le gestionnaire de couches. url : l'url du serveur où se trouvent les données de la couche. Paramètres optionnels:
115 24 Adding layers in MXML refreshdelay : le temps de rafraîchissement entre deux lectures du fichier contenant les données GeoRss (en millisecondes); maxextent : l'emprise géographique maximale de laquelle les requêtes de données ne pourront sortir; style : objet Style permettant de définir le style utilisé pour afficher la couche. alpha : l'opacité de la couche comprise entre 0 et 1 (0 totalement transparente). Etc. Pour plus d'information parcourir le tutoriel et la documentation technique. 111
116 25 Adding layers in as Adding layers in as Ajout de couches en as Ajout d'une couche WMS Ajout d'une couche WMTS Ajout d'une couche WFS Ajout d'une couche KML Ajout d'une couche GPX Ajout d'une couche GEORSS Cette méthode montre l'ajout de couches en ActionScript. Il s'agit d'utiliser la méthode addlayer de geoportail:map Ajout d'une couche WMS Pour ajouter une couche WMS en actionscript il faut ajouter une balise MXML : fx:script permettant de placer du code actionscript à l'intérieur de la balise s:application (avant la balise geoportail:map). <fx:script> <![CDATA[ import geoportal.layer.wms; private function addwmslayer():void{ var var var var var var // Création d'une nouvelle couche WMS name:string = "Carte Géologique"; url:string = " layers:string = "SCAN_F_GEOL250"; styles:string = ""; format:string = "image/png"; wmslayer:wms = new WMS(name,url,layers,styles,format); // Modification de certaines propriétés de la couche wmslayer.transparent = true; wmslayer.alpha = 0.5; // Ajout de la couche à la carte this.fxmap.addlayer(wmslayer); } ]]> </fx:script> Il faut ensuite faire exécuter cette méthode une fois l'application chargée en complétant la balise s:application avec l'attribut suivant :
117 25 Adding layers in as 113 creationcomplete="this.addwmslayer()" Contrairement au MXML, tous les paramètres d'une couche WMS ne peuvent être renseignés à la création de la couche en ActionScript. Pour renseigner ces paramètres, il faut utiliser des méthodes permettant d'y accéder (les getters). L'appel à ces méthodes se fait de la façon suivante nomdelacouche.nomdelapropriété = valeur. Dans l'exemple précédent, les propriétés transparent et alpha ont été définies de cette façon Paramètres : Pour paramétrer la couche, ajouter les attributs suivants à l'intérieur de la balise geoportail:wms. Paramètres obligatoires: name : le nom que l'on souhaite donner à la couche. Ce nom sera, par exemple, utilisé pour identifier la couche dans le gestionnaire de couches. url : l'url du serveur où se trouvent les données de la couche. layers : l'identifiant permettant de récupérer les données de la couche au niveau du serveur. version : la version du protocole à utiliser. Paramètres optionnels: transparent : true (la couche est transparente), false sinon. format : format de l'image retournée, 'image/png' par exemple. Le format par défaut est 'image/jpeg'. alpha : opacité de la couche (comprise entre 0 et 1). L'opacité par défaut est égale à 1. etc... Pour plus d'information parcourir le tutoriel et la documentation technique Ajout d'une couche WMTS Pour ajouter une couche WMTS en ActionScript il faut ajouter une balise MXML : fx:script permettant de placer du code actionscript à l'intérieur de la balise s:application (avant la balise s:geoportail:map).
118 25 Adding layers in as 114 <fx:script> <![CDATA[ import geoportal.layer.wmts; private function addwmts():void{ // Crée une nouvelle couche WMTS var wmts:wmts = new WMTS("WMTS ActionScript", ' "satellite", "EPSG:900913"); // Ajout de la couche à la carte this.fxmap.addlayer(wmts); // Ajoute le wmts à la carte fxmap.addlayer(wmts); } ]]> </fx:script> Il faut ensuite faire exécuter cette méthode une fois l'application chargée en complétant la balise s:application avec l'attribut suivant : creationcomplete="this.addwmts()" Exemples d'utilisation: Exemple d'ajout d'une couche WMTS en AS Paramètres : Pour paramétrer la couche, ajouter les attributs suivants à l'intérieur de la balise geoportail:wmts. Paramètres obligatoires: name : le nom que l'on souhaite donner à la couche. Ce nom sera, par exemple, utilisé pour identifier la couche dans le gestionnaire de couches. url : l'url du serveur où se trouvent les données de la couche. tilematrixset : Type d'ensemble de données demandée. layer : l'identifiant permettant de récupérer les données de la couche au niveau du serveur. format : format de l'image retournée, 'image/png' par exemple. Le format par défaut est 'image/jpeg'. Paramètres optionnels: projection : Projection géographique dans laquelle les données seront demandées au service. Par défaut la projection demandée est celle de la carte. maxextent : Emprise géographique maximale de laquelle les requêtes de données ne pourront sortir. alpha : opacité de la couche (comprise entre 0 et 1). L'opacité par défaut est égale à 1.
119 25 Adding layers in as 115 etc... Pour plus d'information parcourir le tutoriel et la documentation technique Ajout d'une couche WFS Pour ajouter une couche WFS en ActionScript il faut ajouter une balise MXML : fx:script permettant de placer du code actionscript à l'intérieur de la balise s:application (avant la balise s:geoportail:map). <fx:script> import geoportal.layer.wfs; import org.openscales.core.style.style; private function addwfslayer():void{ var wfs:wfs = new WFS( "WFS ActionScript", ' "sa:massedeauriviere", "1.0.0" ); wfs.style = Style.getDefaultLineStyle(); // Ajout de la couche à la carte this.fxmap.addlayer(wfs); } </fx:script> Il faut ensuite faire exécuter cette méthode une fois l'application chargée en complétant la balise s:application avec l'attribut suivant : creationcomplete="this.addwfslayer()" Paramètres : Pour paramétrer la couche, ajouter les attributs suivants à l'intérieur de la balise geoportail:wfs. Paramètres obligatoires: name : le nom que l'on souhaite donner à la couche. Ce nom sera, par exemple, utilisé pour identifier la couche dans le gestionnaire de couches. url : l'url du serveur où se trouvent les données de la couche. typename : identifiant de la couche fournie par le service. version : la version du protocole à utiliser. style : objet Style permettant de définir le style utilisé pour afficher la couche. Paramètres optionnels: projection : Projection géographique dans laquelle les données seront demandées au service. Par défaut la projection demandée est celle de la carte.
120 25 Adding layers in as 116 maxextent : Emprise géographique maximale de laquelle les requêtes de données ne pourront sortir. alpha : opacité de la couche (comprise entre 0 et 1). L'opacité par défaut est égale à 1. etc... Pour plus d'information parcourir le tutoriel et la documentation technique Ajout d'une couche KML Pour ajouter une couche KML en ActionScript il faut ajouter une balise MXML : fx:script permettant de placer du code actionscript à l'intérieur de la balise s:application (avant la balise s:geoportail:map). <fx:script> import geoportal.layer.kml; private var kmllayer:kml; private function addkmllayer():void{ // Crée une couche KML avec les paramètres nécessaires kmllayer = new KML("Stations de Vélib à Paris"," // Ajoute le layer à la carte fxmap.addlayer(kmllayer); } </fx:script> Il faut ensuite faire exécuter cette méthode une fois l'application chargée en complétant la balise s:application avec l'attribut suivant : creationcomplete="this.addkmllayer()" Paramètres : Pour paramétrer la couche, ajouter les attributs suivants à l'intérieur de la balise geoportail:kml. Paramètres obligatoires: name : le nom que l'on souhaite donner à la couche. Ce nom sera, par exemple, utilisé pour identifier la couche dans le gestionnaire de couches. url : l adresse du fichier KML à récupérer. Paramètres optionnels: proxy : l'adresse du serveur proxy de OpenScales. srs : la projection de la couche. style : objet Style permettant de définir le style utilisé pour afficher la couche. Etc. Pour plus d'information parcourir le tutoriel et la documentation technique.
121 25 Adding layers in as Ajout d'une couche GPX Pour ajouter une couche GPX en ActionScript il faut ajouter une balise MXML : fx:script permettant de placer du code actionscript à l'intérieur de la balise s:application (avant la balise s:geoportail:map). <fx:script> <![CDATA[ import geoportal.layer.gpx; private var gpxlayer:gpx; private function addgpxlayer():void{ // Crée une couche GPX avec les paramètres nécessaires gpxlayer = new GPX("CoucheGPX","1.0"," // Ajoute le layer à la carte fxmap.addlayer(gpxlayer); } ]]> </fx:script> Il faut ensuite faire exécuter cette méthode une fois l'application chargée en complétant la balise s:application avec l'attribut suivant : creationcomplete="this.addgpxlayer()" Paramètres : Pour paramétrer la couche, ajouter les attributs suivants à l'intérieur de la balise geoportail:gpx. Paramètres obligatoires: name : le nom que l'on souhaite donner à la couche. Ce nom sera, par exemple, utilisé pour identifier la couche dans le gestionnaire de couches. url : l adresse du fichier GPX à récupérer. Paramètres optionnels: proxy : l'adresse du serveur proxy de OpenScales. version : Numéro de la version de la norme GPX utilisée style : objet Style permettant de définir le style utilisé pour afficher la couche. etc. Pour plus d'information parcourir le tutoriel et la documentation technique Ajout d'une couche GeoRSS Pour ajouter une couche GeoRSS en ActionScript il faut ajouter une balise MXML : fx:script permettant de placer du code actionscript à l'intérieur de la balise s:application (avant la balise s:geoportail:map).
122 25 Adding layers in as 118 <fx:script> <![CDATA[ import geoportal.layer.georss; // Crée une couche GeoRss avec les paramètres nécessaires private var georsslayer:georss = new GeoRss("French Regions", " private function addgeorsslayer():void { // Ajoute le layer à la carte fxmap.addlayer(georsslayer); } ]]> </fx:script> Il faut ensuite faire exécuter cette méthode une fois l'application chargée en complétant la balise s:application avec l'attribut suivant : creationcomplete="this.addgpxlayer()" Paramètres : Pour paramétrer la couche, ajouter les attributs suivants à l'intérieur de la balise geoportail:georss. Paramètres obligatoires: name : le nom que l'on souhaite donner à la couche. Ce nom sera, par exemple, utilisé pour identifier la couche dans le gestionnaire de couches. url : l'url du serveur où se trouvent les données de la couche. Paramètres optionnels: refreshdelay : le temps de rafraîchissement entre deux lectures du fichier contenant les données GeoRss (en millisecondes); maxextent : l'emprise géographique maximale de laquelle les requêtes de données ne pourront sortir; style : objet Style permettant de définir le style utilisé pour afficher la couche. alpha : l'opacité de la couche comprise entre 0 et 1 (0 totalement transparente). Etc. Pour plus d'information parcourir le tutoriel et la documentation technique.
123 26 Adding controls 26 Adding controls Ajout de contrôles Les contrôles Ajout en MXML Ajout en ActionScript Les contrôles Les contrôles sont des composants permettant de manipuler la carte : afficher et réorganiser les couches, déplacer la carte, zoomer... Pour insérer automatiquement ces contrôles par défaut, il suffit de positionner le paramètre defaultcontrols de la balise Map à true Ajout en MXML Pour rajouter des contrôles, il suffit d'ajouter les balises correspondantes à l'intérieur de la balise geoportail:map. Exemple : <geoportail:map id="fxmap"... defaultcontrols="false" > (...) <geoportail:permanentlogo bottom="15" left="15" /> (...) </geoportail:map> Ajout en ActionScript Il est également possible d'ajouter des contrôles à la carte en ActionScript, grâce à la méthode addcontrol du composant Map. Par exemple, on peut rajouter le composant LayerManager, en rajoutant le script suivant dans l'application (avant le composant Map) : <fx:script> import geoportalfx.control.layermanager.fxlayermanager; private function addlayermanager():void{ // Crée un nouveau LayerManager var control:fxlayermanager = new FxLayerManager(); // Ajoute le LayerManager à la carte fxmap.addcontrol(control); } </fx:script>
124 26 Adding controls 120 Puis faire exécuter cette méthode une fois l'application chargée en complétant la balise s:application avec l'attribut suivant : creationcomplete="this.addlayermanager()"
125 27 Compiling Compiling Compiler l'api Pour commencer La première étape est de télécharger le code source (Voir Téléchargements). Le projet API utilise Maven pour sa compilation et son installation. Python est aussi utilisé pour la compression des Javascripts, et Perl pour un proxy CGI en local Organisation de l'api Un fichier README.TXT à la racine du code source explique comment compiler le code source et déployer les paquets générés par la compilation (Code source "compilé" et pages "naturaldocs"). Le répertoire contenant le code Javascript réside dans src/main/javascript. Ce répertoire est divisé en plusieurs parties : geoportal openlayers C'est le répertoire source de l'api C'est le répertoire source d'openlayers utilisé par l'api proj4js C'est le répertoire source de PROJ4JS utilisé pour les reprojections. flex C'est le répertoire contenant la bibliothèque swfobject utilisée pour intégrer et dialoguer avec une applications flash (.swf) Les répertoires openlayers et proj4js contiennent le code original. Toutes modifications apportées à ces sources sont localisées dans le répertoire geoportal/lib : Geoportal OpenLayers proj4js Contient le code source principal de l'api La structure globale est la même que pour OpenLayers Contient les fichiers de surcharge d'openlayers OverloadedOpenLayersMinimum.js, OverloadedOpenLayersStandard.js et OverloadedOpenLayersExtended.js. Contient le fichier de surcharge de PROJ4JS OverloadedProj4js.js, ainsi que les répertoires catalogues et projcode. Le premier supporte un catalogue EPSG partiel et un catalogue IGNF. Ces catalogues décrivent les systèmes de référence spatiale utilisés par l'api. Le second répertoire contient les nouveaux algorithmes utilisés par l'api si nécessaire.
126 28 OpenLayers OpenLayers Lien avec OpenLayers (API Web 2D en Javascript) Contexte La librairie OpenLayers est principalement une bibliothèque de fonctions Javascript assurant un noyau de fonctionnalités permettant l'écriture d'une application client légère en Javascript. Une partie de cette bibliothèque permet aussi de gérer l'ergonomie proposée à l'utilisateur, mais ce n'est pas directement son rôle. L'API Géoportail fournit des fonctionnalités supplémentaires à OpenLayers, ainsi qu'une interface utilisateur toute faite. L'objectif de l'ign est, en relation avec le projet OpenLayers, de permettre que des fonctionnalités de l'api Géoportail puissent être portées dans le noyau OpenLayers et que la partie graphique soit construite sur celle-ci. Pour ce faire, l'ign est membre associé à l' OSGeO, participe déjà aux projets proj4, gdal, geoserver et a fourni des patches au projet proj4js. L'apport de l'ign aux projets OpenSource est dédié à la partie géographique de ces derniers où l'expertise de l'ign est reconnue par ses partenaires et utilisateurs La surcouche Géoportail La classe Geoportal.Map, présentée dans la partie Utilisateur, propose des méthodes qui permettent de créer et de configurer facilement une carte. Les fonctionnalités qu'elle propose devraient suffire à la plupart des utilisateurs. Ceux qui souhaitent aller plus loin peuvent le faire puisqu'ils ont également accès à toutes les fonctionnalités d'openlayers. À cet effet, la classe Geoportal.Map est une sous-classe de OpenLayers.Map. Si on utilise une visualisation à base de Geoportal.Viewer, il est possible d'utiliser la méthode getmap() pour récupérer l'objet OpenLayers.Map. Il s'agit de l'instance de la carte du point de vue OpenLayers. //olmap est une instance de la classe OpenLayers.Map var olmap = visualiseur.getmap(); Cet objet contient des références vers tous les objets qui composent la carte (les couches de données, les contrôles,...). Une fois cette instance récupérée, le webmestre peut donc modifier tous les objets de la carte en utilisant les méthodes propres à OpenLayers, puisque l'objet OpenLayers est accessible. //L'objet OpenLayers et toutes les méthodes qu'il propose sont utilisables. var layer = new OpenLayers.Layer.WMS(...); olmap.addlayer(layer); On peut donc utiliser toutes les méthodes de l'objet OpenLayers, et même plus. En effet, l'api 2D surcharge OpenLayers. Pour cela, elle définit de nouvelles classes qui héritent des classes de base d'openlayers. Par exemple, la classe Geoportal.Map est une classe propre à l'api qui surcharge OpenLayers.Map. La documentation de l'api est accessible ici.
127 29 Advanced WMTS layers Advanced WMTS layers Utilisation avancée de couches en WMTS Introduction Parmi les principales évolutions des APIS du Géoportail, le remplacement des flux tuilés de la recommandation OS-GeO WMS-C par la norme WMTS est actée. La norme WMTS est proche de celle du WMS. Mais au lieu de générer une image à chaque requête comme dans le cas du WMS, le WMTS permet de renvoyer de petites images pré-générées (tuiles) ou de réutiliser des images précédemment créées pour une même requête (cache). Ce chapitre explique comment accéder au cache du Géoportail 3 sans passer par les APIS(minimum, standard et avancée) Fabrication d'une requête WMTS Le cache du Géoportail 3 est une pyramide d'images dont les résolutions ont été données plus avant. Chaque niveau de la pyramide contient des tuiles de 256 par 256 pixels Exemple de requête wmts: EXCEPTIONS=text/xml&FORMAT=image/jpeg& SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&STYLE=normal& TILEMATRIXSET=PM& TILEMATRIX=18& TILEROW=90241& TILECOL=132877& Les paramètres d'une requête wmts: 1. TILEMATRIXSET: Le nom de la pyramide d'images 1. TILEMATRIX: Le nom de la matrice qui contient la tuile 2. TILEROW: Le numéro de ligne du coin supérieur gauche de la tuile 3. TILECOL: Le numéro de colonne du coin supérieur gauche de la tuile Comment calculer les paramètres (ligne/colonne) du coin supérieur gauche d'une tuile recouvrant un point en coordonnées géographiques? Il faut d'abord convertir les coordonnées dans le système de projection cible: Web Mercator. Il est possible d'utiliser le logiciel cs2cs de la bibliothèque PROJ.4 ou l'api Géoportail qui repose sur le portage en Javascript de PROJ.4, PROJ4JS. Le code source de ces bibliothèques fournit les algorithmes utilisés pour ces projections et, par conséquent, réutilisable dans d'autres langages de programmation. Les coordonnées initiales sont, par exemple : 2 28'44.1", 48 48'20.3" en degrés sexagésimaux, soit , en degrés décimaux.
128 29 Advanced WMTS layers 124 L'origine du niveau est à récupérer dans les capabities du service, elle correspond au paramètre TopLeftCorner (cf. figure 3). Dans notre cas: X0= Y0= Les coordonnées en Web Mercator dans le repère de la grille sont ( , ) : $ cs2cs -f "%.2f" +init=epsg:4326 +to +init=epsg: X-X0= = Y0-Y= = Formule Si l'installation de PROJ.4 n'est pas possible, il est possible d'utiliser la formule simplifiée suivante pour la projection Web Mercator ( lon étant la longitude en radians, lat étant la latitude en radians) : a: rayon équatorial (demi grand axe) de l ellipsoïde, vaut mètres X= a * lon Y= a * ln(tan(lat/2 + pi/4)) NB: la formule ci-dessus permettant de calculer l'ordonnée est équivalent à celle-ci: Y= a/2 * ln((1+sin(lat))/(1-sin(lat)) 29.Calcul des paramètres TILEROW / TILECOL du coin supérieur gauche de l'emprise : On cherche les paramètres ligne/colonne de la dalle recouvrant ce point à l'échelle 1/2133ième (1 pixel vaut m x m), sachant qu'une dalle fait 256 pixels par 256 pixels : x = mètres de largeur/hauteur de la tuile à la résolution cherchée ; 2. l'abscisse permet de calculer le nombre de tuiles depuis l'origine du cache (qui vaut 0) : / = la partie entière vaut donc : ; 4. l'ordonnée permet de calculer le nombre de tuiles depuis l'origine du cache (qui vaut 0) : / = la partie entière vaut donc : ; 6. les paramètres TILEROW/TILECOL sont : (90241, ) ; Quelles sont les couches du Géoportail (paramètre LAYERS) pour le service WMTS? Elles sont définies là Exemples de requête WMTS pour la dalle recouvrant le point (2 28'44.1", 48 48'20.3") : À l'échelle Rue, zoom 18 (1 pixel vaut m x m) sur les photographies aériennes :
129 29 Advanced WMTS layers EXCEPTIONS=text/xml&FORMAT=image/jpeg& SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&STYLE=normal& TILEMATRIXSET=PM& TILEMATRIX=18& TILEROW=90241& TILECOL=132877& Noter que le paramètre TILEMATRIX correspond au niveau de zoom de la carte: 125
130 30 API key API key Clef API et droits d'accès aux services Web. Cette page traite du mode de sécurisation de la plateforme Géoportail au travers des clefs d'accès. Principe Clefs Autoconfiguration Autoconfiguration en local Principe Chaque requête aux serveurs nécessite une clef d'accès qui dispose d'un mode d'authentification propre. Une clef d'accès est représentée par une chaîne unique de 24 caractères alpha-numériques. Une clef donne accès à des services accessibles via des URL du type : http(s)://wxs.ign.fr/context/service Il faut insérer la clef entre le nom du domaine et le chemin au service, ainsi on obtient : http(s)://wxs.ign.fr/cle/context/service Il peut exister jusqu'à 3 contextes différents pour la plupart des services : geoportail : les données/services fournis par l'infrastructure Géoportail sous condition d'utilisation IGN; inspire : les données/services dans le cadre INSPIRE fournis par l'infrastructure Géoportail sous condition d'utilisation INSPIRE; edugeo : les données/services pour l' Education Nationale fournis par l'infrastructure Géoportail sous condition d'utilisation spécifique. Exemples d'url : Clefs Obtention d'une clef Deux sites permettent d obtenir des clefs d accès à la plateforme Géoportail : 1. le site api.ign.fr qui délivre des clefs de développement 2. le site professionnels.ign.fr qui délivre des clefs d exploitation Les clefs délivrées par le site api.ign.fr sont des clefs dites de développement pour une utilisation en mode "bac à sable". A savoir : 1. l'utilisateur vérifie qu'il peut réaliser son projet avec les services de la plateforme Géoportail à l'aide de ces clefs. Ce temps de vérification est limité dans la durée et ne nécessite pas un accès à toutes les ressources disponibles. Par contre, il permet un accès à tous les types de clefs (web, sig, mobile et web3d) et de ressources (OpenLS, WMTS, WFS, WMS et Altimétrie).
131 30 API key Lorsqu'il se lance dans la réalisation de son projet, il passe sur des clefs du site professionnels.ign.fr même pour sa plateforme de développement, de recette, de qualification ou autre environnement de ce genre. En effet, il s agit d environnements destinés à perdurer le temps du projet et pour lesquels l accès à des ressources particulières peut-être nécessaire. Les clefs délivrées par le site professionnels.ign.fr permettent un accès à toutes les ressources de la plateforme Géoportail auquelles les licences d exploitation donnent accès. Le site professionnels.ign.fr permet au détenteur de la clef de gérer lui même la durée de son contrat, d accéder aux statistiques d utilisation des différentes ressources de sa clef et gérer le nombre de ressources Types de clefs Il existe plusieurs types de clefs : Les clefs referer/ip/user-agent sont authentifiées auprès des serveurs à partir d'un ou plusieurs de ces trois critères. Certaines clefs ont une sécurité qui porte uniquement sur le Referer, d'autres plus restrictives ont une sécurité qui porte à la fois sur l'ip et le User-Agent de la requête entrante. Toutes les combinaisons sont possibles. Ces paramètres sont lus à partir des informations obtenues par la requête entrante; Sécurisation par referer : Le Referer est la valeur de l'entête HTTP "referer" véhiculée dans les requêtes HTTP émises par les navigateurs. Cette valeur est l'url de la page consultée émettrice de la requêtes. Si la clef comprend une sécurisation par referer alors la plateforme Géoportail va vérifier que la valeur de l'entête "referer" est un sous-domaine de l'url déclarée lors de la création de la clef. La sécurisation par referer est donc préconisée pour les accès à la plateforme via une application WEB. Sécurisation par IP ou plage d'ips : Lorsque la clef est sécurisée selon ce mode, la plateforme Géoportail va vérifier que la requête est émise par unes des adresses IPs déclérées lors de création de la clef. Cet type de sécurisation est destiné à des applications tournant sur un nombre limité de poste (par exemple pour un intranet). Sécurisation par User-Agent : Le user-agent est la valeur de l'entête HTTP "User-Agent" véhiculée dans les requêtes HTTP émises par diverses applications (dont les navigateurs). Cette valeur permet d'identifier l'application émettrice de la requête (notamment, nom, numéro de version,... ). Si la clef comprend une sécurisation par User-Agent alors la plateforme Géoportail va vérifier que la valeur de l'entête "User-Agent" correspond à celle déclarée lors de la création de la clef. La sécurisation par User-Agent est préconisée pour les accès à la plateforme via des applications lourdes ou mobiles, capables de forger ellesmême leur entête User-Agent. Les clefs login/password sont authentifiées par le protocole HTTP AuthBasic qui consiste à envoyer dans un en-tête d'authentification l'identifiant et le mot de passe cryptés de l'utilisateur. Pour utiliser ce type de clef et accéder aux services, il est nécessaire d'être en possession de l'identifiant/mot de passe associé à la clef. Il est recommandé d'utiliser le protocole HTTPS pour ce type de clef. La sécurisation par Login/password est préconisée pour les accès à la plateforme via des applications de type SIG. En cas d'erreur d'authentification, une erreur HTTP 403 est retournée. Une erreur 401 peut-être retournée lorsque il s'agit d'une clef login/password et que l'en-tête d'authentification est absent. Dans ce cas, le navigateur affiche une fenêtre permettant la saisie de ces informations Services disponibles Ci-dessous une liste non exhaustive des services du Géoportail protégés par le droits d'accès aux services : WMS en version WFS en version 2.0.0
132 30 API key 128 WMTS en version OpenLS en version CSW ISO API en version Service Altimétrique (interface REST ou WPS) Vecteurs tuilés (KML) KML/Collada (diffusion d'objets 3D) Ressources disponibles pour une ou plusieurs clefs - autoconfiguration des APIs L'infrastructure du Geoportail propose un service, dit d'auto-configuration qui, pour une ou plusieurs clefs données, retourne des informations telles que : les paramètres permettant de configurer une visualisation web par défaut (taille, territoire, couches à afficher) ; les paramètres techniques (configuration des services WMTS : TileMatrixSets, listes des résolutions, configuration des territoires : emprise, centre de visualisation,...) ; la liste des ressources (couches) disponibles et les informations permettant d'y accéder (url, emprises, echelles d'affichage,...) Accès au service On accède au service via une URL de ce type : où CLEF, CLEF2,... sont des clefs de contrat API. Si aucune clef n'est spécifiée, la description de toutes les ressources exposées par l'infrastructure Géoportail est retournée Réponse du service La réponse du service est un fichier XML dont la structure hérite du standard OGC Web Map Context. Ce fichier est donc constitué d'une balise principale <ViewContext> qui comprend deux grandes parties. Une comprenant des paramètres communs à tous les services de la plateforme (balise <General>) et une autre consacrée aux ressources accessibles à l'aide d'une clef (balise <LayerList>). La balise <General> On trouvera dans cette balise des informations sur : la définition des territoires français couverts par la plateforme Géoportail (balise <gpp:territories>). Notamment, leurs noms, identifiants, les SRS supportés, leurs emprises géographiques, les échelles min et max de visualisation sur ces territoires, les centres pour la visualisation (qui ne sont pas forcément des centroïdes) et les couches d'affichage par défaut pour ces territoires. Ex. :
133 30 API key 129 <gpp:territories> <gpp:territory default="1" id="fxx" name="fxx"> <gpp:defaultcrs>epsg:3857</gpp:defaultcrs> <gpp:additionalcrs>crs:84</gpp:additionalcrs> <gpp:additionalcrs>ignf:rgf93g</gpp:additionalcrs> <gpp:additionalcrs>epsg:4171</gpp:additionalcrs> <gpp:additionalcrs>ignf:lamb93</gpp:additionalcrs> <gpp:additionalcrs>epsg:2154</gpp:additionalcrs> <gpp:additionalcrs>ignf:lambe</gpp:additionalcrs> <gpp:additionalcrs>epsg:27582</gpp:additionalcrs> <gpp:additionalcrs>epsg:27572</gpp:additionalcrs> <gpp:boundingbox>-31.17,27.33,69.03,80.83</gpp:boundingbox> <sld:minscaledenominator>533</sld:minscaledenominator> <sld:maxscaledenominator> </sld:maxscaledenominator> <gpp:resolution> </gpp:resolution> <gpp:center> <gpp:x> </gpp:x> <gpp:y> </gpp:y> </gpp:center> <gpp:defaultlayers> <gpp:defaultlayer layerid="orthoimagery.orthophotos$geoportail:ogc:wmts"/> <gpp:defaultlayer layerid="geographicalgridsystems.maps$geoportail:ogc:wmts"/> <gpp:defaultlayer layerid="cadastralparcels.parcels$geoportail:ogc:wmts"/> <gpp:defaultlayer layerid="elevation.elevationgridcoverage$geoportail:ogc:wmts"/> <gpp:defaultlayer </gpp:defaultlayers> </gpp:territory>... <gpp:territories> la définition des niveaux d'échelle pour le WMTS (balise <gpp:tilematrixsets>) qui permet de définir les pyramides des caches WMTS (cf. la page sur le sujet). Ainsi, pour une pyramide donnée (balise <wmts:tilematrixset>), chaque niveau est détaillé (balise <wmts:tilematrix>) avec son identifiant (le niveau), son dénominateur d'échelle correspondant, le positionnement de l'origine de la grille et le nombre de tuiles en largeur et hauteur pour la grille. Exemple :
134 30 API key 130 <gpp:tilematrixsets> <wmts:tilematrixset> <ows:identifier>pm</ows:identifier> <ows:supportedcrs>epsg:3857</ows:supportedcrs> <wmts:tilematrix> <ows:identifier>0</ows:identifier> <wmts:scaledenominator> </wmts:scaledenominator> <wmts:topleftcorner> </wmts:TopLeftCorner> <wmts:tilewidth>256</wmts:tilewidth> <wmts:tileheight>256</wmts:tileheight> <wmts:matrixwidth>1</wmts:matrixwidth> <wmts:matrixheight>1</wmts:matrixheight> </wmts:tilematrix> <wmts:tilematrix> <ows:identifier>1</ows:identifier> <wmts:scaledenominator> </wmts:scaledenominator> <wmts:topleftcorner> </wmts:TopLeftCorner> <wmts:tilewidth>256</wmts:tilewidth> <wmts:tileheight>256</wmts:tileheight> <wmts:matrixwidth>2</wmts:matrixwidth> <wmts:matrixheight>2</wmts:matrixheight> </wmts:tilematrix>... </wmts:tilematrixset>... </gpp:tilematrixsets> les résolutions correspondantes à chaque niveau d'échelle dans le système natif Pseudo Mercator (balise <gpp:resolutions>). la description de certains services de la plateforme (balise <gpp:services>). Cette balise fournit les URLs "absolues" (à savoir sans clefs) de certains services tels que le Géocodage et l'autocompletion. Cette balise sera bientôt dépréciée. La récupération de l'url des services doit se faire à l'aide des balises relatives aux resources autorisées qui comprennent la clef avec laquelle l'interrogation su service d'autoconfiguration a été faite. La balise <LayerList> Cette balise décrit les ressources accessibles à l'aide de la clef fournie. Chaque ressource est décrite par une balise <Layer>. Selon le type de ressource, le contenu peut changer. Resource de type WMTS (Couche) : Il s'agit d'une couche du service WMTS de la plateforme Géoportail. La balise <Name> contient le nom de la couche au sens du service ; la balise <FormatList> permet de préciser les différents formats d'image dans lesquels la couche est accessible ; la balise <StyleList> décrit les valeurs possibles pour le paramètre Style d'uen requête GetTile ; la balise <gpp:originators> permet de préciser les informations relatives aux organismes originaires des données servies en fonction de l'échelle et de l'emprise d'affichage ; la balise <gpp:legends> fournit les liens vers les différents fichiers de légende en fonction du niveau d'échelle ;
135 30 API key 131 la balise <wmts:tilematrixsetlink> précise les restrictions sur le TMS ; la balise <gpp:metadataurl> contient les liens vers les fichiers de métadonnées relatifs à la donnée servie ; la balise <gpp:keys> contient les URLs d'accès au service avec la clef utilisée pour l'autoconfiguration. Exemple de balise <Layer> pour une ressource WMTS :
136 30 API key 132 <Layer hidden="0" queryable="0"> <Server service="ogc:wmts" title="photographies aériennes" version="1.0.0"> <OnlineResource xlink:href=" xlink:type="simple"/></server <Name>ORTHOIMAGERY.ORTHOPHOTOS</Name> <Title>Photographies aériennes</title><abstract>photographies aériennes</abstract> 2015, Institut <sld:minscaledenominator>1067</sld:minscaledenominator> <sld:maxscaledenominator> </sld:maxscaledenominator> <FormatList><Format current="1">image/jpeg</format></formatlist> <StyleList><Style current="1"><name>normal</name><title>données Brutes</Title></Style></Styl <DimensionList> <Dimension name="type" unitsymbol="" units="" uservalue="">2d</dimension> <Dimension name="visibilityrange" unitsymbol="" units="" uservalue=""> <Dimension name="visibilitymode" unitsymbol="" units="" uservalue="">resolution</dimensi <Dimension name="nodatavalue" unitsymbol="" units="" uservalue="">ffffff</dimension> </DimensionList> <Extension> <gpp:layer id="orthoimagery.orthophotos$geoportail:ogc:wmts" order=" "> <gpp:thematics><gpp:thematic>photographies</gpp:thematic></gpp:thematics> <gpp:inspirethematics><gpp:inspirethematic>ortho-imagerie</gpp:inspirethematic></gpp <gpp:boundingbox maxt=" " mint=" "> ,-84.0,178.0,84.0</gp <gpp:originators> <gpp:originator name="ign"> <gpp:attribution>institut national de l'information géographique et forestiè <gpp:logo> <gpp:url> <gpp:constraints> <gpp:constraint> <gpp:crs>epsg:4326</gpp:crs> <gpp:boundingbox maxt=" " mint=" "> ,-21. <sld:minscaledenominator>2133</sld:minscaledenominator> <sld:maxscaledenominator>2133</sld:maxscaledenominator> </gpp:constraint>... </gpp:constraints> </gpp:originator>... </gpp:originators> <gpp:legends> <gpp:legend> <sld:minscaledenominator>2133</sld:minscaledenominator> <gpp:legendurl format="format"><onlineresource xlink:href=" </gpp:legend>... </gpp:legends> <gpp:quicklook><onlineresource xlink:href=" <wmts:tilematrixsetlink> <wmts:tilematrixset>pm</wmts:tilematrixset> <wmts:tilematrixsetlimits> <wmts:tilematrixlimits> <wmts:tilematrix>10</wmts:tilematrix> <wmts:mintilerow>31</wmts:mintilerow> <wmts:maxtilerow>992</wmts:maxtilerow> <wmts:mintilecol>5</wmts:mintilecol> <wmts:maxtilecol>1018</wmts:maxtilecol> </wmts:tilematrixlimits>... </wmts:tilematrixsetlimits> </wmts:tilematrixsetlink> National de l'information Géographique et Forestière - France ALL RIGHTS <gpp:metadataurl format="xml"><onlineresource xlink:href=" <gpp:keys> <gpp:key id="clef">
137 30 API key 133 Resource de type OpenLS (Géocodage direct ou inverse) ou d'autocomplétion : Les droits d'accès au géocodage reposent sur le type de données géocodées (PositionOfInterest, StreetAddress, CadastralParcels). Pour chacun de ces types, on aura une balise pour le service de Gécodage Direct, une pour le Géocodage Inverse et une autre pour le service d'autocomplétion. Pour chacune des trois, la signification des balises est la même. Exemple de balise <Layer> pour une ressource de type Géocodage : <Layer hidden="0" queryable="0"> <Server service="ogc:openls;reversegeocode" title="géocodage inverse par lieux" version="1.2 <Name>PositionOfInterest</Name> <Title>Dénominations géographiques</title> <Abstract>Noms de zones, de régions, de localités, de grandes villes, de banlieues, de ville <Extension> <gpp:layer id="positionofinterest$geoportail:ogc:openls" visibleincatalog="0"> <gpp:thematics><gpp:thematic>toponymes</gpp:thematic></gpp:thematics><gpp:inspirethe <gpp:keys> <gpp:key id="clef"> </gpp:keys> </gpp:layer> </Extension> </Layer> Utilisation du service Les apis web mises à disposition par l'ign utilisent toutes ce service de manière transparente pour le développeur web pour initialiser la fenêtre cartographique Mise en cache du service d'autoconfiguration des APIs La réponse du service d'autoconfiguration des APIs est assez volumineuse et cela augmente avec le nombre de ressources disponibles. Cela peut parfois peser dans le temps de chargement d'une page web utilisant les APIs Géoportail. Pour pallier à ce problème, il est possible d'enregistrer la réponse de ce service pour la clef de son application sur le serveur de cette dernière. Ainsi le chargement se fera directement depuis le serveur de la page sans accéder aux serveurs de l'ign. Pour cela, il faut procéder en deux étapes : 1. Récupérer le fichier d'autocnfiguration en local. L'API Javascript charge ce fichier avec le protocole JSONP. Il faut donc le récupérer selon le même principe. Si CLEF est la clef du contrat, on récupère notre fichier via l'url : 2. Paramétrer l'api pour qu'elle utilise le fichier en local. Si on a sauvegardé le résultat du service d'autoconfiguration dans le fichier chemin/vers/ autoconf.js alors, on indique à l'api Javascript qu'il faut utiliser ce fichier de la manière suivante : avec le Loader. Le chemin vers le fichier d'autoconfiguration est précisé avec la propriété "geormurl" du cinquième paramètre de la fonction Geoportal.load()
138 30 API key 134 iv= Geoportal.load( // div's ID: 'viewerdiv', // API's keys: [CLEF], {// map's center : // longitude: lon: , // latitude: lat: }, 10, {... geormurl:'chemin/vers/autoconf.js',... } ); Sans le loader. On rajoute le chemin vers le fichier dans les paramètres de l'appel à la fonction Geoportal.GeoRMHandler.getConfig() : Geoportal.GeoRMHandler.getConfig( [APIkey], null, 'chemin/vers/autoconf.js', { oncontractscomplete: initmap } ); Remarques : 1. le chemin vers le fichier est un chemin (du point de vue du navigateur) relatif à partir de l'emplacement de la page html qui charge les fichiers. 2. Si vous modifiez les droits associés à votre clef, il faudra renouveler l'opération de façon à mettre à jour le fichier de réponse qui aura changé.
139 31 Advanced search services Advanced search services Moteurs de recherche Recherche par lieux Recherche par unités administratives Recherche par adresses Recherche par parcelles cadastrales Recherche inverse Requêtes GET KVP Le service d'autocomplétion Les moteurs de recherche du Géoportail reposent sur le standard OGC "Location Utility Service" (OpenLS). Les requêtes OpenLS peuvent être soit des requêtes POST XML, soit des requêtes KVP GET. Comme l'accès aux moteurs de recherche est protégé par le contrôle des droits d'accès, l'url de la requête doit contenir la clef associée au contrat qui autorise l'accès aux ressources du moteur de recherche Recherche par lieux Quand l'attribut countrycode de la balise Address d'une requête est égal à "PositionOfInterest", il spécifie une recherche par lieux Corps de la requête du POST XML : La balise freeformaddress contient la localisation à rechercher : <?xml version="1.0" encoding="utf-8"?> <XLS xmlns:xls=" xmlns:gml=" xmlns=" xmlns:xsi=" version="1.2" xsi:schemalocation=" <RequestHeader/> <Request requestid="1" version="1.2" methodname="locationutilityservice"> <GeocodeRequest returnfreeform="false"> <Address countrycode="positionofinterest"> <freeformaddress>rennes</freeformaddress> </Address> </GeocodeRequest> </Request> </XLS> Réponse XML : La localisation géographique est stockée dans la balise Point. La balise Place contient le nom trouvé. La balise GeocodeMatchCode contient un indicateur de pertinence.
140 31 Advanced search services 136 <?xml version="1.0" encoding="utf-8" standalone="yes"?> <XLS version="1.2" ns4:schemalocation=" xmlns=" xmlns:ns4=" xmlns:xlsext=" xmlns:gml=" <ResponseHeader/> <Response version="1.2" requestid="1"> <GeocodeResponse> <GeocodeResponseList numberofgeocodedaddresses="2"> <GeocodedAddress> <gml:point> <gml:pos> </gml:pos> </gml:point> <Address countrycode="positionofinterest"> <StreetAddress> <Street></Street> </StreetAddress> <Place type="municipality">rennes</place> <Place type="departement">47</place> <Place type="bbox"> ; ; ; </place> <Place type="importance">8</place> <Place type="commune">saint-maurin</place> <Place type="nature">lieu-dit habité</place> <Place type="territoire">fxx</place> <PostalCode>47270</PostalCode> </Address> <GeocodeMatchCode matchtype="city" accuracy="1.0"/> </GeocodedAddress> <GeocodedAddress> <gml:point> <gml:pos> </gml:pos> </gml:point> <Address countrycode="positionofinterest"> <StreetAddress> <Street></Street> </StreetAddress> <Place type="municipality">rennes</place> <Place type="departement">72</place> <Place type="bbox"> ; ; ; </place> <Place type="importance">8</place> <Place type="commune">lhomme</place> <Place type="nature">lieu-dit habité</place> <Place type="territoire">fxx</place> <PostalCode>72340</PostalCode> </Address> <GeocodeMatchCode matchtype="city" accuracy="1.0"/> </GeocodedAddress> </GeocodeResponseList> </GeocodeResponse> </Response> </XLS>
141 31 Advanced search services Recherche par unités administratives Quand l'attribut countrycode de la balise Address d'une requête est égal à "Administratif", il spécifie une recherche par unités administratives Corps de la requête du POST XML : La balise freeformaddress contient le nom du département ou de la région à rechercher : <?xml version="1.0" encoding="utf-8"?> <XLS xmlns:xls=" xmlns:gml=" xmlns=" xmlns:xsi=" version="1.2" xsi:schemalocation=" <RequestHeader/> <Request requestid="1" version="1.2" methodname="locationutilityservice"> <GeocodeRequest returnfreeform="false"> <Address countrycode="administratif"> <freeformaddress>bretagne</freeformaddress> </Address> </GeocodeRequest> </Request> </XLS> Réponse XML : La localisation géographique stockée dans la balise Point correspond à un ponctuel situé sur bâtiment préfectoral de l'unité administrative qui est renvoyée. La balise Address contient l ensemble des informations sur le département ou la région retourné(e) par le service (nom, emprise géographique, chef-lieu, code INSEE du département et/ou de la région). Ces attributs sont présentés dans les balises Place.
142 31 Advanced search services 138 <?xml version="1.0" encoding="utf-8"?> <XLS version="1.2" xmlns=" xmlns:gml=" xmlns:xls=" xmlns:xlsext=" xmlns:xsi=" xsi:schemalocation=" <ResponseHeader/> <Response requestid="1" version="1.2"> <GeocodeResponse> <GeocodeResponseList numberofgeocodedaddresses="1"> <GeocodedAddress> <gml:point> <gml:pos> </gml:pos> </gml:point> <Address countrycode="administrativ"> <StreetAddress> <Street/> </StreetAddress> <Place type="municipality">bretagne</place> <Place type="bbox"> ; ; ; </place> <Place type="prefecture">rennes</place> <Place type="inseeregion">53</place> <PostalCode>53</PostalCode> </Address> <GeocodeMatchCode accuracy="1.0" matchtype="city"/> </GeocodedAddress> </GeocodeResponseList> </GeocodeResponse> </Response> </XLS> Recherche par adresses Quand l'attribut countrycode de la balise Address d'une requête est égal à "StreetAddress", il spécifie une recherche par Adresses.
143 31 Advanced search services Recherche non structurée : 31.Corps du POST : <?xml version="1.0" encoding="utf-8"?> <XLS xmlns:gml=" xmlns=" xmlns:xsi=" version="1.2" xsi:schemalocation=" <RequestHeader srsname="epsg:4326"/> <Request maximumresponses="25" methodname="geocoderequest" requestid="uid42" version="1.2"> <GeocodeRequest returnfreeform="false"> <Address countrycode="streetaddress"> <freeformaddress>2 avenue Pasteur Saint-Mandé</freeFormAddress> </Address> </GeocodeRequest> </Request> </XLS> L'attribut countrycode de la balise Address d'une requête sert à spécifier le type de recherche (adresse, lieu-dit, parcellaire). Pour une recherche d'adresse, il doit être égal à "StreetAddress". L'attribut srsname de la balise RequestHeader permet de spécifier le système de coordonnées dans lequel seront exprimées les adresses de la réponse. Cet attribut est facultatif et vaut "epsg:4326" (système WGS84 utilisé par GPS) par défaut. L'attribut returnfreeform de la balise GeocodeRequest indique si l'utilisateur désire une adresse structurée (numéro, rue, ville et attributs) ou une adresse condensée (numéro, rue et ville en une seule chaîne de caractères). Cet attribut est facultatif et vaut "false" par défaut. L'attribut maximumresponses de la balise Request indique le nombre maximum d'adresses désirées. Il est facultatif et vaut "25" par défaut. 31.Réponse XML : La localisation géographique est stockée dans la balise Point. La balise Address contient l ensemble des informations sur l'adresse trouvée retournée par le service (adresse normalisée, identifiant du point adresse, code postal, code INSEE etc...). La balise Street contient l'adresse telle que normalisée et utilisée par le service. Les balises Place contiennent les attributs de l'adresse, le nom de l'attribut est dans l'attribut Type. L attribut Municipality contient la ville, la balise PostalCode contient le code postal. L attribut ID contient l identifiant de l adresse ponctuelle contenue dans la table "Adresse" de la base BD ADRESSE de l IGN. L attribut ID_TR contient l identifiant de la voie qui porte l adresse dans la table "Route Adresse" de la base BD ADRESSE de l IGN. L'attribut Qualite dépend du résultat du géocodage : Pour un géocodage issue de la table ROUTE ADRESSE (quand l adresse est interpolée sur la voie), l'attribut Qualite retourne la valeur de l attribut PREC_PLANI du tronçon de route selon le tableau de correspondance suivant : Source des données Précision Traduction dans l'attribut PREC_PLANI
144 31 Advanced search services 140 Photogrammétrie, plan ou fichier métrique 0,5 à 1,5 m 1.5 Levé GPS dynamique, BD TOPO version antérieure, BD PARCELLAIRE recalée 1,5 à 2,5 m 2.5 Orthophotographie, plan ou fichier non métrique, levé terrain, BDPARCELLAIRE 2,5 à 5 m 5 Carte 1/25000 (SCAN 25 ), calculé, image satellite 5 à 10 m 10 BD CARTO, GEOROUTE > à 10 m 30 Pour un géocodage issue de la table "Adresse" l'attribut Qualite retourne la valeur de l attribut TYPE_LOC de l adresse selon le tableau de correspondance suivant : Valeurs Description Plaque adresse Il s'agit d'un ponctuel adresse corespondant à la plaque adresse sur le terrain, ou plus généralement de l'entrée d'une parcelle Projection La position de la plaque adresse n'est pas connue. L'adresse est issue d'une projection vers le tronçon routier correspondant à 4,5m de celui-ci(du bon côté), soit à partir du centroïde de la parcelle, soit de toute autre position éloignée de moins de 50m d'un tronçon. Entrée Lorsqu'il est possible de préciser l'entrée d'un bâtiment dans un ensemble d'immeubles, l'adresse est positionnée à cette entrée. L'attribut TYP_LOC ne sera rempli avec cette valeur que lorsque ces adresses seront réellement positionnées à l'entrée des bâtiments Zone d'adressage L'adresse est positionnée sur une zone d'adressage (ZAC, lieu-dit habité, hameau, carrefour nommé, etc.) dont le toponyme figure dans l'adresse. La balise GeocodeMatchCode contient un indicateur de proximité phonétique et orthographique du nom de l adresse entre 0 (pas de correspondance) et 1 (exactement identique). Remarque : En deçà d une valeur de 0.7, l appariement effectué ne permet pas d obtenir une géolocalisation précise de l adresse, les erreurs d appariement pouvant entraîner des erreurs de géolocalisation importantes. L attribut matchtype prend les valeurs suivantes : sreet number : géocodage à l adresse exacte ; street enhanced : géocodage à l adresse avec interpolation de l adresse entre les bornes de début et de fin du tronçon de la rue ; street : géocodage à la rue sans interpolation de de l adresse ;
145 31 Advanced search services 141 city : géocodage à la commune (pas de correspondance trouvée avec les autres éléments de l adresse). <?xml version="1.0" encoding="utf-8"?> <XLS version="1.2" * xmlns=" xmlns:gml=" xmlns:xls=" xmlns:xlsext=" xmlns:xsi=" xsi:schemalocation=" <ResponseHeader/> <Response requestid="uid42" version="1.2"> <GeocodeResponse> <GeocodeResponseList numberofgeocodedaddresses="1"> <GeocodedAddress> <gml:point> <gml:pos> </gml:pos> </gml:point> <Address countrycode="streetaddress"> <StreetAddress> <Building number="2"/> <Street>av pasteur</street> </StreetAddress> <Place type="municipality">saint-mandé</place> <Place type="qualite">plaque adresse</place> <Place type="id">adrnivx_ </place> <Place type="departement">94</place> <Place type="bbox"> ; ; ; </place> <Place type="commune">saint-mandé</place> <Place type="insee">94067</place> <Place type="territoire">fxx</place> <Place type="id_tr">tronrout </place> <PostalCode>94160</PostalCode> </Address> <GeocodeMatchCode accuracy="1.0" matchtype="street number"/> </GeocodedAddress> </GeocodeResponseList> </GeocodeResponse> </Response> </XLS> Recherche structurée : 31.Corps du POST : La balise Street contient les informations sur la rue; la balise Place contient le nom de la localité pour la recherche.
146 31 Advanced search services 142 <?xml version="1.0" encoding="utf-8"?> <XLS xmlns:xls=" xmlns:gml=" xmlns=" xmlns:xsi=" version="1.2" xsi:schemalocation=" <RequestHeader/> <Request requestid="1" version="1.2" methodname="locationutilityservice"> <GeocodeRequest returnfreeform="false"> <Address countrycode="streetaddress"> <StreetAddress> <Street>1 rue Marconi</Street> </StreetAddress> <Place type="municipality">metz</place> <PostalCode>57000</PostalCode> </Address> </GeocodeRequest> </Request> </XLS> 31.Réponse XML : <?xml version="1.0" encoding="utf-8" standalone="yes"?> <XLS version="1.2" ns4:schemalocation=" <ResponseHeader/> <Response version="1.2" requestid="1"> <GeocodeResponse> <GeocodeResponseList numberofgeocodedaddresses="1"> <GeocodedAddress> <gml:point> <gml:pos> </gml:pos> </gml:point> <Address countrycode="streetaddress"> <StreetAddress> <Building number="1"/> <Street>r marconi</street> </StreetAddress> <Place type="municipality">metz</place> <Place type="qualite">tronçon</place> <Place type="departement">57</place> <Place type="commune">metz</place> <Place type="territoire">fxx</place> <PostalCode>57000</PostalCode> </Address> <GeocodeMatchCode matchtype="streetnumber" accuracy="1.0"/> </GeocodedAddress> </GeocodeResponseList> </GeocodeResponse> </Response> </XLS>
147 31 Advanced search services Ajout d'une BBOX à la recherche par adresses : 31.Exemple de requête avec une adresse avec filtrage géographique lat/long : <?xml version="1.0" encoding="utf-8"?> <XLS xmlns:xls=" xmlns:gml=" xmlns=" xmlns:xsi=" version="1.2" xsi:schemalocation=" <RequestHeader/> <Request requestid="1" version="1.2" methodname="locationutilityservice"> <GeocodeRequest returnfreeform="false"> <Address countrycode="positionofinterest"> <freeformaddress>saint-mandé</freeformaddress> <gml:envelope> <gml:pos> </gml:pos> <gml:pos> </gml:pos> </gml:envelope> </Address> </GeocodeRequest> </Request> </XLS> 31.Exemple de requête avec une adresse avec filtrage attributaire: <?xml version="1.0" encoding="utf-8"?> <XLS xmlns:xls=" xmlns:gml=" xmlns=" xmlns:xsi=" version="1.2" xsi:schemalocation=" <RequestHeader/> <Request requestid="1" version="1.2" methodname="locationutilityservice"> <GeocodeRequest returnfreeform="false"> <Address countrycode="positionofinterest"> <freeformaddress>saint-mandé</freeformaddress> <Place type="departement">41</place> </Address> </GeocodeRequest> </Request> </XLS>
148 31 Advanced search services Exemple de requête avec une adresse avec filtrage multi-attributaires <?xml version="1.0" encoding="utf-8"?> <XLS xmlns:xls=" xmlns:gml=" xmlns=" xmlns:xsi=" version="1.2" xsi:schemalocation=" <RequestHeader/> <Request requestid="1" version="1.2" methodname="locationutilityservice"> <GeocodeRequest returnfreeform="false"> <Address countrycode="positionofinterest"> <freeformaddress>saint-mandé</freeformaddress> <Place type="nature">lieu-dit habité</place> <Place type="nature">ruines</place> </Address> </GeocodeRequest> </Request> </XLS> Recherche par parcelles cadastrales Quand l'attribut countrycode de la balise Address d'une requête est égal à "CadastralParcel", il spécifie une recherche par parcelles cadastrales Corps de la requête du POST XML : La balise freeformaddress contient le numéro de la parcelle à rechercher. Pour info, la parcelle cadastrale se compose de 14 chiffres ou lettres, indiquant, de gauche à droite : le code du département (2 caractères) le code INSEE de la commune (5 chiffres), le code commune (3 caractères). (Remarque : code département + code commune = code INSEE) le code commune absorbée INSEE, ou '000' (3 caractères), la section (2 caractères), le numéro de parcelle (4 caractères). Exemple de parcelle : ' D0041'. Si l'identifiant est incomplet (par exemple ' D'), le service renverra uniquement les 25 premiers résultats pouvant correspondre Cas particuliers de Paris, Lyon, Marseille et Toulouse : Pour les villes de Paris et Lyon, le code commune absorbée est remplacé par le code arrondissement : de 101 à 120 pour les 20 arrondissements de Paris, et de 381 à 389 pour les 9 arrondissements de Lyon. On a donc : département (2), code commune (3), code arrondissement (3), section (2), numéro (4). Exemple de numéro de parcelle dans Paris : CH0020. Pour la ville de Marseille, le code commune est remplacé par le code arrondissement (de 201 à 216), et le code commune absorbée est bien présent. On a donc : département (2), arrondissement (3), commune absorbée (3), section (2), numéro (4). Exemple de numéro de parcelle dans Marseille : K0003. Enfin, pour la ville de Toulouse, les codes commune absorbée correspondent aux quartiers de la ville : de 801 à 846. Exemple de numéro de parcelle dans Toulouse : AB0001.
149 31 Advanced search services 145 <?xml version="1.0" encoding="utf-8"?> <XLS xmlns:xls=" xmlns:gml=" xmlns=" xmlns:xsi=" version="1.2" xsi:schemalocation=" <RequestHeader/> <Request requestid="1" version="1.2" methodname="locationutilityservice"> <GeocodeRequest returnfreeform="false"> <Address countrycode="cadastralparcel"> <freeformaddress> d0041</freeformaddress> </Address> </GeocodeRequest> </Request> </XLS> Réponse XML : La localisation géographique du localisant parcellaire de la parcelle est stockée dans la balise Point. La balise Address contient l ensemble des informations sur la parcelle retournée par le service (code INSEE et nom de la commune, département, commune absorbée, section, numéro, feuille...), contenues dans les balises Place. La balise Place associée à l'attribut "Type" fournit l'origine de l'objet parcellaire renvoyé. Le type "Parcelle" indique une réponse issue de la classe Parcelle de la BD Parcellaire vecteur (la parcelle a été totalement vectorisée) et le type "Localisant" indique une réponse issue de la classe Localisant de la BD Parcellaire vecteur (seul l'emplacement du numéro de la parcelle inscrit sur le plan cadastral papier a été numérisé). La balise Street contient le numéro de la parcelle demandée. La balise GeocodeMatchCode contient un indicateur de pertinence.
150 31 Advanced search services 146 <?xml version="1.0" encoding="utf-8"?> <XLS version="1.2" xmlns=" xmlns:gml=" xmlns:xls=" xmlns:xlsext=" xmlns:xsi=" xsi:schemalocation=" <ResponseHeader/> <Response requestid="1" version="1.2"> <GeocodeResponse> <GeocodeResponseList numberofgeocodedaddresses="1"> <GeocodedAddress> <gml:point> <gml:pos> </gml:pos> </gml:point> <Address countrycode="cadastralparcel"> <StreetAddress> <Street> D0041</Street> </StreetAddress> <Place type="municipality">saint-mandé</place> <Place type="numero">0041</place> <Place type="feuille">1</place> <Place type="section">0d</place> <Place type="departement">94</place> <Place type="communeabsorbee">000</place> <Place type="commune">067</place> <Place type="insee">94067</place> <Place type="type">parcelle</place> </Address> <GeocodeMatchCode accuracy="1.0"/> </GeocodedAddress> </GeocodeResponseList> </GeocodeResponse> </Response> </XLS> Recherche inverse Le service de géocodage inverse a pour but de retourner, à partir d'un ou plusieurs points géographiques indiqués en latitude/longitude, la ou les entités géolocalisées les plus proches correspondantes, parmi les adresses, toponymes, parcelles cadastrales, et/ou unités administratives. Pour cela, il effectue une projection de la position sur les rues environnantes, et renvoie les coordonnées de la projection la plus proche, avec un numéro interpolé calculé à partir des numéros voisins Corps de la requête du POST XML 31.Recherche simple Le XML suivant est un exemple de requête de Géocodage inverse simple relativement à un point :
151 31 Advanced search services 147 <?xml version="1.0" encoding="utf-8"?> <XLS version="1.2" xmlns=" xmlns:gml=" xmlns:xsi=" xsi:schemalocation=" <RequestHeader/> <Request methodname="reversegeocoderequest" maximumresponses="10" requestid="abc" version="1.2"> <ReverseGeocodeRequest> <ReverseGeocodePreference>StreetAddress</ReverseGeocodePreference> <Position> <gml:point> <gml:pos> </gml:pos> </gml:point> </Position> </ReverseGeocodeRequest> </Request> </XLS> La balise Request contient les paramètres de la requête ; l'attribut maximumresponses permet de limiter le nombre de réponses à une valeur particulière. La balise ReverseGeocodePreference permet de spécifier le type de localisant retourné : StreetAddress : des adresses seront retournées ; PositionOfInterest : des toponymes seront retournées ; CadastralParcel : des parcelles cadastrales seront retournées ; Administratif : des unités administratives (départements et régions) seront retournées ; pour rechercher plusieurs types de localisant à la fois (par exemple adresses et toponymes), il faut utiliser plusieurs occurences de la balise ReverseGeocodePreference, une pour chaque localisant. la balise Position contient les coordonnées (latitude longitude) du point à partir duquel lancer la recherche ; 31.Recherche avec une contrainte de distance Le XML suivant est un exemple de requête de Géocodage inverse relativement à un point avec un rayon limite de recherche :
152 31 Advanced search services 148 <?xml version="1.0" encoding="utf-8"?> <XLS version="1.2" xmlns=" xmlns:gml=" xmlns:xsi=" xsi:schemalocation=" <RequestHeader/> <Request methodname="reversegeocoderequest" maximumresponses="10" requestid="abc" version="1.2"> <ReverseGeocodeRequest> <ReverseGeocodePreference>StreetAddress</ReverseGeocodePreference> <Position> <gml:point> <gml:pos> </gml:pos> </gml:point> <gml:circlebycenterpoint> <gml:pos> </gml:pos> <gml:radius>150</gml:radius> </gml:circlebycenterpoint> </Position> </ReverseGeocodeRequest> </Request> </XLS> La balise gml:circlebycenterpoint permet de spécifier un cercle à l'intérieur duquel la recherche s'effectuera : la balise gml:pos permet de préciser le centre du cercle ; la balise gml:radius permet de préciser le rayon du cercle ; 31.Recherche avec une contrainte polygonale Le XML suivant est un exemple de requête de Géocodage inverse relativement à un point et limitée à un polygone :
153 31 Advanced search services 149 <?xml version="1.0" encoding="utf-8"?> <XLS version="1.2" xmlns=" xmlns:gml=" xmlns:xsi=" xsi:schemalocation=" <RequestHeader/> <Request methodname="reversegeocoderequest" maximumresponses="10" requestid="abc" version="1.2"> <ReverseGeocodeRequest> <ReverseGeocodePreference>StreetAddress</ReverseGeocodePreference> <Position> <gml:point> <gml:pos> </gml:pos> </gml:point> <gml:polygon> <gml:exterior> <gml:linearring> <gml:pos> </gml:pos> <gml:pos> </gml:pos> <gml:pos> </gml:pos> <gml:pos> </gml:pos> </gml:linearring> </gml:exterior> </gml:polygon> </Position> </ReverseGeocodeRequest> </Request> </XLS> La balise gml:polygon permet de décrire le contour du polygone (ici, un rectangle) Réponse du service La réponse du service est un document XML conforme à la syntaxe définie par le standard OpenLS version 1.2. Ce qui suit est un exemple réponse retournée :
154 31 Advanced search services 150 <?xml version="1.0" encoding="utf-8" standalone="yes"?> <XLS version="1.2" xsi:schemalocation=" xmlns:xls=" <ResponseHeader/> <Response version="1.2" requestid="abc"> <ReverseGeocodeResponse> <ReverseGeocodedLocation> <gml:point> <gml:pos> </gml:pos> </gml:point> <Address countrycode="streetaddress"> <StreetAddress> <Building number="580"/> <Street>av aristide briand</street> </StreetAddress> <Place type="municipality">bagneux</place> <PostalCode>92220</PostalCode> </Address> <xlsext:extendedgeocodematchcode>point adresse</xlsext:extendedgeocodematchcode> <SearchCentreDistance value="23.02"/> </ReverseGeocodedLocation> (...) </ReverseGeocodeResponse> </Response> </XLS> La balise ReverseGeocodeResponse contient l'ensemble des localisants trouvés : la balise ReverseGeocodedLocation décrit un localisant trouvé : la balise gml:point contient les coordonnées du localisant ; la balise Address contient les caractéristiques du localisant ; la valeur de l'attribut countrycode indique le type de localisant ("StreetAddress" pour une adresse, "PositionOfInterest" pour un toponyme, "Administratif" pour une unité administrative, "CadastralParcel" pour une parcelle cadastrale) ; la balise SearchCentreDistance indique la distance entre le point de recherche et la géométrie du localisant trouvé Requêtes GET KVP Toutes les URLs précédentes répondent aussi à la méthode GET Syntaxe de la requête GET Il suffit d'insérer le corps de la requête XML encodé à la suite de l'url du service de géocodage, assigné au paramètre xls, de la manière suivante : Le corps de la requête XML à encoder est le même que dans le cas d'une requête POST. Vous pouvez vous référer aux parties ci-dessus pour les syntaxes des requêtes des différents types de recherches (par lieux, parcelles cadastrales, recherche inverse, etc.). Pour encoder votre requête XML, vous pouvez utiliser par exemple la fonction JavaScript encodeuri(), ou encore utiliser un encodeur en ligne. Exemple d'url GET complète :
155 31 Advanced search services Encapsulation de la réponse XML dans une syntaxe JSON De plus, l'ajout du paramètre output avec la valeur 'json' à la suite de l'url indique au service de retourner une réponse XML imbriquée dans une syntaxe JSON : La réponse est alors du type : { "http":{ "status":200, "error":null }, "xml":"<?xml (...)>" } Protocole JSONP Enfin, l'utilisation du paramètre callback avec comme valeur un nom de fonction permet de mettre en oeuvre le protocole JSONP. Ainsi, la réponse du service (encapsulée en JSON), sera intégrée comme paramètre de l'appel javascript de la fonction spécifiée. Exemple de réponse JSONP : fonctiondetraitementduresultatjsonp( { "http":{ "status":200,"error":null }, "xml": "<?xml version=\"1.0\" encoding=\"utf-8\"?><xls version=\"1.2\" xmlns=\" } ) Le service d'autocomplétion Le service d'autocomplétion a pour but de suggérer des localisants probables au fur et à mesure de la saisie d'adresses ou de noms de lieux. Il est accessible en HTTP / GET. Les requêtes peuvent comprendre les paramètres suivants : text : une chaine de caractères à compléter ; terr : une limitation de la zone de recherche de localisants correspondant à : 'METROPOLE' pour une recherche sur la métropole et la corse ; 'DOMTOM' pour une recherche sur les DOM TOMs uniquement ; une liste de codes de départements ou codes INSEE de communes pour une recherche limitée à ces département ou commues spécifiés ; type : le type de localisants recherchés :
156 31 Advanced search services 152 'PositionOfInterest' pour une recherche parmi les noms de lieux, 'StreetAddress' pour une recherche parmi des adresses ou les deux valeurs séparées par une virgule pour une recherche parmi les deux types de localisants ; maximumresponses : le nombre maximum de réponses que l'on souhaite voir retournées Exemple de requête: Autocomplétion par adresse : 31.Réponse : La réponse du service est, en cas de succès, au format JSON: {"status":"ok", "results":[{"country":"streetaddress", "city":"saint-malo", "x": , "y": , "zipcode":"35400", "street":"2 av pasteur", "classification":7, "kind":"", "fulltext":"2 av pasteur,35400 Saint-Malo"},... ] } où : status : indique le statut de la réponse : 'OK' s'il y a des résultats ; 'ERROR' s'il n'y en a pas ; results : est un tableau contenant les résultats retournés, avec, pour chacun, les champs suivants : country : le type du localisant proposé ('StreetAddress' ou 'PositionOfInterest') ; fulltext : la proposition complète de localisant pour l autocomplétion ; street : forme décomposée de la proposition, rue ou toponyme ; city : forme décomposée de la proposition, ville ; zipcode : forme décomposée de la proposition : code postal ; classification : classification ; kind : type ; x,y : coordonnées du localisant (en longitude, latitude) En cas d'erreur du service (code HTTP différent de 200), la réponse est au format JSON. Par exemple : {"status":"error","results":[]}
157 32 Advanced elevation service Advanced elevation service Service de calcul altimétrique Le service de calcul altimétrique du Géoportail repose sur une API REST et sur le standard OGC "Web Processing Service" (WPS). Il y a deux manières d'intéroger le service : via l'api REST via la norme WPS Comme l'accès au service de calcul altimétrique est protégé par le contrôle des droits d'accès, l'url de la requête doit contenir la clef associée au contrat qui autorise l'accès aux ressources du service altimétrique Déterminer l'altitude d'un ou plusieurs points Via l'api REST : Les formats disponibles sont json et xml 32.Exemple de requête GET n 1 (zonly = true) : L'attribut "lon" correspond à la liste des longitudes des points dont on veut déterminer l'élévation, l'attribut "lat" correspond à la liste des latitudes des points dont on veut déterminer l'élévation et l'attribut "zonly" est un booléen qui indique s'il on souhaite uniquement un tableau d'altitudes ou bien une réponse étendue. Les valeurs retournées sont les élévations déterminées pour chaque point donné dans la requête. GET /rest/elevation.json?lon= &lat= &zonly=true 32.Réponse simple : L'attribut "elevations" est un tableau des altitudes déterminées pour les points demandés. Les valeurs sont données dans l'ordre dans lequel les points ont été fournis. {"elevations": [123.23,19.45]} 32.Exemple de requête GET n 2 (zonly = false & indent = true) : L'attribut "indent" est un booléen qui indique si la réponse sera indentée. GET /rest/elevation.json?lon= &lat= &indent=true 32.Réponse étendue et indentée : L'attribut "elevations" est un tableau des altitudes déterminées pour les points demandés : lat : latitude du point lon : longitude du point z : altitude au point considéré (en mètres) acc : précision de la valeur au point considéré
158 32 Advanced elevation service 154 { "elevations" : [ { "lon": , "lat": , "z": 93.58, "acc": 2.5 }, { "lon": 2.157, "lat": , "z": , "acc": 2.5 } ] } 32.Exemple de requête GET n 3 (zonly = false & indent = false & delimiter = ",") : L'attribut "delimiter" permet d'indiquer le caractère utilisé pour séparer les longitudes et les latitudes. GET /rest/elevation.json?lon=0.2367,2.1570&lat= , &delimiter=, 32.Réponse étendue, non indentée avec le séparateur "," : L'attribut "elevations" est un tableau des altitudes déterminées pour les points demandés : lat : latitude du point lon : longitude du point z : altitude au point considéré (en mètres) acc : précision de la valeur au point considéré {"elevations":[{"lon":0.2367,"lat": ,"z":93.58,"acc":2.5},{"lon":2.157,"lat": ,"z": Table des paramètres Paramètre Description Type / format Requis Valeurs possibles Valeur par défaut zonly false, réponse étendue true, simple tableau de valeurs booléen non false true false indent false, réponse non indentée true, réponse indentée booléen non false true false delimiter caractère utilisé pour séparer les longitudes et les latitudes texte non ' ', ';' ou ',' ' ' Contraintes
159 32 Advanced elevation service 155 lon liste des longitudes liste de décimaux oui de -180 à +180 autant de lon que de lat le nombre est limité à 50 lat liste des latitudes liste de décimaux oui de -90 à +90 autant de lat que de lon le nombre est limité à Encapsulation en JSONP : Pour bénéficier de l'encapsulation en JSONP, il faut utiliser le service avec le format XML. Ainsi, la requête suivante : Donne le résultat suivant : traiteresultat({"http":{"status":200,"error":null},"xml":"<elevations><elevation><lon>2.478</lon><lat> Via la norme WPS : 32.Exemple de requête POST (zonly = true) : 32.Entête de la requête Content-type:text/xml
160 32 Advanced elevation service Corps de la requête <?xml version="1.0" encoding="utf-8"?> <wps:execute version="1.0.0" service="wps" xmlns:xsi=" xmlns=" xmlns:wfs=" xmlns:wps=" xmlns:ows=" xmlns:gml=" xmlns:ogc=" xmlns:wcs=" xmlns:xlink=" xsi:schemalocation=" <ows:identifier>gs:wpselevation</ows:identifier> <wps:datainputs> <wps:input> <ows:identifier>lon</ows:identifier> <wps:data> <wps:literaldata> </wps:LiteralData> </wps:data> </wps:input> <wps:input> <ows:identifier>lat</ows:identifier> <wps:data> <wps:literaldata> </wps:LiteralData> </wps:data> </wps:input> <wps:input> <ows:identifier>crs</ows:identifier> <wps:data> <wps:literaldata>crs:84</wps:literaldata> </wps:data> </wps:input> <wps:input> <ows:identifier>format</ows:identifier> <wps:data> <wps:literaldata>xml</wps:literaldata> </wps:data> </wps:input> <wps:input> <ows:identifier>indent</ows:identifier> <wps:data> <wps:literaldata>true</wps:literaldata> </wps:data> </wps:input> <wps:input> </wps:datainputs> <wps:responseform> <wps:rawdataoutput> <ows:identifier>result</ows:identifier> </wps:rawdataoutput> </wps:responseform> </wps:execute>
161 32 Advanced elevation service Réponse étendue, indentée et en format XML : La balise elevations est composée des altitudes déterminées pour les points demandés. La balise lat correspond à la latitude du point La balise lon correspond à la longitude du point La balise z correspond à l'altitude au point considéré (en mètres) La balise acc correspond à la précision de la valeur au point considéré Les valeurs sont données dans l'ordre dans lequel les points ont été fournis. <elevations> <elevation> <lon>0.2367</lon> <lat> </lat> <z>93.58</z> <acc>2.5.0</acc> </elevation> <elevation> <lon>2.157</lon> <lat> </lat> <z>207.53</z> <acc>2.5.0</acc> </elevation> </elevations> 32.Table des paramètres Paramètre Description Type / format Requis Valeurs possibles Valeur par défaut Contraintes zonly false, réponse étendue true, simple tableau de valeurs booléen non false true false indent false, réponse non indentée true, réponse indentée booléen non false true false delimiter caractère utilisé pour séparer les longitudes et les latitudes texte non ' ', ';' ou ',' ' ' lon liste des longitudes liste de décimaux oui de -180 à +180 autant de lon que de lat le nombre est limité à 50 lat liste des latitudes liste de décimaux oui de -90 à +90 autant de lat que de lon le nombre est limité à 50
162 32 Advanced elevation service format format de sortie du service texte 158 non json xml json 32.Accès en GET De même que pour le service de géocodage, le service altimétrique en WPS peut être attaqué en GET et bénéficier alors d'une encapsulation en JSONP. La requête : Donne le résultat suivant : traiteresultat({"http":{"status":200,"error":null},"xml":"<elevations><elevation><lon>2.478</lon><lat> Déterminer le profil altimétrique d'une courbe Via l'api REST : Les formats disponibles sont json et xml 32.Exemple de requête GET n 1 (zonly = true) : L'attribut "lon" correspond à la liste des longitudes des points dont on veut déterminer l'élévation, l'attribut "lat" correspond à la liste des latitudes des points dont on veut déterminer l'élévation et l'attribut "zonly" est un booléen qui indique si on souhaite uniquement un tableau d'altitudes ou bien une réponse étendue. L'attribut "sampling" correspond au nombre de points constituant l'échantillonage. Les valeurs retournées sont les élévations déterminées pour chaque point donné dans la requête. GET /rest/elevationline.json?sampling=10&lon= &lat= &indent=true
163 32 Advanced elevation service 32.Réponse indentée : { "elevations": [ { "lon": , "lat": , "z": 93.58, "acc": 2.5 }, { "lon": , "lat": , "z": , "acc": 2.5 }, { "lon": , "lat": , "z": 62.79, "acc": 2.5 }, { "lon": , "lat": , "z": , "acc": 2.5 }, { "lon": 2.157, "lat": , "z": , "acc": 2.5 }, { "lon": , "lat": , "z": , "acc": 2.5 }, { "lon": , "lat": , "z": , "acc": 2.5 }, { "lon": , "lat": , "z": , "acc": 2.5 }, { "lon": , "lat": , "z": , "acc": 2.5 }, , I n s t i t{ ut National de l'information Géographique et Forestière - France ALL RIGHTS "lon": , "lat": , "z": , 159
164 32 Advanced elevation service Table des paramètres Paramètre Description Type / format Requis Valeurs possibles Valeur par défaut Contraintes sampling nombre entier de points constitutant l'échantillonage non de 2 à ne doit pas dépasser 5000 indent false, réponse non indentée true, réponse indentée booléen non false true false delimiter caractère utilisé pour séparer les longitudes et les latitudes texte non ' ', ';' ou ',' ' ' lon liste des longitudes liste de décimaux oui de -180 à +180 autant de lon que de lat le nombre est limité à 50 lat liste des latitudes liste de décimaux oui de -90 à +90 autant de lat que de lon le nombre est limité à 50 crs projection de sortie des coordonnées texte non CRS: Via la norme WPS : 32.Entête de la requête Content-type:text/xml
165 32 Advanced elevation service Corps de la requête <?xml version="1.0" encoding="utf-8"?> <wps:execute version="1.0.0" service="wps" xmlns:xsi=" xmlns=" xmlns:wfs=" xmlns:wps=" xmlns:ows=" xmlns:gml=" xmlns:ogc=" xmlns:wcs=" xmlns:xlink=" xsi:schemalocation=" <ows:identifier>gs:wpslineelevation</ows:identifier> <wps:datainputs> <wps:input> <ows:identifier>lon</ows:identifier> <wps:data> <wps:literaldata> </wps:LiteralData> </wps:data> </wps:input> <wps:input> <ows:identifier>lat</ows:identifier> <wps:data> <wps:literaldata> </wps:LiteralData> </wps:data> </wps:input> <wps:input> <ows:identifier>crs</ows:identifier> <wps:data> <wps:literaldata>crs:84</wps:literaldata> </wps:data> </wps:input> <wps:input> <ows:identifier>sampling</ows:identifier> <wps:data> <wps:literaldata>10</wps:literaldata> </wps:data> </wps:input> <wps:input> <ows:identifier>format</ows:identifier> <wps:data> <wps:literaldata>json</wps:literaldata> </wps:data> </wps:input> </wps:datainputs> <wps:responseform> <wps:rawdataoutput> <ows:identifier>result</ows:identifier> </wps:rawdataoutput> </wps:responseform> </wps:execute>
166 32 Advanced elevation service Réponse non indentée et en format json : {"elevations":[{"lon":0.2367,"lat": ,"z":93.58,"acc":2.5}, {"lon": ,"lat": ,"z":138.01,"acc":2.5}, {"lon": ,"lat": ,"z":62.79,"acc":2.5}, {"lon": ,"lat": ,"z":176.45,"acc":2.5}, {"lon":2.157,"lat": ,"z":207.53,"acc":2.5}, {"lon": ,"lat": ,"z":634.69,"acc":2.5}, {"lon": ,"lat": ,"z":609.78,"acc":2.5}, {"lon": ,"lat": ,"z": ,"acc":2.5}, {"lon": ,"lat": ,"z":266.01,"acc":2.5}, {"lon":4.3907,"lat": ,"z":171.29,"acc":2.5}]} 32.Table des paramètres Paramètre Description Type / format Requis Valeurs possibles Valeur par défaut Contraintes sampling nombre entier de points constitutant l'échantillonage non de 2 à ne doit pas dépasser 5000 indent false, réponse non indentée true, réponse indentée booléen non false true false delimiter caractère utilisé pour séparer les longitudes et les latitudes texte non ' ', ';' ou ',' ' ' lon liste des longitudes liste de décimaux oui de -180 à +180 autant de lon que de lat le nombre est limité à 50 lat liste des latitudes liste de décimaux oui de -90 à +90 autant de lat que de lon le nombre est limité à 50 crs projection de sortie des coordonnées texte non format format de sortie du service texte non CRS:84 json xml json Gestion des erreurs En cas d'erreur du service (code HTTP différent de 200), la réponse est au format XML ou json. Par exemple :
167 32 Advanced elevation service XML <error> <code>bad_parameter</code> <description>the argument [lon] is mandatory</description> </error> JSON {"error": { "code":"bad_parameter" "description":"the argument [lon] is mandatory" }} 163
168 33 Multi-lingual Multi-lingual Internationalisation API Web 2D en Javascript Il est possible de changer la langue d'affichage pour s'adapter à une demande de l'utilisateur. Cette aptitude repose sur l'ajout dans l'api Géoportail d'un évènement permettant d'intercepter ce changement de langue. L'exemple ci-dessous montre comment mettre en place un tel mécanisme : function initgeoportalmap() {... // get default language var language= OpenLayers.Lang.getCode(); var re= new RegExp("^"+language,i); var slct= OpenLayers.Util.getElement('gpChooseLang'); for(var i= 0; i<slct.options.length; i++) { if( slct.options[i].value.match(re) ) { slct.options[i].selected= true; } }... } Dans la méthode initgeoportalmap() appelée lors du chargement de la page, la langue par défaut (c'est-à-dire celle d'installation du butineur Web) est récupérée. Une recherche sur un élément de formulaire permettant de changer de langue est effectuée. L'élément qui correspond au mieux à la langue est alors sélectionné. <form style="border:0;margin:0;padding:0;" name="gplangchange" action="#"> <select style="font-size:0.75em;" id="gpchooselang" name="gpchooselang" size="1" onchange="votre_instance.getmap().setlocale(this.options[this.selectedindex].value);"> <option value="fr">français</option> <option value="en">english</option> <option value="de">deutsch</option> <option value="es">español</option> <option value="it">italiano</option> </select> </form> Le formulaire propose des options qui, à leur sélection, provoque l'appel au changement de la langue de la carte. Cette dernière émet alors un évènement "changelang" qui est intercepté par les gestionnaires d'affichage. Il est important de noter que la page HTML doit contenir la déclaration d'encodage UTF-8 et doit donc être encodée selon ce jeu de caractères pour avoir un affichage des caractères correct : <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées
PRODIGE V3 Manuel utilisateurs Consultation des métadonnées Pour plus d'information sur le dispositif : à remplir par chaque site éventuellement 2 PRODIGE V3 : Consultation des métadonnées SOMMAIRE 1.
Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David
Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server Sébastien Boutard Thomas David Le plan de la présentation Petit retour sur les environnements de développement ArcGIS Server
Université de Toulouse-Le Mirail janvier 2012 Département de Géographie-Aménagement-Environnement Laurent Jégou
Université de Toulouse-Le Mirail janvier 2012 Département de Géographie-Aménagement-Environnement Laurent Jégou M2 Sigma Module U50_B33 Le WebMapping côté client : les API et bibliothèques Javascript Positionnement
PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées
PRODIGE V3 Manuel utilisateurs Consultation des métadonnées Pour plus d'information sur le dispositif : à remplir par chaque site éventuellement 2 PRODIGE V3 : Consultation des métadonnées SOMMAIRE 1.
Formation. Module WEB 4.1. Support de cours
Formation Module WEB 4.1 Support de cours Rédacteur Date de rédaction F.CHEA 08/02/2012 Les informations contenues dans ce document pourront faire l'objet de modifications sans préavis Sauf mention contraire,
Alfresco Guide Utilisateur
Alfresco Guide Utilisateur ATELIER TECHNIQUE DES ESPACES NATURELS - 1 Table des matières Alfresco Guide Utilisateur...1 Accéder à la GED de l'aten...3 Via un client FTP...3 Onglet Général...3 Onglet Avancé...3
Cadastre du bruit SIT-JURA. Connecteur Arcview9.x - MSAccess. Mode d emploi. Appel formulaire. Page 1 sur 15
Cadastre du bruit SIT-JURA Connecteur Arcview9.x - MSAccess Mode d emploi Appel formulaire Page 1 sur 15 Table des matières 1. INSTALLATION 3 2. UTILISATION 3 2.1. Création de nouvelles géodatabases 7
Freeway 7. Nouvelles fonctionnalités
! Freeway 7 Nouvelles fonctionnalités À propos de ce guide... 3 Nouvelles fonctionnalités en un coup d'oeil... 3 À propos de la conception d'un site web réactif... 3 Travailler avec les pages pour créer
Chapitre 1. Prise en main
Guide de référence Guide de référence Chapitre 1. Prise en main Le processus d'enquête Le processus d'enquête comporte 5 étapes toutes prises en charge par le logiciel : Conception des formulaires Cette
PHP 5.4 Développez un site web dynamique et interactif
Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................
Optimiser pour les appareils mobiles
chapitre 6 Optimiser pour les appareils mobiles 6.1 Créer un site adapté aux terminaux mobiles avec jquery Mobile... 217 6.2 Transformer son site mobile en application native grâce à PhoneGap:Build...
1. Installation du Module
1 sur 10 Mise en place du Module Magento V 1.5.7 1. Installation du Module Vous pouvez installer le module de deux façons différentes, en passant par Magento Connect, ou directement via les fichiers de
les techniques d'extraction, les formulaires et intégration dans un site WEB
les techniques d'extraction, les formulaires et intégration dans un site WEB Edyta Bellouni MSHS-T, UMS838 Plan L extraction des données pour un site en ligne Architecture et techniques Les différents
FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères
FORMATION PcVue Mise en œuvre de WEBVUE Journées de formation au logiciel de supervision PcVue 8.1 Lieu : Lycée Pablo Neruda Saint Martin d hères Centre ressource Génie Electrique Intervenant : Enseignant
ArcGIS for INSPIRE SIG RAIL 2011
ArcGIS for INSPIRE SIG RAIL 2011 ArcGIS supporte INSPIRE avec ArcGIS for INSPIRE Services de Découverte, Services de Visualisation, Services de Téléchargement, Métadonnées et Modèles de données Géoportail
Module d introduction Comment réaliser vos propres cartes avec ArcGIS Online
Module d introduction Comment réaliser vos propres cartes avec ArcGIS Online Table des matières 1 Commencer avec ArcGis Online... 2 2 Créer des cartes I (utiliser les cartes disponibles /les services de
Portail GéoFoncier de l Ordre des Géomètres-Experts. Version 13.06. Guide utilisateur. à destination des géomètres-experts et de leurs collaborateurs
Portail GéoFoncier de l Ordre des Géomètres-Experts Version 13.06 Guide utilisateur à destination des géomètres-experts et de leurs collaborateurs Portail GéoFoncier - Guide utilisateur Avant-propos Avant-propos
Présentation du Framework BootstrapTwitter
COUARD Kévin HELVIG-LARBRET Blandine Présentation du Framework BootstrapTwitter IUT Nice-Sophia LP-SIL IDSE Octobre 2012 Sommaire I. INTRODUCTION... 3 Définition d'un framework... 3 A propos de BootstrapTwitter...
Guide d'intégration à ConnectWise
Guide d'intégration à ConnectWise INTÉGRATION DE CONNECTWISE À BITDEFENDER CONTROL CENTER Guide d'intégration à ConnectWise Intégration de ConnectWise à Bitdefender Control Center Date de publication 2015.05.14
Auguria_PCM Product & Combination Manager
Auguria_PCM Product & Combination Manager Guide utilisateurs v1.5 Auguria 9, rue Alfred Kastler 44300 NANTES FRANCE +33251135012 [email protected] Plan 1 Description générale du module...3 2 Mise en
Edutab. gestion centralisée de tablettes Android
Edutab gestion centralisée de tablettes Android Résumé Ce document présente le logiciel Edutab : utilisation en mode enseignant (applications, documents) utilisation en mode administrateur (configuration,
Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions
Module Magento SOON Soon_AdvancedCache Rédacteur Hervé G. Lead développeur Magento [email protected] AGENCE SOON 81 avenue du Bac 94210 LA VARENNE ST HILAIRE Tel : +33 (0)1 48 83 95 96 Fax : +33 (0)1
Livret 1 Poste de travail de l utilisateur :
Manuel Utilisateur Mise à jour 04 Juin 2015 Livret 1 Poste de travail de l utilisateur : - pré-requis techniques - mise en conformité - connexion - impressions.pdf Pour les utilisateurs des compléments
Optimiser les performances d un site web. Nicolas Chevallier Camille Roux
Optimiser les performances d un site web Nicolas Chevallier Camille Roux Intellicore Tech Talks Des conférences pour partager son savoir Le mardi au CICA Sophia Antipolis http://techtalks.intellicore.net
WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES
WEB & DÉVELOPPEMENT LES BASES DU WEB HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES LE LANGAGE HTML STRUCTURE D UNE PAGE En-tête et corps Syntaxe INSÉRER DES CONTENUS Texte : formatage (titre,
Cyberclasse L'interface web pas à pas
Cyberclasse L'interface web pas à pas Version 1.4.18 Janvier 2008 Remarque préliminaire : les fonctionnalités décrites dans ce guide sont celles testées dans les écoles pilotes du projet Cyberclasse; il
DRUPAL Réalisez des développements professionnels avec PHP (2ième édition)
Introduction 1. Les systèmes de gestion de contenu 11 2. Les avantages de Drupal 15 3. Le fonctionnement de Drupal 17 4. L'environnement de développement 20 5. L'installation de Drupal 25 6. Le passage
Documentation Administrateur
Documentation Administrateur Gestion des droits Comprendre Gestion des fiches Gestion des extensions Réaliser Gestion des utilisateurs Accompagner Gestion des thèmes Siège social : 24 av de l Europe 44
Sage CRM. 7.2 Guide de Portail Client
Sage CRM 7.2 Guide de Portail Client Copyright 2013 Sage Technologies Limited, éditeur de ce produit. Tous droits réservés. Il est interdit de copier, photocopier, reproduire, traduire, copier sur microfilm,
Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.
Plateforme PAYZEN Intégration du module de paiement pour la plateforme Magento version 1.3.x.x Paiement en plusieurs fois Version 1.4a Guide d intégration du module de paiement Multiple Magento 1/24 SUIVI,
Communiqué de Lancement. Sage Intégrale V4.50
Communiqué de Lancement Sage Intégrale V4.50 Nouvelle Version Majeure Avec près de 3000 entreprises clientes, l Intégrale est le Progiciel de Gestion Intégré le plus déployé en France, ce qui révèle toutes
ArcGIS Server 9.3.1 / 9.4. Gaëtan LAVENU Jean-Marie DULISCOUET
ArcGIS Server 9.3.1 / 9.4 Gaëtan LAVENU Jean-Marie DULISCOUET ArcGIS Server 9.3.1 / 9.4 Plus de performance Plus de fonctionnalités Des processus simplifiés (développement, déploiement, licences) Plus
Devenez un véritable développeur web en 3 mois!
Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web
Automatisation d'une Facture 4. Liste Déroulante Remises Case à cocher Calculs
Dans la série Les tutoriels libres présentés par le site FRAMASOFT Automatisation d'une Facture 4 Liste Déroulante Remises Case à cocher Calculs Logiciel: Version: Licence: Site: OpenOffice.org Calc :
TeamViewer 9 Manuel Management Console
TeamViewer 9 Manuel Management Console Rév 9.2-07/2014 TeamViewer GmbH Jahnstraße 30 D-73037 Göppingen www.teamviewer.com Sommaire 1 A propos de la TeamViewer Management Console... 4 1.1 A propos de la
ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.
ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. - 1 - PREAMBULE Les conditions générales d utilisation détaillant l ensemble des dispositions applicables
Nouveautés par rapport à la version Qlik Sense 1.0. Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés.
Nouveautés par rapport à la version Qlik Sense 1.0 Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Copyright 1993-2015 QlikTech International AB. Tous droits réservés.
Créer et partager des fichiers
Créer et partager des fichiers Le rôle Services de fichiers... 246 Les autorisations de fichiers NTFS... 255 Recherche de comptes d utilisateurs et d ordinateurs dans Active Directory... 262 Délégation
INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)
CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.
Manuel d utilisation du site web de l ONRN
Manuel d utilisation du site web de l ONRN Introduction Le but premier de ce document est d expliquer comment contribuer sur le site ONRN. Le site ONRN est un site dont le contenu est géré par un outil
Logiciel ArpentGIS-PC Guide de l utilisateur
D3E Electronique Logiciel ArpentGIS-PC Guide de l utilisateur D3E Electronique SA 2003-2008 D3E ELECTRONIQUE Parc du Grand Troyes 3 Rond-point Winston Churchill 10302 SAINTESAVINE Cedex Email : [email protected]
PARAMETRER INTERNET EXPLORER 9
PARAMETRER INTERNET EXPLORER 9 Résumé Ce document vous donne la marche à suivre pour paramétrer Microsoft Internet Explorer 9, notamment en vous indiquant comment lancer Internet Explorer 9, réinitialiser
1 / Introduction. 2 / Gestion des comptes cpanel. Guide débuter avec WHM. 2.1Créer un package. 2.2Créer un compte cpanel
Guide débuter avec WHM 1 / Introduction WHM signifie Web Host Manager (ou gestionnaire d'hébergement web). WHM va donc vous permettre de gérer des comptes d'hébergement pour vos clients. (création de compte,
Formation Administrateur de Données Localisées (Prodige V3.2) Recherche et consultation des métadonnées
Formation Administrateur de Données Localisées (Prodige V3.2) Recherche et consultation des métadonnées SOMMAIRE CONSULTATION DU CATALOGUE DE DONNÉES...3 1 Contrôle des droits...3 2 Navigation par domaine
Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s
Mickaël Mickaël BLANCHARD BLANCHARD Préface de Sébastien L e p e r s Magento Préface de Sébastien L e p e r s Magento Réussir son site e-commerce Réussir son site e-commerce Groupe Eyrolles, 2010, ISBN
FICHE PRODUIT COREYE CACHE Architecture technique En bref Plateforme Clients Web Coreye Cache applicative Références Principe de fonctionnement
COREYE CACHE Solution d absorption de charge pour une disponibilité et une performance optimales des applications Web En bref Architecture technique La plateforme Coreye Cache délivre la majeure partie
Cartographie et SIG interactifs en ligne Séance 1 : Présentation générale du webmapping : principe et techniques
Département de Géographie, UT2J M2 Sigma : Module 351_33 Laurent Jégou 7 nov 2014 [email protected] Cartographie et SIG interactifs en ligne Séance 1 : Présentation générale du webmapping : principe
Mettre en place un Géoportail avec ArcGIS Server 9.3.1. Armel OUEDRAOGO Pierre TEYSSENDIER
Mettre en place un Géoportail avec ArcGIS Server 9.3.1 Armel OUEDRAOGO Pierre TEYSSENDIER Plan de la présentation Notion d'infrastructure de données spatiales (SDI) Rôle du Portail SIG dans un SDI L extension
Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.
Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite. Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs, relations,
MERLIN. Guide de démarrage rapide Gestion de projet professionnelle. 2010 ProjectWizards GmbH, Melle, Allemagne. Tous droits réservés.
MERLIN Guide de démarrage rapide Gestion de projet professionnelle 2010 ProjectWizards GmbH, Melle, Allemagne. Tous droits réservés. INTRODUCTION Bienvenue dans le guide de démarrage rapide de Merlin!
Manuel d utilisation email NETexcom
Manuel d utilisation email NETexcom Table des matières Vos emails avec NETexcom... 3 Présentation... 3 GroupWare... 3 WebMail emails sur internet... 4 Se connecter au Webmail... 4 Menu principal... 5 La
WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x
WysiUpStudio CMS professionnel pour la création et la maintenance évolutive de sites et applications Internet V. 6.x UNE SOLUTION DE GESTION DE CONTENUS D UNE SOUPLESSE INÉGALÉE POUR CRÉER, MAINTENIR ET
Conférence SIG 2011 Versailles 5-6 Octobre 2011 Atelier Technique ArcGIS for Server en 10.1
Conférence SIG 2011 Versailles 5-6 Octobre 2011 Atelier Technique ArcGIS for Server en 10.1 Gaëtan LAVENU Plan de la présentation Vision Installation et Configuration Architecture Publication de services
Guide Expert Comptable Production Coala Sm@rt-Cool
Guide Expert Comptable Production Coala Sm@rt-Cool Décembre 2007 Sage Division Experts-Comptables - 11 rue de Cambrai - 75945 Paris Cedex 19 Siège Social Sage : 10 rue Fructidor - 75834 Paris Cedex 17
Le générateur d'activités
Le générateur d'activités Tutoriel Mise à jour le 09/06/2015 Sommaire A. Mise en route du Générateur d'activité... 2 1. Installation de Page... 2 2. Création des bases du générateur d'activités... 3 3.
Version 7.1_5.1. Release Notes
Sommaire 1 PREFACE... 3 1.1 Viadeis CRM...3 2 NOUVEAUTES... 4 2.1 Viadeis CRM...4 2.1.1 Global...4 2.1.2 Sociétés et Contacts...4 2.1.3 Opportunités...5 2.1.4 Contrats et Prestations...5 2.1.5 Demandes
Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :
CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE Projet 2 Gestion des services enseignants G r o u p e : B E L G H I T Y a s m i n e S A N C H E Z - D U B R O N T Y u r i f e r M O N T A Z E R S i
Manuel d'utilisation d'apimail V3
Manuel d'utilisation d'apimail V3 I Préambule Page 3 II Présentation Page 4 III Mise en route Configuration Page 5 Messagerie Serveur smtp Serveur pop Compte pop Mot de passe Adresse mail Laisser les messages
Espace numérique de travail collaboratif
Espace numérique de travail collaboratif 1/10 Présentation Agora Project est un espace de travail collaboratif complet et intuitif. Cette application est accessible partout et à tout moment, via un simple
Serveur d'application Client HTML/JS. Apache Thrift Bootcamp
Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/
Espace de travail collaboratif
Espace de travail collaboratif 1/10 Table des matières Présentation...3 Les modules...4 LiveCounter, Messenger et Moteur de recherche...5 Utilisateur, Administrateur et Invité...5 Droits d'accès au contenu...6
S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i
Modernisation IBM i Nouveautés 2014-2015 IBM Power Systems - IBM i 19 et 20 mai 2015 IBM Client Center, Bois-Colombes S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i Mardi
«Manuel Pratique» Gestion budgétaire
11/06/01 B50/v2.31/F/MP005.01 «Manuel Pratique» Gestion budgétaire Finance A l usage des utilisateurs de Sage BOB 50 Solution Sage BOB 50 2 L éditeur veille à la fiabilité des informations publiées, lesquelles
Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage
Technologies du Web Créer et héberger un site Web Page 1 / 26 Plan Planification Choisir une solution d hébergement Administration Développement du site Page 2 / 26 Cahier des charges Objectifs du site
Livre Blanc WebSphere Transcoding Publisher
Livre Blanc WebSphere Transcoding Publisher Introduction WebSphere Transcoding Publisher vous permet d'offrir aux utilisateurs des informations Web adaptées à leurs besoins. Il vous permet, par exemple,
Nouveautés joomla 3 1/14
Nouveautés joomla 3 1/14 Table des matières 1 Responsive... 1 2 Bootstrap... 1 3 LESS CSS intégré... 1 4. JUI (pour les développeurs d'extensions)... 1 5. Le Mambo days vs le Génial UX... 2 6. 7 étapes
Joomla! Création et administration d'un site web - Version numérique
Avant-propos 1. Objectifs du livre 15 1.1 Orientation 15 1.2 À qui s adresse ce livre? 16 2. Contenu de l ouvrage 17 3. Conclusion 18 Introduction 1. Un peu d histoire pour commencer... 19 1.1 Du web statique
Module ebay pour PrestaShop Guide du vendeur
Module ebay pour PrestaShop Guide du vendeur Basé sur le module d'extension version 1.7.1, publié en 04/2014 Version du document : 1.4, 08/2014 1 Informations et aide Généralités Pour obtenir des informations
Mise en place d'une chaîne de production raster multi-échelles
25 Février 2014 Thierry Boch [email protected] Mise en place d'une chaîne de production raster multi-échelles FranceRaster Programme FranceRaster v4 Le produit "France Raster", coédition Esri France
Les outils actuels permettent-ils d automatiser la production de cartes? De quels outils dispose-t-on?
Le "Portrait de la Biodiversité Communale" est un document réalisé au niveau national pour chaque commune, regroupant les connaissances publiques disponibles et mobilisables à l'échelle nationale en matière
Contrôle Parental Numericable. Guide d installation et d utilisation
Contrôle Parental Numericable Guide d installation et d utilisation Version 12.3 pour OS X Copyright 2012 Xooloo. Tous droits réservés. Table des matières 1. Introduction Dénomination et caractéristiques
opentaxepub Documentation
opentaxepub Documentation Release rc1 openmairie November 02, 2012 CONTENTS 1 Utilisation 3 1.1 Les principes............................................... 3 1.2 Saisir une entreprise...........................................
ArcGIS 10.1 for Server
SIG 2012 - Conférence francophone Esri Versailles, France Atelier Technique - 4 Oct. 2012 ArcGIS 10.1 for Server Gaëtan LAVENU Plan de la présentation La vision Une nouvelle architecture Des nouveaux processus
GÉODÉSIE, COORDONNÉES ET GPS
GÉODÉSIE, COORDONNÉES ET GPS LES PROJECTIONS La représentation du globe terrestre sur un plan en deux dimensions exige une opération nommée projection. Une projection s appuie sur un géoïde, qui est une
Date de diffusion : Rédigé par : Version : Mars 2008 APEM 1.4. Sig-Artisanat : Guide de l'utilisateur 2 / 24
Guide Utilisateur Titre du projet : Sig-Artisanat Type de document : Guide utilisateur Cadre : Constat : Les Chambres de Métiers doivent avoir une vision prospective de l'artisanat sur leur territoire.
Tenrox. Guide d intégration Tenrox-Salesforce. Janvier 2012. 2012 Tenrox. Tous droits réservés.
Tenrox Guide d intégration Tenrox-Salesforce Janvier 2012 2012 Tenrox. Tous droits réservés. À propos de ce guide Le présent guide décrit les procédures nécessaires pour configurer les paramètres d intégration
8 - Import-Export de données
8 - Import-Export de données QGIS version 3.1C 4 mars 2015 Table des matières Introduction 5 I - Import de données geographiques 7 A. Import de données géolocalisables...7 B. Importer des données saisies
CARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1
CARPE (Documentation Informatique) 1 CARPE Version 2.00 Août 2013 Documentation Informatique S E T R A Programme CARPE - Manuel informatique de l'utilisateur CARPE (Documentation Informatique) 2 Table
Manuel d utilisation du web mail Zimbra 7.1
Manuel d utilisation du web mail Zimbra 7.1 ma solution de communication intelligente Sommaire 1 Connexion à la messagerie Zimbra p.4 1.1 Prérequis p.4 1.1.1 Ecran de connexion à la messagerie p.4 2 Presentation
CAHIER DES CLAUSES TECHNIQUES PARTICULIERES
DC-SICA 10.1204 CAHIER DES CLAUSES TECHNIQUES PARTICULIERES Développement et hébergement d un site Internet cartographique sur les points de captage et les périmètres de protection Glossaire API Application
Mémo d'utilisation de BD Dico1.6
Mémo d'utilisation de BD Dico1.6 L'application BDDico a été développée par la Section Cadastre et Géomatique de la RCJU. Son utilisation demeure réservée aux personnes autorisées. Les demandes d'utilisation
Wildix Web API. Guide Rapide
Wildix Web API Guide Rapide Version: 11.12.2013 API Web Wildix s'intègre avec les logiciels CRM, ERP, les solutions et web applications Fias / Fidelio. L'API de téléphonie Javascript vous permet de contrôler
Parcours FOAD Formation EXCEL 2010
Parcours FOAD Formation EXCEL 2010 PLATE-FORME E-LEARNING DELTA ANNEE SCOLAIRE 2013/2014 Pôle national de compétences FOAD Formation Ouverte et A Distance https://foad.orion.education.fr Livret de formation
Sage 100 CRM - Guide d installation Version 8.01. Mise à jour : 2015 version 8
Sage 100 CRM - Guide d installation Version 8.01 Mise à jour : 2015 version 8 Composition du progiciel Votre progiciel est composé d un boîtier de rangement comprenant : le cédérom sur lequel est enregistré
Manuel utilisateur logiciel Salles. Version 1.1
Manuel utilisateur logiciel Salles Version 1.1 juin 2015 Sommaire Accès au logiciel Salle...4 Se connecter au logiciel... 4 Configuration du planning...5 Personnaliser les éléments affichés sur le planning...
Module d échange de données INTERLIS v1.0 GeoConcept Manuel d'utilisation
Module d échange de données INTERLIS v1.0 GeoConcept Manuel d'utilisation Interlis V1.0 - GC version 5.0 Table des matières TABLE DES MATIERES...1 1. INTRODUCTION...2 1.1 OBJECTIF...2 1.2 PRINCIPE...2
CTIconnect PRO. Guide Rapide
CTIconnect PRO Guide Rapide Version 01.02.2013 CTIconnect PRO est une application de communication permettant aux utilisateurs du système de voir le statut de leurs collègues et de les contacter en 1 clic
SOMMAIRE 1 INTRODUCTION 4 2 GUIDE D UTILISATION ET TUTORIAUX VIDEOS EN LIGNE 4 3 CONTACTER VOTRE SUPPORT 4 4 RACCOURCIS CLAVIER 5
SOMMAIRE 1 INTRODUCTION 4 2 GUIDE D UTILISATION ET TUTORIAUX VIDEOS EN LIGNE 4 3 CONTACTER VOTRE SUPPORT 4 4 RACCOURCIS CLAVIER 5 5 ADMINISTRER SON SITE WEBGAZELLE CMS 2.0 5 5.1 Configuration minimale
FLEX 3. Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder. Aurélien Vannieuwenhuyze
Programmation FLEX 3 Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder Aurélien Vannieuwenhuyze Avec la contribution de Romain Pouclet Groupe Eyrolles, 2009, ISBN : 978-2-212-12387-6
Préparer la synchronisation d'annuaires
1 sur 6 16/02/2015 14:24 En utilisant ce site, vous autorisez les cookies à des fins d'analyse, de pertinence et de publicité En savoir plus France (Français) Se connecter Rechercher sur TechNet avec Bing
FAQ Trouvez des solutions aux problématiques techniques.
FAQ Trouvez des solutions aux problématiques techniques. 1. Au lieu des livres numériques dont je m'attendais, j'ai téléchargé un fichier qui s'intitule «urllink.acsm». Où est le livre numérique? 2. Comment
PARAMETRAGE D INTERNET EXPLORER POUR L UTILISATION DE GRIOTTE
PARAMETRAGE D INTERNET EXPLORER POUR L UTILISATION DE GRIOTTE ETAPE 1 : configurer votre site Griotte comme site de confiance. Ouvrir votre navigateur sur une page Griotte, n importe laquelle, par exemple
AMELIORATIONS DES FONCTIONNALITES DISPONIBLES
AMELIORATIONS DES FONCTIONNALITES DISPONIBLES DANS LE GEOSERVICE RIS.NET GESTION V.2 Zoom + vue) : Permet de faire un zoom avant sur la carte (uniquement en cadrant une Zoom à l échelle déroulante, : Possibilité
LANDPARK HELPDESK HISTORIQUES DES AMÉLIORATIONS PAR VERSIONS
LANDPARK HELPDESK HISTORIQUES DES AMÉLIORATIONS PAR VERSIONS Landpark Helpdesk version 3.9.4 (juin 2014) Correction de requêtes pour les bases de données oracle empêchant la visualisation des interventions.
HTML5 et CSS3 pour des sites Responsive Web Design
Chapitre 1 : Introduction A. Le design Web aujourd'hui 11 B. Le Responsive Web Design 11 C. Les approches dans la conception 12 D. Le lâcher-prise 12 E. Les objectifs du livre 13 F. Les outils de l intégrateur
GUIDE DE L UTILISATEUR Recoveo Récupérateur de données
Table d index : 1. Généralités 1 2. Installation du logiciel 2 3. Suppression du logiciel 2 4. Activation du logiciel 3 5. Récupération de données perdues 4 6. Interprétation du résultat 6 7. Enregistrement
GUIDE DE DÉMARRAGE. SitagriPro Infinite FINANCEAGRI. Un service. c o r p o r a t e
GUIDE DE DÉMARRAGE SitagriPro Infinite Un service FINANCEAGRI c o r p o r a t e SOMMAIRE ÉTAPE 1 : Installation... p.3 1. Introduction 2. Connexion à SitagriPro Infinite ÉTAPE 2 : Identification... p.5
Utilisation du client de messagerie Thunderbird
Outlook express n existant plus sur les systèmes d exploitation sortis après Windows XP, nous préconisons désormais l utilisation du client de messagerie libre distribué gratuitement par la Fondation Mozilla.
Sommaire. Systèmes d Exploitation... 3. Intégration Sage 100 Sage CRM... 3. Disponibilité Client... 3. Bases de données... 3
Communiqué de Lancement Sage CRM v. 6.5 Editions Standard et Avancée Sommaire Systèmes d Exploitation... 3 Intégration Sage 100 Sage CRM... 3 Disponibilité Client... 3 Bases de données... 3 Nouveautés
