Extension:GeoportailApi : Différence entre versions

De WikiRésilience
(Téléchargement)
 
m (1 version)
 
(Aucune différence)

Version actuelle en date du 31 mars 2014 à 15:30

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 :

  1. via les balises geoportal:map, geoportal:wms, geoportal:kml et geoportal:georss
    1. geoportal:map
      définit une carte. Les attributs possibles sont :
      • version
      version de l'API, valeur par défaut : "2.0.3"
      • type
      type de l'API, valeurs possibles : "Min", "", "Extended", valeur par défaut : "Extended"
      • key
      clef API, issue de $wgGeoportailApiKey ou $wgGeoportailApiSites
      • instance
      variable javascript qui contient la carte, valeur par défaut: "viewer".{{{compteur}}}
      {{{compteur}}} est un numéro de type entier incrémental qui est accolé par l'extension à la variable définie par {{{instance}}}
      • engine
      inclusion de l'API par le Géoportail, booléen, valeurs possibles : true, false, 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 : $wgExtensionAssetsPath."/GeoportailApi/api/js/".{{{version}}}."/"
      si {{{engine}}} est à true, alors {{{jsurl}}} prend la valeur "http://api.ign.fr/geoportail/api/js/".{{{version}}}."/"
      • cssurl
      URL d'accès aux CSS de l'API livrés avec l'extension, valeur par défaut : $wgExtensionAssetsPath."/GeoportailApi/api/js/".{{{version}}}."/theme/"
      si {{{engine}}} est à true, alors {{{cssurl}}} prend la valeur "http://api.ign.fr/geoportail/api/js/".{{{version}}}."/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: $wgExtensionAssetsPath."/GeoportailApi/api/proxy/php/proxy.php"
      ce code PHP doit être modifié derrière un proxy d'entreprise en renseignant l'hôte et le port (les exemples KML et GeoRSS ne fonctionneront pas si ce n'est pas fait!)
      • 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éen, valeurs possibles : true, false, valeur par défaut : "true"
      • 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 21, valeur par défaut : 10
    2. geoportal:wms
      accède à un flux Web Map Service (WMS) de l'OGC.
      • 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, booléen, valeurs possibles : true, false, valeur par défaut : false
      • singletile
      mode d'interrogation du service (une seule requête, ou plusieurs requêtes de tuiles), booléen, valeur possible : true, false, 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, valeurs possibles : true, false, 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 : []
    3. 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 : 0
      • maxzoomlevel
      zoom maximal (plus grande échelle), valeur par défaut : 21
      • opacity
      niveau de transparence des images, valeur par défaut : 1.0
      • visibility
      affichage de la couche, booléen, valeurs possibles : true, false, 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, valeurs possibles : true, false, 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, valeurs possibles : true, false, valeur par défaut : false
      • highlightonly
      indicateur d'affichage en mode "mise en avant" des données, booléen, valeurs possibles : true, false, valeur par défaut : false
      • renderintent
      type d'affichage des données, valeurs possibles : "default", "select", "temporary", "delete", valeur par défaut : "default"
      • 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
    4. 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 : 0
      • maxzoomlevel
      zoom maximal (plus grande échelle), valeur par défaut : 21
      • opacity
      niveau de transparence des images, valeur par défaut : 1.0
      • visibility
      affichage de la couche, booléen, valeurs possibles : true, false, 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, valeurs possibles : true, false, 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, valeurs possibles : true, false, valeur par défaut : false
      • highlightonly
      indicateur d'affichage en mode "mise en avant" des données, booléen, valeurs possibles: true, false, valeur par défaut : false
      • renderintent
      type d'affichage des données, valeurs possibles : "default", "select", "temporary", "delete", valeur par défaut : "default"
      • 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
    5. geoportal:markers
      permet de placer des points d'intérêt (Cf. geoportal:marker) sur la carte.
      • name
      nom de la couche, valeur par défaut : "Marker".{{{compteur}}}
      • projection
      projection des points, valeur par défaut : "EPSG:4326"
      • minzoomlevel
      zoom minimal (plus petite échelle), valeur par défaut : 0
      • maxzoomlevel
      zoom maximal (plus grande échelle), valeur par défaut : 21
      • opacity
      niveau de transparence des images, valeur par défaut : 1.0
      • visibility
      affichage de la couche, booléen, valeurs possibles : true, false, valeur par défaut : true
      • 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, valeurs possibles : true, false, valeur par défaut : true
      • stylemap
      style cartographique des données affichées, valeur par défaut : utilisation des pictogrammes {{{pictoUrl}}} du point (taille 21 x 25 pixels)
      • 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, valeurs possibles : true, false, valeur par défaut : false
      • highlightonly
      indicateur d'affichage en mode "mise en avant" des données, booléen, valeurs possibles: true, false, valeur par défaut : false
      • renderintent
      type d'affichage des données, valeurs possibles : "default", "select", "temporary", "delete", valeur par défaut : "default"
      • 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 : ouverture d'une popup dont le contenu est la {{{description}}} du point
      • onunselect
      fonction Javascript à appeler lors de la dé-sélection d'un objet, valeur par défaut : fermeture de la popup ouverte
    6. geoportal:marker
      définition d'un point d'intérêt. Le corps de cet balise défini le contenu de la popup associé au point d'intérêt.
      • name
      nom du point, valeur par défaut : "marker".{{{compteur}}}
      • lon
      longitude du centre de la carte, valeur par défaut : 0.0 (Méridien de Greenwhich)
      • lat
      latitude du centre de la carte, valeur par défaut : 0.0 (Équateur)
      • pictoUrl
      url du pictogramme associé au point

Téléchargement

L'extension est téléchargeable . 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 (équivalent à $wgExtensionAssetsPath).

Puis, il faut suivre les instructions ci-après.

Note: $IP correspond au répertoire d'installation de votre MediaWiki, c'est 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");

if (!isset($wgExtensionAssetsPath)||$wgExtensionAssetsPath=="") {

   $wgExtensionAssetsPath = "${wgScriptPath}/extensions";

} </pre>

Pour permettre l'interprétation de toutes les balises HTML, ajouter ceci à $IP/LocalSettings.php : <pre> $wgRawHtml = true;

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/)
  1. 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'               => '2.0.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,                                                    // ne charge pas l'API fournie avec l'extension
            'viewerclass'           => 'Default',                                                // 'Simple' ou 'Default' ou 'Standard'
            'jsurl'                 => $wgExtensionAssetsPath.'/GeoportailApi.'/api/js/'.{{{version}}}.'/',
            'cssurl'                => $wgExtensionAssetsPath.'/GeoportailApi.'/api/js/'.{{{version}}}'./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'                 => $wgExtensionAssetsPath.'/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.

Conditions Générales d'Utilisation

Voir les CGUs Géoportail.

Codes

Carte simple

<geoportal:map

 instance="map1"
 type="3D"
 width="100%"
 defaultLayers="['ORTHOIMAGERY.ORTHOPHOTOS','GEOGRAPHICALGRIDSYSTEMS.MAPS']"
 defaultLayersOptions="{'GEOGRAPHICALGRIDSYSTEMS.MAPS':{opacity:0.5}}"
 layerSwitcherMode="mini"
 toolboxMode="on"
 infoPanelMode="true"

/>

Crée une carte qui occupe tous l'espace possible avec les ortho-photographies et les cartes.
Ces dernières sont affichées avec une transparence de 50%. Le gestionnaire des couches est replié.
La boîte à outils est dépliée. Le panneau d'information (avec l'échelle, les coordonnées, etc ...) est visible.

<geoportal:map
  instance="map1"
  width="100%"
  defaultLayers="['ORTHOIMAGERY.ORTHOPHOTOS','GEOGRAPHICALGRIDSYSTEMS.MAPS']"
  defaultLayersOptions="{'GEOGRAPHICALGRIDSYSTEMS.MAPS':{opacity:0.5}}"
  layerSwitcherMode="mini"
  toolboxMode="on"
  infoPanelMode="true"
/>



Carte avec un service WMS

<geoportal:map

 instance="map2"
 width="100%"
 defaultLayers="['GEOGRAPHICALGRIDSYSTEMS.MAPS']"
 defaultLayersOptions="{'GEOGRAPHICALGRIDSYSTEMS.MAPS':{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/tech-docs-js/examples/img/logo_sandre.gif',
 url:'http://sandre.eaufrance.fr'

}]; </geoportal:wms> </geoportal:map>

Le code précédent est modifié pour ajouter le support WMS (en rouge).
Les panneaux sont repliés.
La couche WMS "Cours d'eau" est affichée directement (visibility:true).
On peut ajouter du code Javascript entre les balises geoportal:wms !

<geoportal:map
  instance="map2"
  width="100%"
  defaultLayers="['GEOGRAPHICALGRIDSYSTEMS.MAPS']"
  defaultLayersOptions="{'GEOGRAPHICALGRIDSYSTEMS.MAPS':{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/tech-docs-js/examples/img/logo_sandre.gif',
  url:'http://sandre.eaufrance.fr'
}];
</geoportal:wms>
</geoportal:map>



Carte avec un flux KML

<geoportal:map

 instance="map3"
 width="100%"
 defaultLayers="['ORTHOIMAGERY.ORTHOPHOTOS','GEOGRAPHICALGRIDSYSTEMS.MAPS']"
 defaultLayersOptions="{'GEOGRAPHICALGRIDSYSTEMS.MAPS':{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/tech-docs-js/data/S_TOP100.kml"
 originators="[{logo:'IGN'}]"
 minZoomLevel="5"
 maxZoomLevel="10"
 styleMap="s100Style"
 formatOptions="{extractStyles:false}"
 hover="true"
 highlightOnly="true"
 renderIntent="temporary"
 onSelect="function(f){}"
 onUnselect="function(f){}"
 visibility="true"

> 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> /* add clic control with default options :*/ 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>

Le code initial est modifié pour ajouter le support KML (en rouge).
La visualisation est en mode "mini" (pas de panneaux).
Le zoom est mis au niveau 5 pour voir la France en entier.
Le centre de la carte est positionné explicitement.
Le KML est chargé directement (visibility à true).
Ses échelles sont bloquées entre le zoom 5 et 10.
Au survol des éléments, un label est affiché (hover, hightlightOnly, renderIntent, onSelect et onUnselect).
On peut ajouter du code Javascript entre les balises geoportal:kml :
1.- Un style lui est attribué (s100Style) et l'interprétation des styles du KML désactivée;
2.- Au clic sur un élément, une fiche est proposée.

<geoportal:map
  instance="map3"
  width="100%"
  defaultLayers="['ORTHOIMAGERY.ORTHOPHOTOS','GEOGRAPHICALGRIDSYSTEMS.MAPS']"
  defaultLayersOptions="{'GEOGRAPHICALGRIDSYSTEMS.MAPS':{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'}]"
  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

<geoportal:map

 instance="map4"
 width="100%"
 defaultLayers="['ORTHOIMAGERY.ORTHOPHOTOS','GEOGRAPHICALGRIDSYSTEMS.MAPS']"
 defaultLayersOptions="{'GEOGRAPHICALGRIDSYSTEMS.MAPS':{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>

Le code initial est modifié pour ajouter le support GeoRSS (en rouge).
Le panneau des couches est retiré.
On peut ajouter du code Javascript entre les balises geoportal:georss :
A la fin du chargement du fil GeoRSS, on zoome sur l'étendue des données (eventListeners).

<geoportal:map
  instance="map4"
  width="100%"
  defaultLayers="['ORTHOIMAGERY.ORTHOPHOTOS','GEOGRAPHICALGRIDSYSTEMS.MAPS']"
  defaultLayersOptions="{'GEOGRAPHICALGRIDSYSTEMS.MAPS':{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 avec des marqueurs

<geoportal:map

 instance="map5"
 width="100%"
 defaultLayers="['GEOGRAPHICALGRIDSYSTEMS.MAPS']"
 defaultLayersOptions="{'GEOGRAPHICALGRIDSYSTEMS.MAPS':{opacity:1.0}}"
 layerSwitcherMode="off"
 toolboxMode="off"
 infoPanelMode="false"
 zoom="18"

> <geoportal:markers

 name="IGN"
 originators="[{logo:'IGN'}]"

> <geoportal:marker

 lon="2.424274"
 lat="48.845885"
 pictoUrl="http://maps.gstatic.com/intl/fr_ALL/mapfiles/marker.png">

<img src="http://www.ign.fr/institut/sites/all/files/logo1.gif" alt="IGN"/> </geoportal:marker> </geoportal:markers> </geoportal:map>

Le code initial est modifié pour ajouter le support des marqueurs (en rouge).
Le panneau des couches est retiré.
Le panneau des outils est retiré.
Le panneau des informations est retiré.
Un niveau de zoom est affecté.
On peut ajouter du code Javascript entre les balises geoportal:markers.
A la fin du chargement des marqueurs, on zoome automatiquement sur l'étendue des données. La balise geoportal:markers supporte la balise interne geoportal:marker pour définir chaque point de la carte : chaque point est défini par une longitude, une latitude, éventuellement un URL de pictogramme et un contenu de la popup qui est défini par le contenu de la balise geoportal.marker!

<geoportal:map
  instance="map5"
  width="100%"
  defaultLayers="['GEOGRAPHICALGRIDSYSTEMS.MAPS']"
  defaultLayersOptions="{'GEOGRAPHICALGRIDSYSTEMS.MAPS':{opacity:1.0}}"
  layerSwitcherMode="off"
  toolboxMode="off"
  infoPanelMode="false"
  zoom="18"
>
<geoportal:markers
  name="IGN"
  originators="[{logo:'IGN'}]"
>
<geoportal:marker
  lon="2.424274"
  lat="48.845885"
  pictoUrl="http://maps.gstatic.com/intl/fr_ALL/mapfiles/marker.png">
<img src="http://www.ign.fr/institut/sites/all/files/logo1.gif" alt="IGN"/>
</geoportal:marker>
</geoportal:markers>
</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 national de l'information géographique et forestière.