Et en pratique ce support est intégré dans le LineSymbolizer: if (sym.clip()) { double padding = (double)(query_extent_.width()/width_); double half_stroke = stroke_.get_width()/2.0; if (half_stroke > 1) padding *= half_stroke; if (std::fabs(sym.offset()) > 0) padding *= std::fabs(sym.offset()) * 1.2; padding *= scale_factor_; clipping_extent.pad(padding); }
voir https://github.com/mapnik/mapnik/blob/master/src/cairo_renderer.cpp Bref on fait le rendu avec les attributs offset et width donnés dans la feuille de style pour le LineSymbolizer, le reste c'est le rendu PNG de Cairo (ou le rendu en SVG) qui se débrouille pour calculer les buffers corrects (et je pense même que ce sera bien plus performant que tes symboles marqueurs en répétés en "pattern" sur une distance de 1 pixel le long d'une ligne, la technique qui ne sert en pratique qu'à dessiner les triangles le long des traits de falaises à distance régulière). Peut-être qu'il faut bidouiller le code C++ de Mapnik pour activer la bonne combinaison d'options, mais tout y est pour supporter ça, et ensuite pouvoir l'utiliser dans la feuille de style XML.
_______________________________________________ Talk-fr mailing list Talk-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-fr