En utilisant Leaflet sur quelques pages de test je trouvais son comportement assez rapide en comparaison à OpenLayers, voulant comprendre ce qui pourrait expliquer ce sentiment j'ai décidé de mesurer le nombre de tuiles téléchargées par chacune des librairie pour une utilisation identique. J'ai pour cela monté ce soir un rapide test que je vous livre ici.

Le protocole de test est le suivant, une page contenant 2 cartes identiques de 512px par 512px, une pour LeafLet et l'autre pour OpenLayers. Les deux cartes sont déplacées simultanément en appelant des commandes identiques.

Les commandes de déplacement sont décrites ci-dessous avec à chaque fois le nombre de tuiles totale téléchargées depuis le début du test comptées depuis le serveur web.

Au chargement de la page

  • Leaflet : 9 tuiles
  • OpenLayers : 42 tuiles
  • ratio : 4.6

Deux zoom out :

  • Leaflet : 27 tuiles
  • OpenLayers : 126 tuiles

Deux zoom in (toujours sans changer de position) :

  • Leaflet : 27 tuiles
  • OpenLayers : 192 tuiles

Déplacement d'un degré au nord puis d'un degré à l'est

  • Leaflet : 33 tuiles
  • OpenLayers : 212 tuiles

Deux zoom in

  • Leaflet : 51 tuiles
  • OpenLayers : 296 tuiles

Pan de 100px à gauche, puis 100px en bas

  • Leaflet : 54 tuiles
  • OpenLayers : 316 tuiles
  • ratio : 5.85

Là le match est sans appel, Leaflet gagne haut la main dans le registre de la sobriété. Mais si OpenLayers déborde sur les cotés alors la différence va s'amenuiser lors d'une ballade sur la carte. Ce que j'ai fais en tournant un peu en rond, quelques zoom out et in pour me recentrer et au final après une visite autour d'un point fixe on obtient :

  • Leaflet : 182 tuiles
  • OpenLayers : 1449 tuiles
  • ratio : 7.96

La ratio final de 7.96 comparé au ratio inital de 4.6 lors du chargement de la page me laisse un peu pantois sur l'efficacité du chargement des tuiles périphériques par OpenLayers.