X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=leo.c;h=282f61e970a2e10100db940a7e9bfd99fbba6fd1;hb=refs%2Fheads%2Fposkole2015;hp=dea6cde89a684e6c87e83871add89e09ec6d261a;hpb=bc432588d79bf0c0ba61430e0b6fc4c8e754eef6;p=leo.git diff --git a/leo.c b/leo.c index dea6cde..282f61e 100644 --- a/leo.c +++ b/leo.c @@ -51,11 +51,11 @@ static void draw_scale(struct svg *svg) double dist = 1000; double width = dist * map_scale; double x = page_width - 10 - width; - double y = 50; + double y = page_height - 15; 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--) { @@ -63,7 +63,7 @@ static void draw_scale(struct svg *svg) svg_set_attr(svg, "stroke-linecap", "square"); if (outline) { - svg_set_attr_dimen(svg, "stroke-width", 1.5); + svg_set_attr_dimen(svg, "stroke-width", 1.1); svg_set_attr_color(svg, "stroke", 0xffffff); } else @@ -118,37 +118,9 @@ int main(int argc UNUSED, char **argv) 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) @@ -162,32 +134,9 @@ int main(int argc UNUSED, char **argv) 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) {