def get_layer_fields_minmax(layer): row = cartosql.exec_sql(layer, q=get_layer_fields_minmax_sql(layer))['rows'][0] res = {} for name, value in row.iteritems(): name, measure = name.rsplit("_", 1) if name not in res: res[name] = {} res[name][measure] = value return res
def load_layer_geometry_types(layer): layer["options"]["geometry_types"] = [ row["type"] for row in cartosql.exec_sql( layer, q=""" select GeometryType(the_geom) as type from (%(src)s) __wrapped__layer_geometry_type group by the_geom """ % {"src": layer["options"]["sql"]})['rows']]
def load_layer_fields(layer): layer['fields'] = cartosql.exec_sql( layer, page=0, sort_order="asc", order_by="", filter_column="", filter_value="", sql_source="null", limit=0, q=layer["options"]["sql"] )["fields"]
def load_query_info(tileset, seriesgroup): tileset_spec, layers = load_info_table(tileset) layer = layers[0] rows = cartosql.exec_sql(layer, q=""" select * from (%(src)s) __wrapped__seriesgroup_info where seriesgroup = %(seriesgroup)s """ % { "src": layer["options"]["sql"], "seriesgroup": seriesgroup })['rows'] if not rows: return None row = rows[0] for name in ('cartodb_id', 'created_at', 'series', 'seriesgroup', 'the_geom', 'the_geom_webmercator', 'updated_at'): if name in row: del row[name] return row
def get_layer_data_max_geometry_size(layer, **kw): return cartosql.exec_sql(layer, q=get_layer_data_max_geometry_size_sql( layer, **kw))["rows"][0]["size"]
def get_layer_data(layer, **kw): return cartosql.exec_sql(layer, q=get_layer_data_points_lat_lon_sql(layer, **kw))['rows']