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 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 devrait 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 devenue une sous-classe de OpenLayers.Map à partir de la version 1.0beta4. 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, celle d'OpenLayers est accessible ici.
L'API Géoportail est découpée en trois niveaux :