Aller au contenu

Compiler sa propre librairie OpenLayers#

📆 Date de publication initiale : 02 novembre 2008

Introduction#

Documentation source : trac.openlayers.org/wiki/Profiles

Généralement lorsque OpenLayers est utilisé en mode développement il est plus simple de pointer vers le script situé dans /lib/OpenLayers.js. Cela aura pour effet de créer, lors de l'appel client, une balise script pour chacune des classes déclarée dans ce fichier. Mais les désavantages sont évidents. En effet, le fichier étant non compressé et non optimisé cela entraine surcharge inutile de la bande passante et donc un baisse de l'interactivité pour l'utilisateur final.

C'est pourquoi afin d'optimiser l'environnement proposé, la distribution OpenLayers inclut un outil (écrit en python) permettant la création d'un fichier unique compressé contenant la totalité des classes et dont tous les commentaires ont été supprimés (jsmin library).

Cet outil utilise un fichier de configuration (profils) permettant de choisir les classes à ajouter ou supprimer du fichier final. une application directe est par exemple la suppression des classes non utilisées afin d'alléger l'application.

Créer son profil#

OpenLayers Build Profiles est l'outil (python) permettant de "compiler" sa propre librairie OpenLayers (situé dans build/build.py).

Afin de créer son profil il suffit simplement simplement, à l'intérieur du dossier build, de copier le fichier library.cfg ou lite.cfg en maVersion.cfg. Vous n'avez plus ensuite qu'à lancer la commande suivante : python build.py maVersion

Ce fichier obéit à une syntaxe rigoureuse utilisant des paramètres entre crochets comme configuration : [first], [last], [include], [exclude]

La première parti du fichier du fichier de configuration est consacrée au code devant être inclut prioritairement. Par exemple par défaut la configuration d'OpenLayers est :

  • OpenLayers/SingleFile.js
  • OpenLayers.js
  • OpenLayers/BaseTypes.js
  • OpenLayers/Util.js

Si vous souhaitez inclure des fichiers en particuliers (autres que ceux spécifiés dans le fichier /lib/js/OpenLayers.js) il suffit d'ajouter ces derniers après la balise [include].

Si au contraire vous souhaitez enlevez des fichiers il faudra alors spécifier ces derniers après la balise [exclude].

Compiler son fichier#

Pour créer un fichier unique et optimisé, il suffit de se rendre dans le répertoire build d'OpenLayers et de taper la commande suivante : python build.py profilename (où profilname correspond au nom de votre fichier de configuration).

Crééons maintenant notre propre fichier. Imaginons que nous souhaitons incorporer l'addins ScaleBar directement à notre fichier unique. Cela nous évitera par la suite de le déclarer dans chacun de nos scripts. Pour cela, deux moyens sont possibles. Soit après, avoir téléchargé ce dernier dans le répertoire Control (lib/control), vous pouvez éditer le fichier lib/OpenLayers.js et rajouter le chemin d'accès vers cette nouvelle classe dans le tableau listant l'ensemble des classes.

1
2
3
4
5
6
7
var jsfiles = new Array(  
  "OpenLayers/Util.js",  
  "OpenLayers/BaseTypes.js",  
  ...,  

  "OpenLayers/Control/ScaleBar.js"  
);

Sinon vous pouvez simplement, spécifier dans votre fichier "profil" le chemin vers cette nouvelle classe.

1
2
[include]  
OpenLayers/Control/ScaleBar.js

Il vous suffit ensuite de lancer la commande :

1
python build.py OpenLayersScaleBar.js

Cela aura pour effet de créer un nouveau fichier OpenLayers compressé contenant la classe ScaleBar.


Auteur#

Arnaud Vandecasteele#

portrait

Bien qu'issu à l'origine d'un parcours universitaire (doctorat et post-doc), j'ai finalement tenté l'aventure entrepreunariale au travers de Geolab.
Mes principaux centres d'intêrets dans le domaine de la géomatique portent sur les logiciels Open Source et plus particulièrement QGIS.
J'aime également le développement informatique avec une forte préférence à tout ce qui se passe côté serveur (base de données, traitements, etc.). Côté techno, mes choix se portent habituellement sur du (Geo)Django et PostgreSQL/PostGIS.

Pendant mon temps libre, vous me trouverez un GPS à la main afin de contribuer à OpenStreetMap ou sur un tatami en train de pratiquer le Jiu-Jitsu Brésilien.

Si vous êtes intéressé par l'un ou tous ces sujets, n'hésitez pas à me contacter !


Dernière mise à jour: 15 juin 2022
Créé: 10 juin 2022

Contributions à cette page : Julien Moura (65.88%), Florian Boret (34.12%)

Ce contenu est sous licence Creative Commons BY-NC-SA 4.0 International Pictogramme Creative Commons Pictogramme Creative Commons BY Pictogramme Creative Commons NC Pictogramme Creative Commons SA


Commentaires

Une version minimale de la syntaxe markdown est acceptée pour la mise en forme des commentaires.
Propulsé par Isso.