def _areas_polygon(request, format, areas, srid=None): args = query_args_polygon(request, format, srid) serialiser = GeometrySerialiser(list(areas), args['srid'], args['simplify_tolerance']) try: if format == 'kml': output, content_type = serialiser.kml('full') elif format == 'geojson': output, content_type = serialiser.geojson() except TransformError as e: return output_json({'error': e.args[0]}, code=400) return output_polygon(content_type, output)
def areas_polygon(request, area_ids, srid='', format='kml'): area_ids = area_ids.split(',') args = query_args_polygon(request, format, srid, area_ids) areas = list(Area.objects.filter(id__in=area_ids)) if not areas: return output_json({'error': _('No areas found')}, code=404) serialiser = GeometrySerialiser(areas, args['srid'], args['simplify_tolerance']) try: if format == 'kml': output, content_type = serialiser.kml('full') elif format == 'geojson': output, content_type = serialiser.geojson() except TransformError as e: return output_json({'error': e.args[0]}, code=400) return output_polygon(content_type, output)
def area_polygon(request, srid='', area_id='', format='kml'): if not srid and hasattr(countries, 'area_code_lookup'): resp = countries.area_code_lookup(request, area_id, format) if resp: return resp args = query_args_polygon(request, format, srid, [area_id]) area = get_object_or_404(Area, id=area_id) try: output, content_type = area.export(args['srid'], format, simplify_tolerance=args['simplify_tolerance']) if output is None: return output_json({'error': _('No polygons found')}, code=404) except TransformError as e: return output_json({'error': e.args[0]}, code=400) return output_polygon(content_type, output)