svg_push_element(svg, "g");
svg_set_attr(svg, "id", "scale");
- svg_set_attr_format(svg, "transform", "translate(%.6g,%.6g)", x * svg->scale, y * svg->scale);
+ svg_set_attr_format(svg, "transform", "translate(%s,%s)", svg_format_dimen(svg, x), svg_format_dimen(svg, y));
for (int outline=1; outline>=0; outline--)
{
osm_init();
styles_init();
-
- msg(L_INFO, "Parsing OSM");
- osm_xml_parse(map_xml_input);
- if (debug_dump_source)
- {
- puts("=== Source data ===");
- osm_dump();
- }
- osm_make_multipolygons();
-
- msg(L_INFO, "Projecting");
- osm_project(map_projection);
- if (debug_dump_after_proj)
- {
- puts("=== Map after projection ===");
- osm_dump();
- }
-
+ map_load_styles();
+ map_load_sources();
map_set_scale();
- if (debug_dump_after_scaling)
- {
- puts("=== Map after scaling ===");
- osm_dump();
- }
-
- struct css_sheet *ss = css_load(map_style_sheet);
- if (debug_dump_css)
- {
- puts("=== Stylesheet ===");
- css_dump(ss);
- }
struct svg *svg = svg_open(map_svg_output);
if (!map_rotate)
svg_set_attr_dimen(svg, "height", page_width);
}
- struct style_results r;
- style_init(&r);
sym_init();
- msg(L_INFO, "Applying stylesheet");
- for (uns i = OSM_TYPE_NODE; i <= OSM_TYPE_MULTIPOLYGON; i++)
- CLIST_FOR_EACH(struct osm_object *, o, osm_obj_list[i])
- {
- if (debug_dump_styling)
- {
- puts("===============================");
- osm_obj_dump(o);
- }
- if (!map_object_visible_p(o))
- {
- if (debug_dump_styling)
- printf("--> invisible\n");
- continue;
- }
- style_begin(&r, o);
- css_apply(ss, &r);
- if (debug_dump_styling)
- style_dump(&r);
- sym_from_style(o, &r, svg);
- style_end(&r);
- }
+ map_apply_styles(svg);
if (map_clip)
{
}
// FIXME: Replace by generic logo drawing facility
+#if 0
struct svg_icon *logo = svg_icon_load(svg, "../logo/kocka-s-okrajem.svg");
+#endif
sym_draw_all(svg);
// Draw logo
+#if 0
double logo_width = 36.12;
double logo_height = 36.12 / logo->width * logo->height;
struct svg_icon_request sir = {
.height = logo_height,
};
svg_icon_put(svg, &sir);
+#endif
draw_scale(svg);