diff --git a/src/komap.conf b/src/komap.conf index a395ffc..6a2bace 100644 --- a/src/komap.conf +++ b/src/komap.conf @@ -12,4 +12,5 @@ srtm_dem_path = /raid/srtm/srtmm.vrt cleantopo_hs_path = /raid/srtm/Full/CleanTOPO2merchs.tif srtm_hs_path = /raid/srtm/srtmhs.vrt default_font_family = DejaVu Sans Book -max_char_angle_delta = 17 \ No newline at end of file +max_char_angle_delta = 17 +font_tracking = 0 \ No newline at end of file diff --git a/src/komap.py b/src/komap.py index 3871cdf..abc8e50 100755 --- a/src/komap.py +++ b/src/komap.py @@ -126,6 +126,7 @@ if options.renderer == "mapnik": libkomapnik.text_scale = options.textscale libkomapnik.default_font_family = config.get("mapnik", "default_font_family") libkomapnik.max_char_angle_delta = config.get("mapnik", "max_char_angle_delta") + libkomapnik.font_tracking = config.get("mapnik", "font_tracking") from libkomapnik import * @@ -719,6 +720,7 @@ if options.renderer == "mapnik": ttransform = entry["style"].get("text-transform", "none") tspacing = entry["style"].get("text-spacing", "4096") tangle = entry["style"].get("-x-kot-text-angle", libkomapnik.max_char_angle_delta) + tcharspacing = entry["style"].get("-x-kot-font-tracking", libkomapnik.font_tracking) xml += xml_rule_start() xml += x_scale @@ -732,7 +734,7 @@ if options.renderer == "mapnik": ttext, tface, tsize, tcolor, thcolor, thradius, tplace, toffset, toverlap, tdistance, twrap, talign, topacity, ttransform) else: - xml += xml_textsymbolizer(ttext, tface, tsize, tcolor, thcolor, thradius, tplace, toffset, toverlap, tdistance, twrap, talign, topacity, tpos, ttransform, tspacing, tangle) + xml += xml_textsymbolizer(ttext, tface, tsize, tcolor, thcolor, thradius, tcharspacing, tplace, toffset, toverlap, tdistance, twrap, talign, topacity, tpos, ttransform, tspacing, tangle) sql.add(entry["sql"]) itags.update(entry["chooser"].get_interesting_tags(entry["type"], zoom)) xml += xml_rule_end() diff --git a/src/libkomapnik.py b/src/libkomapnik.py index 1b1b36e..50eef84 100644 --- a/src/libkomapnik.py +++ b/src/libkomapnik.py @@ -38,6 +38,7 @@ srtm_hs_path = "" text_scale = 1 default_font_family = "" max_char_angle_delta = "" +font_tracking = 0 substyles = [] @@ -134,7 +135,7 @@ def xml_linepatternsymbolizer(file=""): def xml_textsymbolizer( - text="name", face=default_font_family, size="10", color="#000000", halo_color="#ffffff", halo_radius="0", placement="line", offset="0", overlap="false", distance="26", wrap_width=256, align="center", opacity="1", pos="X", transform="none", spacing="4096", angle=max_char_angle_delta): + text="name", face=default_font_family, size="10", color="#000000", halo_color="#ffffff", halo_radius="0", character_spacing=font_tracking, placement="line", offset="0", overlap="false", distance="26", wrap_width=256, align="center", opacity="1", pos="X", transform="none", spacing="4096", angle=max_char_angle_delta): color = nicecolor(color) halo_color = nicecolor(halo_color) pos = pos.replace("exact", "X").replace("any", "S, E, X, N, W, NE, SE, NW, SW").split(",") @@ -152,8 +153,8 @@ def xml_textsymbolizer( dy = 0 return """ - [%s] - """ % (face, size, color, halo_color, halo_radius, placement, dx, dy, angle, overlap, wrap_width, distance, align, opacity, pos, transform, spacing, text) + [%s] + """ % (face, size, color, halo_color, halo_radius, character_spacing, placement, dx, dy, angle, overlap, wrap_width, distance, align, opacity, pos, transform, spacing, text) def xml_shieldsymbolizer(path="", width="", height="", text="name", face=default_font_family, size="10", color="#000000", halo_color="#ffffff", halo_radius="0", placement="line", offset="0", overlap="false", distance="26", wrap_width=256, align="center", opacity="1", transform="none", unlock_image='true', spacing='500'):