def distinct_values(): name = request.GET.get('name') layer_name = request.GET.get('layer') limit = request.GET.get('limit') m = Metadata(name) values = m.distinct_values(layer_name, limit) return vo.collection(values, len(values))
def query(): o = json.load(request.body) layer_name = o['layer'] fields = o['fields'] criteria = o['criteria'] paging = o['paging'] start = o['start'] limit = o['limit'] wkt = o['wkt'] l = Layer(layer_name) results = l.query(fields, criteria, paging, start, limit,True, wkt) return vo.collection(results, l.query_count(criteria))
def withinpoint(): o = json.load(request.body) vo_layers = o['layers'] fields = o['fields'] x = o['point']['x'] y = o['point']['y'] dist = o['dist'] layers = map(lambda l: Layer(l['name'],l['srid']), vo_layers) group = Group(layers) point = Point(x,y) geoms = group.within_point(fields,point, dist) out = map(lambda g: vo.geometry(g), geoms) return vo.collection(out, len(out))
def withinbbox(): o = json.load(request.body) vo_layers = o['layers'] vo_bbox = o['bbox'] point_min = Point(vo_bbox['xmin'],vo_bbox['ymin']) point_max = Point(vo_bbox['xmax'],vo_bbox['ymax']) bbox = Bbox(point_min, point_max) layers = map(lambda l: Layer(l['name'],l['srid']), vo_layers) group = Group(layers) layers_out = group.within_bbox(bbox) out = map(lambda l: vo.layer(l), layers_out) return vo.collection(out, len(out))
def metadata(): layer_name = request.GET.get('layerName') l = Layer(layer_name) metadatas = map(lambda m: vo.metadata(m), l.metadata()) return vo.collection(metadatas, len(metadatas))