Extension:GeoportailApi
De Ao35.
Sommaire |
Que fait cette extension ?
Cette extension permet d'afficher des cartes issues du Géoportail dans le Médiawiki.
Utilisation
Un mode d'utilisation est possible :
- via les balises geoportal:map, geoportal:wms, geoportal:kml et geoportal:georss
- geoportal:map
- définit une carte. Les attributs possibles sont :
- version
- version de l'API, valeur par défaut : '1.3'
- type
- type de l'API, valeurs possibles : 'Min', '', 'Extended', valeur par défaut : 'Extended'
- key
- clef API, issue de {{{$wgGeoportailApiKey}}} ou {{{$wgGeoportailApiSites}}}
- instance
- var javascript qui contient la carte, valeur par défaut: "viewer".{{{compteur}}}
- engine
- inclusion de l'API par le Géoportail, valeur par défault : false
- viewerclass
- type d'affichage, valeurs possibles : 'Default', 'Standard', valeur par défaut : 'Default'
- jsurl
- URL d'accès aux Javascript de l'API livrés avec l'extension, valeur par défaut : '$IP/extensions/GeoportailApi/api/js/1.3/'
- cssurl
- URL d'accès aux CSS de l'API livrés avec l'extension, valeur par défaut : '$IP/extensions/GeoportailApi/api/js/1.3/theme/'
- width
- largeur de la carte, valeur par défaut : '800px'
- height
- hauteur de la carte, valeur par défaut : '600px'
- mode
- mode de la carte, valeurs possibles : 'mini', 'normal', valeur par défaut : 'normal'
- territory
- territoire couvert par la carte, valeur par défaut : 'FXX'
- projection
- projection de la carte, valeur par défaut : null (celle du territoire)
- displayprojection
- projection d'affichage des coordonnées, valeur par défaut : null (celles du territoire)
- proxy
- proxy pour charger les KML/GeoRSS, valeur par défaut: '$IP/extensions/GeoportailApi/api/proxy/php/proxy.php'
- defaultlayers
- couches du Géoportail à charger dans la carte, valeur par défaut : null (toutes les couches du contrat API)
- defaultlayersoptions
- options d'affichage des couches du Géoportail, valeur par défaut : '{}' (affichage par défaut)
- layerswitchermode
- affichage du gestionnaire des couches, valeurs possibles : 'on', 'mini', 'off', valeur par défaut : 'on'
- toolboxmode
- affichage du gestionnaire des outils, valeurs possibles : 'on', 'mini', 'off', valeur par défaut : 'on'
- infopanelmode
- affichage du panneau des informations, booléan, valeur possible : false
- lon
- longitude du centre de la carte, valeur par défaut : 2.345274398 (Paris)
- lat
- latitude du centre de la carte, valeur par défaut : 48.860832558 (Paris)
- zoom
- zoom de la carte, valeurs possibles entre 0 et 20, valeur par défaut : 10
- geoportal:wms
- name
- nom de la couche, valeur par défaut : 'WMS'.{{{compteur}}}
- url
- URL du service WMS, valeur par défaut : 'http://localhost/?'
- layers
- noms de cartes à afficher (séparés par des ,), valeur par défaut :
- format
- type des images retournées par le service, valeur par défaut : 'image/jpeg'
- transparent
- transparence des images, valeur par défaut : false
- singletile
- mode d'interrogation du service (une seule requête, ou plusieurs requêtes de tuiles), booléen, valeur par défaut : true
- projection
- projection des cartes à afficher, valeur par défaut : 'EPSG:4326'
- maxextent
- emprise des cartes à afficher (longitude minimum, latitude minimum, longitude maximum, latitude maximum), valeur par défaut : '-180,-90,180,90'
- minzoomlevel
- zoom minimal (plus petite échelle), valeur par défaut : 5
- maxzoomlevel
- zoom maximal (plus grande échelle), valeur par défaut : 15
- opacity
- niveau de transparence des images, valeur par défaut : 0.5
- visibility
- affichage de la couche (booléen), valeur par défaut : false
- originators
- propriétaires des données (identifiant du logo logo, URL du logo pictureUrl, URL du partenaire url, attribution du propriétaire attribution), valeur par défaut : []
- geoportal:kml
- accède à un flux KML.
- name
- nom de la couche, valeur par défaut : 'GML'.{{{compteur}}}
- url
- URL du flux KML, valeur par défaut : 'http://localhost/?'
- projection
- projection du flux KML, valeur par défaut : 'EPSG:4326'
- minzoomlevel
- zoom minimal (plus petite échelle), valeur par défaut : 5
- maxzoomlevel
- zoom maximal (plus grande échelle), valeur par défaut : 15
- opacity
- niveau de transparence des images, valeur par défaut : 1.0
- visibility
- affichage de la couche (booléen), valeur par défaut : false
- originators
- propriétaires des données (identifiant du logo logo, URL du logo pictureUrl, URL du partenaire url, attribution du propriétaire attribution), valeur par défaut : '[]'
- panmapifoutofview
- centrage de la popup de données sur clic (booléen), valeur par défaut : true
- stylemap
- style cartographique des données affichées, valeur par défaut : null
- prefeatureinsert
- fonction Javascript à appeler lors de la lecture des données avant leur affichage, valeur par défaut : null
- onfeatureinsert
- fonction Javascript à appeler après la lecture des données, valeur par défaut : null
- eventlisteners
- ensemble de fonctions Javascript à appeler sur des évènements levés par OpenLayers : null
- formatoptions
- paramètres de lecture du format KML, valeur par défaut : null
- hover
- indicateur d'activation de l'évènement survol (booléen), valeur par défaut : false
- highlightonly
- indicateur d'affichage en mode "mise en avant" des données (booléen), valeur par défaut : false
- renderintent
- type d'affichage des données par défaut, valeurs possibles : "default", "select", "temporary", "delete", valeur par défaut : null
- onbeforeselect
- fonction Javascript à appeler avant de sélectionner un objet, valeur par défaut : null
- onselect
- fonction Javascript à appeler lors de la sélection d'un objet (survol ou clic), valeur par défaut : null
- onunselect
- fonction Javascript à appeler lors de la dé-sélection d'un objet, valeur par défaut : null
- geoportal:georss
- accède à un fil GeoRSS.
- name
- nom de la couche, valeur par défaut : 'Marker'.{{{compteur}}}
- url
- URL du fil GeoRSS, valeur par défaut : 'http://localhost/?'
- projection
- projection du fil GeoRSS, valeur par défaut : 'EPSG:4326'
- minzoomlevel
- zoom minimal (plus petite échelle), valeur par défaut : 5
- maxzoomlevel
- zoom maximal (plus grande échelle), valeur par défaut : 15
- opacity
- niveau de transparence des images, valeur par défaut : '1.0'
- visibility
- affichage de la couche (booléen), valeur par défaut : false
- originators
- propriétaires des données (identifiant du logo logo, URL du logo pictureUrl, URL du partenaire url, attribution du propriétaire attribution), valeur par défaut : '[]'
- panmapifoutofview
- centrage de la popup de données sur clic (booléen), valeur par défaut : true
- stylemap
- style cartographique des données affichées, valeur par défaut : null
- prefeatureinsert
- fonction Javascript à appeler lors de la lecture des données avant leur affichage, valeur par défaut : null
- onfeatureinsert
- fonction Javascript à appeler après la lecture des données, valeur par défaut : null
- eventlisteners
- ensemble de fonctions Javascript à appeler sur des évènements levés par OpenLayers : null
- formatoptions
- paramètres de lecture du format GeoRSS, valeur par défaut : null
- hover
- indicateur d'activation de l'évènement survol (booléen), valeur par défaut : false
- highlightonly
- indicateur d'affichage en mode "mise en avant" des données (booléen), valeur par défaut : false
- renderintent
- type d'affichage des données par défaut, valeurs possibles : "default", "select", "temporary", "delete", valeur par défaut : null
- onbeforeselect
- fonction Javascript à appeler avant de sélectionner un objet, valeur par défaut : null
- onselect
- fonction Javascript à appeler lors de la sélection d'un objet (survol ou clic), valeur par défaut : null
- onunselect
- fonction Javascript à appeler lors de la dé-sélection d'un objet, valeur par défaut : null
Téléchargement
L'extension est téléchargeable là. Cette page fait partie de la distribution sous le nom WikiAPI-Extension_GeoportailApi.xml. Il suffit de l'importer dans le MédiaWiki pour avoir la documentation de l'extension.
Installation
Il faut la décompresser dans $IP/extensions
.
Puis, il faut suivre les instructions ci-après.
Note: $IP correspond au répertoire d'installation de votre MediaWiki, le répertoire qui contient le fichier LocalSettings.php.
Pour activer cette extension, ajouter ce qui suit à LocalSettings.php :
$wgGeoportailApiKey= 'VOTRE_CLEF'; require_once("$IP/extensions/GeoportailApi/GeoportailApi.php");
Paramètres de configuration
- wgGeoportailApiKey
- La clef API : elle s'applique à toutes vos pages susceptibles d'utiliser l'extension.
- Avant d'accéder à l'API, il faut passer par les étapes suivantes :
- créer un compte
- Suite à l'inscription, un courriel de confirmation est envoyé. Une fois confirmé, il suffit de se connecter.
- créer un contrat
- Les paramètres de création d'un contrat sont l'URL du site où elle va être déployée et le territoire concerné par les données à afficher. Une fois créé, un courriel de confirmation avec la licence est envoyé. Cette dernière donne accès aux cartes et aux ortho-photographies. Plusieurs licences peuvent être créées suivant les URLs, les territoires pour un même contrat.
- wgGeoportailApiSites
- Ce tableau contient les associations site web et clef API.
- Il permet donc d'associer suivant l'URL du Médiawiki, une clef particulière.
$wgGeoportailApiSites = array( 'localhost/' => "VOTRE_CLEF", # développement 'http://monwiki.org/' => "VOTRE_AUTRE_CLEF" #production );
- wgGeoportailApiUrlPath
- Chemin d'accès à l'API du Géoportail. Par défaut, $IP/extensions/GeoportailApi est utilisé (une version de l'API est livrée avec l'extension).
- Ce chemin permet alors d'accèder au Javascript de l'API ($wgGeoportailApiUrlPath/js/$wgGeoportailDefaults["version"]/) et aux CSS de l'API ($wgGeoportailApiUrlPath/js/$wgGeoportailDefaults["version"]/theme/)
- Pour ne pas utiliser l'API livrée avec l'extension, il suffit d'instancier ce paramètre. Par exemple, pour utiliser l'API en production :
$wgGeoportailApiUrlPath = "http://api.ign.fr/geoportail/";
- wgGeoportailDefaults
- Ce tableau contient les options que l'extension va utiliser pour l'affichage des données (les valeurs par défaut sont indiquées ci-dessous) :
$wgGeoportailDefaults= array( 'version' => '1.3', 'type' => '', // 'Min','','Extended' 'key' => {{{$wgGeoportailApiKey}}}, // prise directement ou calculée à partir de $wgGeoportailApiSites 'instance' => 'viewer'.{{{counter}}}, // chaque carte est identifiée par un comptage global au wiki 'engine' => FALSE, // charge l'API fournie avec l'extension 'viewerclass' => 'Default', // 'Simple' ou 'Default' ou 'Standard' 'jsurl' => {{{$IP/extensions/GeoportailApi}}}.'/api/js/1.3/', 'cssurl' => {{{$IP/extensions/GeoportailApi}}}.'/api/js/1.3/theme/', // div options : 'width' => '800px', 'height' => '600px', // viewer options : 'mode' => 'normal', // 'mini' ou 'normal' (si 'Default'), sinon inutilisé 'territory' => 'FXX', // voir la documentation en ligne sur https://api.ign.fr/geoportail/api/doc/fr/webmaster/integration.html 'projection' => 'null', 'displayprojection' => 'null', 'proxy' => {{{$IP/extensions/GeoportailApi}}}.'/proxy/php/proxy.php', 'defaultlayers' => 'null', // all layers in contract 'defaultlayersoptions' => '{}', // default 'layerswitchermode' => 'on', // 'on','mini','off' 'toolboxmode' => 'on', // 'on','mini','off' 'infopanelmode' => true, 'lon' => 2.345274398, 'lat' => 48.860832558, 'zoom' => 10 );
- wgGeoportailApiCustomMessages
- Ce tableau permet de surcharger les messages mis dans
$IP/extensions/GeoportailApi/GeoportailApi.i18n.php
.
- Ce tableau permet de surcharger les messages mis dans
Conditions Générales d'Utilisation
Voir les CGUs Géoportail.
Codes
Carte simple
|
Crée une carte qui occupe tous l'espace possible avec les ortho-photographies et les cartes. <geoportal:map instance="map1" width="100%" defaultLayers="['ORTHOIMAGERY.ORTHOPHOTOS:WMSC','GEOGRAPHICALGRIDSYSTEMS.MAPS:WMSC']" defaultLayersOptions="{'GEOGRAPHICALGRIDSYSTEMS.MAPS:WMSC':{opacity:0.5}}" layerSwitcherMode="mini" toolboxMode="on" infoPanelMode="true" /> |
Carte avec un service WMS
|
Le code précédent est modifié pour ajouter le support WMS (en rouge). <geoportal:map instance="map2" width="100%" defaultLayers="['GEOGRAPHICALGRIDSYSTEMS.MAPS:WMSC']" defaultLayersOptions="{'GEOGRAPHICALGRIDSYSTEMS.MAPS:WMSC':{opacity:0.25}}" layerSwitcherMode="mini" toolboxMode="mini" infoPanelMode="false" > <geoportal:wms name="Cours d'eau" url="http://services.sandre.eaufrance.fr/geo/zonage-shp?" layers="RWBODY" format="image/png" transparent="true" singleTile="true" projection="EPSG:4326" maxExtent="-180,-90,180,90" minZoomLevel="5" maxZoomLevel="15" opacity="1" visibility="true" originators="sandre" > var sandre= [{ logo:'sandre', pictureUrl:'http://api.ign.fr/geoportail/api/doc/examples//img/logo_sandre.gif', url:'http://sandre.eaufrance.fr' }]; </geoportal:wms> </geoportal:map> |
Carte avec un flux KML
|
Le code initial est modifié pour ajouter le support KML (en rouge). <geoportal:map instance="map3" width="100%" defaultLayers="['ORTHOIMAGERY.ORTHOPHOTOS:WMSC','GEOGRAPHICALGRIDSYSTEMS.MAPS:WMSC']" defaultLayersOptions="{'GEOGRAPHICALGRIDSYSTEMS.MAPS:WMSC':{opacity:0.5}}" mode="mini" zoom="5" lon="2.50" lat="46.63" proxy="/mediawiki/extensions/GeoportailApi/api/proxy/php/proxy.php" > <geoportal:kml name="Cartes 1:100 000ième" url="http://api.ign.fr/geoportail/api/doc/data/S_TOP100.kml" originators="[{logo:'ign',url: 'http://www.ign.fr'}]" minZoomLevel="5" maxZoomLevel="10" styleMap="s100Style" formatOptions="{extractStyles:false}" hover="true" highlightOnly="true" renderIntent="temporary" onSelect="function(f){}" onUnselect="function(f){}" visibility="true" > /*1*/ var s100Style= new OpenLayers.StyleMap({ "default": new OpenLayers.Style({ strokeColor:'#ffffff', strokeWidth:2, fillColor:'#000000', fillOpacity:0.5 }), "temporary": new OpenLayers.Style({ strokeColor:'#00ff00', strokeWidth:2, fillColor:'#00ff00', fillOpacity:0.5, label: "${getTITRE_COMP}", labelAlign: "rb", labelBackgroundColor: "yellow", labelBorderColor: "black", labelBorderSize: "1px", fontColor: "black", fontWeight: "bold", fontSize: "12px", fontFamily: "Courier New, monospace" },{ context:{ getTITRE_COMP: function(f) { return f.attributes['TITRE_COMP'].value; } } }), "select": new OpenLayers.Style({ strokeColor:'#ff0000', strokeWidth:2, fillColor:'#ff0000', fillOpacity:0.5 }) }); </geoportal:kml> /*2*/ var s100= map3.getMap().getLayersByName("Cartes 1:100 000ième")[0]; if (s100) { var selectS100Opts= OpenLayers.Util.extend( map3.getMap().getPopupDefaults('KML'), {}); var selectS100= new OpenLayers.Control.SelectFeature(s100, selectS100Opts); map3.getMap().addControl(selectS100); map3.getMap().events.on({"changelayer":Geoportal.Map.onVisibilityChange, scope:selectS100}); } </geoportal:map> |
Carte avec un flux GeoRSS
|
Le code initial est modifié pour ajouter le support GeoRSS (en rouge). <geoportal:map instance="map4" width="100%" defaultLayers="['ORTHOIMAGERY.ORTHOPHOTOS:WMSC','GEOGRAPHICALGRIDSYSTEMS.MAPS:WMSC']" defaultLayersOptions="{'GEOGRAPHICALGRIDSYSTEMS.MAPS:WMSC':{opacity:0.5}}" layerSwitcherMode="off" toolboxMode="mini" infoPanelMode="false" > <geoportal:georss name="GéoBretagne" url="ggUrl" originators="geobretagne" formatOptions="{size:new OpenLayers.Size(360,130)}" eventListeners="{'loadend':pfo}" visibility="true" > var ggUrl= 'http://geobretagne.fr/geonetwork/srv/fr/rss.latest?georss=simplepoint'; var geobretagne= [{ logo:'geobretagne', pictureUrl:'http://www.geobretagne.fr/geobretagne-theme/images/logo_geobretagne.png', url: 'http://www.geobretagne.fr/' }]; function pfo() { if (this.maxExtent) { this.map.zoomToExtent(this.maxExtent); } } </geoportal:georss> </geoportal:map> |
Carte complexe
Les codes précédents peuvent être utilisés tous ensemble !
Voir aussi
Le site des APIs du Géoportail apporte de nombreuses autres informations sur les interfaces et services offerts par l'Institut Géographique National.