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
示例#2
0
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']]
示例#3
0
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']