Avant d'accéder à l'API, il faut passer par les étapes suivantes :
Suite à l'inscription, un courriel de confirmation est envoyé. Une fois confirmé, il suffit de se connecter.
Pour la version bêta, 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.
Pour pouvoir utiliser l'API IGN du Géoportail 2D dans une page HTML, il faut:
Le code HTML suivant contient tous les éléments nécessaires à l'inclusion d'une carte de l'API :
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<script
type="text/javascript"
src="http://api.ign.fr/geoportail/api?v=VERSION&key=VOTRE_LICENCE&instance=maCarte&">
<!--
-->
</script>
<script type="text/javascript">
<!--
function initGeoportalMap() {
//Cette fonction sera exécutée au chargement de la page HTML
//La carte doit y être créée et paramétrée
}
-->
</script>
</head>
<body>
<div id="plancheCartographique" style="width:800px;height:600px;"></div>
</body>
</html>
Le code précédent définit les éléments HTML nécessaires pour insérer une carte, mais ne la génère pas. Pour réaliser cette opération, il faut instancier un objet Geoportal.Map dans la fonction initGeoportalMap() définie ci-dessus. Le nom de la fonction à appeler est geoportalLoad + nom de l'instance. Si le nom de l'instance est maCarte, la fonction qui sera appelée sera geoportalLoadmaCarte(). Il est important de noter que l'appel au script avec votre clé de licence génère la variable Javascript passée en paramètre de instance, il n'est donc pas besoin de la déclarer à nouveau.
Une fois l'intégration à votre page web réalisée vous allez pouvoir tester son bon fonctionnement sur votre poste local. Pour ce faire il est nécessaire d'équiper votre poste d'un serveur HTTP.
Une adresse de type http://localhost/maPageApi.html ou http://127.0.0.1/maPageApi.html est en effet nécessaire pour accéder aux données des couches Géoportail.
Parmi les nombreux serveurs HTTP libres et gratuits disponibles aujourd'hui (Apache, lighttpd, ...) nous conseillons aux utilisateurs peu familiers avec ce type de technologies et travaillant sous Microsoft Windows, l'utilisation de Zazou Mini Web Server.
Il vous suffit en effet de :



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.fr devraient donc être autorisés dans les règles du pare-feu.
Le paramètre v, dont la valeur est VERSION dans l'exemple ci-dessus, est directement lié à la version de l'API Géoportail standard :
| v | Basée sur | Tailles minimum (compressée) standard (compressée) étendue (compressée) |
État |
|---|---|---|---|
| 1.0beta | Cf. 1.0beta1 | N/A (N/A) N/A (N/A) 749ko (N/A) |
Désactivé Redirigé sur 1.0beta3 |
| 1.0beta1 | OpenLayers 2.5 | N/A (N/A) N/A (N/A) 749ko (N/A) |
Désactivé Redirigé sur 1.0beta3 |
| 1.0beta2 | OpenLayers 2.6 | N/A (N/A) N/A (N/A) 809ko (N/A) |
Désactivé Redirigé sur 1.0beta3 |
| 1.0beta3 | OpenLayers 2.7 | N/A (N/A) N/A (N/A) 925ko (N/A) |
Activé jusqu'à 1.0 (+1 an) |
| 1.0beta4 | OpenLayers 2.7 | 117ko ( 28ko) 641ko (149ko) 981ko (219ko) |
Activé jusqu'à 1.0 (+1 an) |
| 1.0 | OpenLayers 2.8 | 250ko ( 62ko) 914ko (215ko) 1400ko (300ko) |
Activé |
| 1.1 | OpenLayers 2.9.1 | 277ko ( 69ko) 1100ko (251ko) 1500ko (335ko) |
Activé |
| 1.2 | OpenLayers 2.10 | 288ko ( 72ko) 1100ko (263ko) 1600ko (353ko) |
Activé |
| Autre valeur | Erreur retournée à l'application cliente |
N/A (N/A) N/A (N/A) N/A (N/A) |
N/A |
La valeur du paramètre v peut être suivie de la chaîne "-m" pour obtenir l'API minimum.
La valeur du paramètre v peut être suivie de la chaîne "-e" pour obtenir l'API étendue.
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).
Dans notre cas, on a passé dans la balise script instance=maCarte&, donc l'appel se fera de cette manière :
geoportalLoadmaCarte("plancheCartographique","normal");
Le premier paramètre à donner est le nom de la DIV dans laquelle sera insérée la carte. Les paramètres suivant, tous optionnels, sont le type de carte souhaité, le territoire, la projection des données et celle d'affichage des coordonnées.
Il existe 2 types de visualisateur :
Certains codes EPSG sont aussi autorisés (e.g., EPSG:2154 correspond au code IGNF:LAMB93). Les codes sont définis via le projet PROJ4JS.
La carte ainsi générée est vide, il faut maintenant ajouter des couches de données. Pour ajouter les couches auxquelles votre licence vous donne l'accès, il suffit d'insérer les lignes suivantes :
if(maCarte.allowedGeoportalLayers){
maCarte.addGeoportalLayers(maCarte.allowedGeoportalLayers);
}
ou, depuis la 1.0beta4 :
maCarte.addGeoportalLayers();
Il est important de retenir que les données sont affichées en projection équidistante cylindrique IGNF:GEOPORTALxxx (xxx étant le code du territoire) 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= maCarte.getMap().getProjection();
Pour obtenir le système d'affichage des contrôleurs, on utilise le fragment de code suivant :
var projection_ctrl= maCarte.getMap().getDisplayProjection();
Pour centrer l'affichage sur une coordonnées GPS, on utilise le fragment de code suivant :
maCarte.getMap().setCenterAtLonLat(longitude, latitude);
Dans cet exemple, longitude et latitude peuvent être :
\s?-?(\d{1,3})[.,°d]?\s?(\d{0,2})[']?\s?(\d{0,2})[.,]?(\d{0,})(?:["]|[']{2})?
\s?(\d{1,3})[.,°d]?\s?(\d{0,2})[']?\s?(\d{0,2})[.,]?(\d{0,})(?:["]|[']{2})?\s?([NSEW])?
Ainsi, pour se centrer sur le marégraphe de Marseille :
maCarte.getMap().setCenterAtLonLat("5d21'13,62161E", "43°16'43.56108 N");
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, maCarte.getMap().getProjection());
L'objet Geoportal.Map possède d'autres méthodes qui vous permettent de configurer votre carte. Pour les découvrir consulter la JSDoc de Geoportal.Map. Vous pouvez également consulter les examples de cartes.
Les styles par défaut de l'API Géoportail et d'OpenLayers (style.css) sont automatiquement chargés par les API standard et étendue si nécessaire. En API minimum ou pour charger soi-même les styles, il faut utiliser les URLs suivantes :
http://api.ign.fr/geoportail/api/js/VERSION/theme/default/style.css http://api.ign.fr/geoportail/api/js/VERSION/theme/default/ie6-style.css http://api.ign.fr/geoportail/api/js/VERSION/theme/default/google.css http://api.ign.fr/geoportail/api/js/VERSION/theme/default/framedCloud.css
http://api.ign.fr/geoportail/api/js/VERSION/theme/geoportal/style.css http://api.ign.fr/geoportail/api/js/VERSION/theme/geoportal/standard.css
L'exemple Changement de l'affichage montre comment charger les CSS.
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.
Jusqu'à la version 1.0beta4 il est nécessaire d'insérer le fragment de code suivant pour le support d'IE 8. Ce fragment doit être inséré avant toute autre balise meta. Il peut être inséré après la balise title :
<!-- IE8 compatibility mode -->
<!--[if IE 8]>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
<![endif]-->
Le nom du territoire est un code ISO3166 alpha-3 :
| 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 |
| 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 |
La valeur par défaut est "FXX".