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 """