X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=sym-point.c;h=01b9180c7cee938fbce68641f5bc19822d00d70d;hb=refs%2Fheads%2Flabelling;hp=c7c2be0a01f8c470757ae9416c4dd387f2135e21;hpb=44b0ec8816c3cf1a5858fec0c51e075cedefc3eb;p=leo.git diff --git a/sym-point.c b/sym-point.c index c7c2be0..01b9180 100644 --- a/sym-point.c +++ b/sym-point.c @@ -13,6 +13,8 @@ #include "sym.h" #include "svg.h" +#include "labeller.h" + static void sym_point_draw(struct symbol *sym, struct svg *svg) { struct sym_point *p = (struct sym_point *) sym; @@ -29,8 +31,8 @@ static void sym_point_draw(struct symbol *sym, struct svg *svg) { case VALUE_CIRCLE: svg_push_element(svg, "circle"); - svg_set_attr_dimen(svg, "cx", n->x); - svg_set_attr_dimen(svg, "cy", n->y); + svg_set_attr_dimen(svg, "cx", p->x); + svg_set_attr_dimen(svg, "cy", p->y); svg_set_attr_dimen(svg, "r", p->size / 2); break; // FIXME: Other shapes @@ -91,7 +93,7 @@ static void sym_point_gen(struct osm_object *o, struct style_info *si, struct sv style_get_number(si, PROP_SYMBOL_FILL_OPACITY, &sp->fill_opacity); } - sym_plan(&sp->s, sym_zindex(o, si, 4)); + labeller_add_point(&sp->s, o, sym_zindex(o, si, 4)); } struct symbolizer symbolizer_point = { @@ -138,7 +140,16 @@ static void sym_icon_gen(struct osm_object *o, struct style_info *si, struct svg // sir->opacity = 1; // style_get_number(si, PROP_ICON_OPACITY, &sir->opacity); - sym_plan(&sic->s, sym_zindex(o, si, 4)); + switch (o->type) + { + case OSM_TYPE_NODE: + labeller_add_point(&sic->s, o, sym_zindex(o, si, 4)); + break; + case OSM_TYPE_WAY: + case OSM_TYPE_MULTIPOLYGON: + labeller_add_label(&sic->s, o, sym_zindex(o, si, 4)); + break; + } } struct symbolizer symbolizer_icon = {