Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Samenvatting

In Onemap kan , vanuit de featureinfo, additionele informatie worden opgehaald en getoond vanuit relevante REST API endpoints.

Het uitgangspunt hierbij is dat een laag in Onemap attributen bevat die gevoed kunnen worden aan het gekoppelde endpoint. bv:

Een laag met percelen (vanuit PDOK) bevat de attributen (perceel identificatie) om bij de haalcentraal-BRK endpoints extra informatie op te halen die niet als attribuut in de laag aanwezig is (bv: zakelijke rechten of eigenaren van een perceel)

De Rest interface bevat doorgaans meerdere endpoints die aan elkaar zijn gerelateerd. Op die manier kan worden doorgevraagd over meerdere Rest-endpoints. Om dit in Onemap te kunnen koppelen is het zaak om 1 start endpoint te configureren , en zelf de relevante gegevens hiervoor te verzamelen en terug te geven.

FME (desktop/server) is een generieke tool waarmee dit zou kunnen worden ingericht.

In deze workshop gaan we dit uitvoeren voor de Basis Registratie Ondergrond (BRO).

De beschikbare BRO Rest-endpoints zijn beschreven in BRO publieke Rest services

In PDOK zijn een aantal BRO lagen beschikbaar (sonderingen, booronderzoeken, grondwater meetpunten..).

Deze lagen bevatten de BRO identificatie attributen waarmee De BRO publieke Rest services kunnen worden bevraagd. Deze services bevatten o.a. endpoints om bijbehorende metingen en gegevens grafisch te presenteren (bv de bodem profielen).

In deze workshop gaan we deze grafische presentaties ophalen en toevoegen aan de Onemap feature informatie.

De algemene werkwijze hiervoor is als volgt:

  • Maak een FME script ( met FME desktop) dat gevoed wordt met attributen ( en waardes) die nodig zijn om de REST services te bevragen.

  • Verzamel de gewenste gegevens door ( vanuit het script) een aantal Rest endpoints sequentieel te bevragen. Lever de verzamelde gegevens aan in json formaat.

  • Upload het script naar FME Server, en maak hiervoor een ‘WebHook' aan. De 'WebHook’ kan vervolgens als API-endpoint worden gekoppeld in Onemap.

  • Richt het API basis endpoint in bij de Onemap workspace systeem instellingen.

  • Koppel dit basis endpoint aan de featureinfo van de bijbehorende laag.

Maak het FME Desktop script

Het benodigde FME script bevat doorgaans de volgende onderdelen:

  1. De parameters die voor de Rest-services nodig zijn, en die als attribuut in de Onemap laag beschikbaar zijn.

  2. Een 'creator' transformer om het proces te starten

  3. Een ( of meerdere ) 'http_caller' transformers om de relevante Rest-endpoints te bevragen

  4. Een JSON writer

image-20240507-095402.png

De precieze invulling van het script is verder afhankelijk van hoe de Rest services zijn ingericht en communiceren.

Richt een FME server WebHook in

Upload FME script naar FME server

image-20240507-091433.png

Registreer dit als een 'Data Streaming' service

image-20240507-100148.png

image-20240507-100225.png

Publiceer het script als een FME WebHook

image-20240507-100321.png

image-20240507-100356.png

Een FME Server Webhook vormt een API-endpoint dat met een api-key is geauthoriseerd.

Download de webhook configuratie instellingen en bewaar deze.

image-20240507-100438.png

Configureer de API koppeling in Onemap

Allereerst wordt het basis endpoint toegevoegd bij de API-configuraties in de workspace systeem instellingen.

Het basis endpoint bevat de basis-URL ( alles tot het ? ) en een HTML header met de benodigde authorizatie.

image-20240507-102159.png

image-20240507-102347.png

Het tweede deel voor de API/WebHook aanroep wordt uitgevoerd in de laag/featureinfo configuratie. Hier hebben we (doorgaans) de benodigde parameters tot onze beschikking.

WMS services leveren niet altijd de bijbehorende veld definities (de functie 'DescribeFeature' is voor WMS niet verplicht).

De workarounds zijn dan:

1-Gebruik de bijbehorende WFS (waar ‘describefeature’ wel verplicht is)

Indien de WFS niet als service beschikbaar is:

2-Herleid de laag velden door in de WMS de featureinfo middels TWIG toch te implementeren en vervolgens op de kaart een keer uit te voeren. (e.a. is beschreven in Twig templates)

Helaas doet deze situatie zich voor bij de BRO-PDOK lagen. Door eenmalig een featureinfo in Onemap uit te voeren krijgen we zo toch de beschikking over de aanwezige attributen.

image-20240507-105047.png

We kunnen nu de API/WebHook aanroep inrichten door de BRO_ID parameter in de aanroep toe te voegen.

image-20240507-103604.png

De Rest-API’s leveren gegevens terug in json formaat. In Onemap moet deze json vervolgens geparsed worden naar een html formaat m.b.v. TWIG.

In dit geval wordt de grafiek in svg ( xml formaat) terug geleverd als waarde van het json item 'json_result'. Deze waarde kan direct worden opgenomen in de featureinfocode als waarde.

Omdat FME de json altijd als json-array teruggeeft moet eerst nog het eerste element naar een 'normale' json worden gezet.

De api koppeling die naast de featureinfo is ingericht komt , binnen de featureinfo, als tabblad/button beschikbaar. Door hier op te klikken wordt een request naar de fme server webhook verstuurd ( met het bijbehorende bro_id) en wordt ( in dit geval) het bodemprofiel grafisch teruggeleverd.

image-20240507-113025.png

  • No labels