def in_bbox_filter(self, qs, name, value): bbox_values, err = bbox.valid_bbox(value) lat1, lon1, lat2, lon2 = bbox_values poly_bbox = Polygon.from_bbox((lon1, lat1, lon2, lat2)) if err: raise ValidationError(f"bbox invalid {err}:{bbox_values}") return qs.filter(geometrie__bboverlaps=(poly_bbox))
def box_filter(self, queryset, _filter_name, value): bbox_values, err = bbox.valid_bbox(value) if err: return queryset lat1, lon1, lat2, lon2 = bbox_values poly_bbox = Polygon.from_bbox((lon1, lat1, lon2, lat2)) return queryset.filter( Q(**{"geometrie__bboverlaps": poly_bbox}))