From 46850d469f30f273cae62f1e3449ec0fa37d875f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kom=D1=8Fpa?= Date: Fri, 27 May 2011 02:30:08 +0300 Subject: [PATCH] optimize json for size a bit --- src/json_getter.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/json_getter.py b/src/json_getter.py index aaecaa5..e0cbd54 100644 --- a/src/json_getter.py +++ b/src/json_getter.py @@ -23,7 +23,7 @@ def get_vectors(bbox, zoom, style, vec = "polygon"): database = "dbname=gis" pxtolerance = 1.5 intscalefactor = 10000 - ignore_columns = set(["way_area", "osm_id", geomcolumn, "tags"]) + ignore_columns = set(["way_area", "osm_id", geomcolumn, "tags", "z_order"]) table = {"polygon":"planet_osm_polygon", "line":"planet_osm_line","point":"planet_osm_point"} a = psycopg2.connect(database) b = a.cursor() @@ -151,7 +151,17 @@ def get_vectors(bbox, zoom, style, vec = "polygon"): if "reprpoint" in geom: geojson["reprpoint"] = json.loads(geom["reprpoint"])["coordinates"] del geom["reprpoint"] - geojson["properties"] = geom + prop = {} + for k,v in geom.iteritems(): + prop[k] = v + try: + if int(v) == float(v): + prop[k] = int(v) + else: + prop[k] = float(v) + except: + pass + geojson["properties"] = prop polygons.append(geojson) return {"bbox": bbox, "granularity":intscalefactor, "features":polygons}