MapServer vs Mapnik

9 mars 2008

La récente adoption du format AGG par MapServer (depuis la version 5) l’a doté d’une qualité de rendu qui lui a longtemps fait défaut.

Image MapServer avec rendu AGG

Côté rendu, MapServer a ainsi rejoint une solution plus récente, encore mal documentée, mais prometteuse : Mapnik. Bibliothèque C++ avec une API en python, celle-ci a fait de la qualité graphique une de ses priorités. Elle intègre donc également la bibliothèque AGG (AntiGrainGraphics) permettant de lisser les PNG.

Autant le dire tout de suite, les images produites sont strictement identiques, au pixel près ! Cependant, côté performances, Mapnik est un peu plus intéressant, comme en témoigne ce petit test réalisé sur une machine tout ce qu’il y a de standard pour générer l’image des communes de la pointe du Finistère ci-dessus :

  • MapServer :
    real 0m0.382s
    user 0m0.310s
    sys 0m0.070s
  • Mapnik :
    real 0m0.244s
    user 0m0.200s
    sys 0m0.050s

Mapnik s’acquitte donc de la tâche en 1/3 de temps en moins, pour un résultat, rappelons-le, strictement identique. On retrouve un écart d’autant plus significatif que le jeu de données est important. Sur la France entière, communes BDCarto(c) :

  • Mapserver :
    real 0m25.415s
    user 0m25.330s
    sys 0m0.080s
  • Mapnik :
    real 0m13.673s
    user 0m13.630s
    sys 0m0.040s

C’est preque un facteur 2 qui sépare les deux applications. Alors, MapServer K.O. debout ? Pas si sûr, car le rendu AGG étant souvent utilisé dans un contexte de tuilage et de cache disque (voir par exemple OpenStreetMap) le temps de génération a certes une importance mais pas de manière aussi critique que sur du rendu “live”. L’AGG est un peu trop lent pour être utilisé dans un tel contexte, et il faut souvent se contenter dans ce cas d’une simple rendu PNG standard. Mais les performances sont alors exceptionnelles :

  • MapServer, format PNG 256, communes BDCarto(c) France entière :
    real 0m0.638s
    user 0m0.560s
    sys 0m0.070s

6 dixièmes de seconde pour dessiner les 36500+ communes de France en 600 x 600, c’est remarquable, et peut tenir la dragée haute à bien des SIG desktop (faites vos tests…). Mapnik ne fonctionnant qu’en mode AGG, il ne peut atteindre de tels résultats. De sorte que son rayon d’action se trouve fortement réduit, à la différence d’un MapServer avec lequel on peut jouer avec les différents formats de sortie pour optimiser le rendu ou la rapidité selon les besoins, l’échelle, la couche, le contexte (visualisation / impression) etc.

Le monde selon OSM

25 janvier 2008

Une élégante animation multi-temporelle permet de constater les progrès accomplis par la couverture d’OpenStreetMap depuis 2005. Si certaines régions, notamment extrême-orientales, ont encore l’apparence nébuleuse et mystérieuse des Terra Incognita des anciens portulans, on notera la densité d’informations disponibles aux Etats-Unis et en Europe. La France cependant reste relativement peu couverte. Si quelque éditeur de données cartographiques françaises avait la bonne idée de faire un don à OSM, la situation pourrait évoluer rapidement. Le WMS c’est bien, mais OSM, c’est encore mieux !