Estoy usando Mapnik para renderizar una lista de puntos; para cada uno de estos puntos quiero renderizar una forma redonda simple, y un icono dentro de la forma, usando dos SVGs diferentes. Para ello, escribí una hoja de estilo CartoCSS como esta (simplificada):
[marker="true"] {
marker-file: url('marker.svg');
marker-allow-overlap: true;
marker-fill: purple;
marker-line-color: white;
marker-line-width: 2;
marker-height: 40;
marker-transform: translate(0, @marker-height/-2);
}
[marker="true"]::inner-icon {
marker-file: url('tree.svg');
marker-allow-overlap: true;
marker-height: @marker-icon-height;
marker-fill: white;
marker-transform: translate(0, @marker-icon-offset);
}
Por lo que entendí cómo funciona el renderizado de Mapnik, esperaba que cada punto renderizara las dos formas juntas a la vez (marker.svg y luego tree.svg, en el orden de la hoja de estilos) antes de renderizar el siguiente punto, lo que aseguraría que si dos puntos se superponen un poco, entonces la forma del plano redondo se dibujaría SOBRE las dos formas del punto anterior.
Sin embargo, el resultado final parece dibujar todas las formas marker.svg, y luego todas las formas tree.svg:
Estoy utilizando Mapnik 3.0.0-pre.