[OSM-dev-fr] Générer des fichiers SVG par script...

Philippe Verdy verdy_p at wanadoo.fr
Lun 5 Mar 17:23:41 GMT 2012


Le 5 mars 2012 18:05, Christian Quest <cquest at openstreetmap.fr> a écrit :
> Pour info, tu peux alléger le SVG de 3 façons:
> - faire des arrondis sur les coordonnées

Attention aux arrondis, ils doivent être conformes à la simplification
effectuée qui dépend du niveau de zoom calculé

> - utiliser des déplacements relatifs dans les path

Il peut être plus pratique, dans le cadre d'une réutilisation, de
continuer à utiliser des coordonnées absolues, à condition de déplacer
seulement l'origine. Ca simplifie le travail ultérieur de
réutilisation des cartes au cas où on voudrait les fusionner ou les
rescinder. Car on a rarement besoin des 7 chiffres de précision sur
une même carte qui ne s'affichera en fin de compte que dans un
rectangle d'au mieux 2000x1000 pixels sur les meilleurs écrans. La
précision supplémentaire ne servant que si on zoome le SVG pour voir
certains détails qui autrement n'occupent qu'un seul même pixel.

> - regrouper les path similaire (ça évite de répéter path fill stroke
> stroke-width qui représente pas loin de 50% du SVG généré).

Là tu es optimiste. En fait les SVG que je manipule ont près de 90% de
la taille occupée par la définition des paths, même en cas de
réutilisation par référence (j'utilise une extension SVG permettant de
faire une référence à un même chemin dont on a inverse la direction si
besoin, mais tous les moteurs SVG ne le permettent pas, et si on veut
un SVG compatible TinySVG, il n'y a pas d'autre choix que de
réénumérer les chemins partagés pour des polygones séparés mais
jointifs).

Et je ne me contente pas de ce que produisent les outils, en fin de
compte je me retrouve à éditer les SVG dans un éditeur de texte, où
des tas de simplifications sont possibles aussi (en général sur les
styles, surtout si la carte a été manipulée par un éditeur de SVG
générique comme Sodipodi). Cet édition manuelle réduit la taille
souvent de plus de la moitié, parfois beaucoup plus, sans même rien
faire perdre à leur précision, et cela simplifie aussi énormément leur
réutilisation (par exemple pour produire des séries de cartes dérivées
en modifiant seulement quelques règles de style CSS !



Plus d'informations sur la liste de diffusion dev-fr