35 lines
1.5 KiB
Python
35 lines
1.5 KiB
Python
from __future__ import annotations
|
|
|
|
from app.providers.base import BaseReferenceProvider
|
|
|
|
|
|
class GRBProvider(BaseReferenceProvider):
|
|
def __init__(self) -> None:
|
|
super().__init__(
|
|
provider_name="grb",
|
|
display_name="GRB",
|
|
authority_level="authoritative",
|
|
supported_layers=["buildings", "roads", "water", "parcels"],
|
|
supported_geometry_types=["Polygon", "MultiPolygon", "LineString", "MultiLineString"],
|
|
supported_query_modes=["bbox", "persisted_area"],
|
|
fetch_signature="POST /api/v1/projects/{project_id}/datasets/grb/acquire",
|
|
limitation_message=(
|
|
"Alleen expliciet begrensde selecties tot 20 km per zijde worden opgehaald. "
|
|
"Volledige providerdownloads en onbeperkte queries zijn niet toegestaan."
|
|
),
|
|
attribution="Bron: Grootschalig Referentie Bestand Vlaanderen, Digitaal Vlaanderen",
|
|
license_note="Hergebruik volgens de open-datavoorwaarden en bronvermelding van Digitaal Vlaanderen.",
|
|
configured=True,
|
|
)
|
|
|
|
def fetch(self, project_id: str, area_id: str | None, layers: list[str]) -> dict:
|
|
del project_id, area_id, layers
|
|
return {
|
|
"provider": self.provider_name,
|
|
"status": "bounded_request_required",
|
|
"message": (
|
|
"Use POST /api/v1/projects/{project_id}/datasets/grb/acquire with an EPSG:4326 "
|
|
"bounding box and one governed product key."
|
|
),
|
|
}
|