Geospatial – Actualités

Dessiner de grandes quantités de points avec OpenLayers 3 et WebGL

9 décembre 2014

OpenLayers 3 permet d’utiliser trois technologies d’affichage : Canvas, DOM et WebGL. La technologie utilisée par défaut est actuellement Canvas. Il s’agit à ce stade, dans OpenLayers 3, du mode d’affichage le plus complet et le plus fiable.

WebGL, fondé sur OpenGL, est la technologie utilisée pour la 3D et les jeux vidéos. WebGL est très prometteur pour la cartographie sur le Web grâce aux performances et possibilités de 3D qu’il offre.

Avec OpenLayers 3, nous avons, depuis le tout début du projet, l’objectif d’exploiter WebGL. Jusqu’à présent, le mode d’affichage WebGL de la librairie ne permettait d’afficher que des couches de type « tuile » et « image », alors que le mode d’affichage Canvas permettait déjà alors d’afficher des couches de type « vecteur » (point, ligne, polygone, texte).

Nos tout récents développements permettent maintenant de dessiner des points avec WebGL. Voici deux exemples que nous avons réalisés :

Ces exemples n’utilisent pas de réelles données mais démontrent les possibilités de « stylage » et les performances offertes par la librairie. Dans ces deux exemples, 50’000 points sont dessinés (il faut dé-zoomer pour les voir tous). On constate que les performances sont excellentes : les interactions avec la carte restent parfaitement fluides, même quand les 50’000 points sont affichés.

Ce travail est fondé sur le prototype que nous avons réalisé il y a quelques temps. Ce prototype ne permettait pas alors de « styler » les points avec la même souplesse et richesse que le mode d’affichage Canvas : seuls des carrés de couleur unie pouvaient être affichés. Comme le montrent les exemples, nos derniers développements offrent une grande souplesse de « stylage », au même niveau que le mode d’affichage Canvas.

Nous espérons que ces développements sont source d’inspiration, et sommes impatients de réaliser des applications fondées sur ces nouvelles avancées. Nos prochaines étapes sont la détection des objets et l’affichage d’autres types de vecteurs : lignes, polygones et labels. Pour plus de détails techniques, vous pouvez consulter le billet écrit sur le blog d’OpenLayers.

Nous souhaitons remercier les sociétés Météorage et Camptocamp qui ont investi pour permettre la réalisation de ces développements.