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'):