diff --git a/src/libkomapnik.py b/src/libkomapnik.py
index 5a34fdd..9f34a05 100644
--- a/src/libkomapnik.py
+++ b/src/libkomapnik.py
@@ -17,6 +17,7 @@
import os
+import math
from debug import debug, Timer
from mapcss.webcolors.webcolors import whatever_to_hex as nicecolor
@@ -63,7 +64,7 @@ def pixel_size_at_zoom(z, l=1):
"""
Converts l pixels on tiles into length on zoom z
"""
- return l* 20037508.342789244 / 256 * 2 / (2**z)
+ return int(math.ceil(l* 20037508.342789244 / 256 * 2 / (2**z)))
def xml_fontset(name, unicode=True):
@@ -323,10 +324,11 @@ def xml_layer(type="postgis", geom="point", interesting_tags = "*", sql = "true"
%s
- (select %s, %s
+ ( -- zoom %s
+ select %s, %s
from %s%s
where %s
- ) as text
+ ) as k_layer
%s
postgis
@@ -339,15 +341,16 @@ def xml_layer(type="postgis", geom="point", interesting_tags = "*", sql = "true"
false
-20037508.342789244, -20037508.342780735, 20037508.342789244, 20037508.342780709
- """%(layer_id, db_proj, subs, interesting_tags, waystring, table_prefix, geom, sql, intersection_SQL, db_user, db_name, db_srid, table_prefix, geom)
+ """%(layer_id, db_proj, subs, zoom, interesting_tags, waystring, table_prefix, geom, sql, intersection_SQL, db_user, db_name, db_srid, table_prefix, geom)
elif type == "postgis-process":
return """
%s
- (%s
- ) as text
+ ( -- zoom %s
+ %s
+ ) as k_layer
%s
postgis
@@ -360,7 +363,7 @@ def xml_layer(type="postgis", geom="point", interesting_tags = "*", sql = "true"
false
-20037508.342789244, -20037508.342780735, 20037508.342789244, 20037508.342780709
- """%(layer_id, db_proj, subs, sql, intersection_SQL, db_user, db_name, db_srid, table_prefix, geom)
+ """%(layer_id, db_proj, subs, zoom, sql, intersection_SQL, db_user, db_name, db_srid, table_prefix, geom)
elif type == "coast":
if zoom < 9:
return """