Bij jou in de buurt – Werken met de Onderwijsloket API (4/4)
In de vorige artikelen hebben we gekeken naar het platform, het datamodel en de zoeklaag van de Onderwijsloket API. In dit laatste artikel brengen we die onderdelen samen in een toepassing die voor veel gebruikers centraal staat: het vinden van relevante informatie op basis van locatie.
Want iedereen loopt tijdens de overstap een keer tegen de vraag aan: "Wat kan ik eigenlijk bij mij in de buurt doen om mijn stap een vervolg te geven?"
Van algemene informatie naar lokale relevantie
De kennisbank helpt gebruikers om het onderwijs te begrijpen. De navigator-data helpt hen om concrete stappen te zetten door informatie te bieden over opleidingsmogelijkheden en ondersteuning in de regio. En wanneer je de navigator data plaatst binnen de content van de locatie van een gebruiker, wordt het écht praktisch.
Denk aan:
opleidingen die je daadwerkelijk kunt volgen in jouw regio
onderwijsinstellingen in de buurt
een regionaal loket waar je advies kunt krijgen op basis van jouw oriëntatiegebied
De locatie van een gebruiker vormt daarmee de brug tussen oriëntatie en concrete actie bij hem of haar in de buurt.
Twee soorten geografische data
Binnen het Onderwijsloket-platform zijn er grofweg twee manieren waarop locatie een rol speelt.
1. Concrete locaties (punten) Bijvoorbeeld:
opleidingslocaties
onderwijsinstellingen
Deze hebben een specifieke plek op de kaart (latitude/longitude) en zijn relatief eenvoudig te gebruiken voor afstandsbepaling.
2. Regio’s (gebieden) Bijvoorbeeld:
regionale onderwijsloketten
Deze opereren niet op één punt, maar binnen een bepaald gebied. Dat maakt de logica iets complexer: je zoekt niet naar de dichtstbijzijnde plek, maar naar het loket dat jouw regio bedient.
Zoeken op basis van locatie
De search engine ondersteunt geospatial search. Dat betekent dat je resultaten kunt ophalen op basis van de afstand tot een gebruiker. In de praktijk komt dit neer op:
filteren op items binnen een straal (bijvoorbeeld 50 km) van de locatie
resultaten sorteren op afstand tot de locatie
Voor opleidingen en locaties werkt dit vrij direct: je zoekt naar items binnen een straal en toont deze gesorteerd op nabijheid. Voor gebruikers voelt dit logisch en intuïtief: wat dichterbij is, verschijnt hoger in de lijst. Desgewenst kun je ook de daadwerkelijke afstand in kilometers laten zien (zoals wij ook doen in onze navigator interface).
Regionale onderwijsloketten
Regionale onderwijsloketten werken anders dan opleidingen of instellingen. Ze zijn gekoppeld aan een regio in plaats van een specifieke locatie. Om dit mogelijk te maken, gebruikt het platform een slimme oplossing.
In plaats van één coördinaat bevat elk loket een set punten die samen het werkgebied beschrijven. Hierdoor kan de search engine bepalen of een gebruiker “binnen” een regio valt, of er dichtbij zit.
Voor ontwikkelaars betekent dit dat je:
loketten kunt ophalen op basis van locatie
resultaten kunt sorteren op nabijheid
gebruikers automatisch kunt doorverwijzen naar het juiste loket
Zonder dat je zelf complexe geografische berekeningen hoeft te doen.
Er zijn onderwijsloketten / onderwijsregio's die landelijk opereren. In onze eigen regioloketten-navigator hebben we ervoor gekozen deze twee resultaten eruit te filteren wanneer er een geospatial search wordt uitgevoerd. Deze landelijke regio's komen (vrijwel) altijd bovenaan in de resultaten te staan, vaak hoger dan regioloketten die écht in de buurt van de regio zitten.
Wat kun je bouwen?
Met deze bouwstenen kun je toepassingen maken die direct waarde hebben voor gebruikers:
een opleidingszoeker op basis van locatie
een kaart met opleidingen en instellingen in de buurt
een tool die automatisch het juiste loket toont ob basis van locatie én andere oriëntatievoorkeuren
Omdat de data centraal wordt beheerd door het Onderwijsloket, blijven deze toepassingen automatisch actueel.
Aan de slag
Wil je zelf een locatiegebaseerde toepassing bouwen? In de developer documentatie vind je:
uitleg over geo search met Algolia
voorbeelden van queries op opleidingen en locaties
implementaties voor regionale onderwijsloketten
complete codevoorbeelden in de example repository