Hoe kan ik mijn items als GeoJSON aanbieden en op een kaart tonen?

Veel Omeka S-collecties bevatten geografische informatie: coördinaten uit de Mapping-module, geometrieën uit de DataTypeGeometry-module of WKT-waarden in een eigenschap als geo:asWKT. Twee module, ontwikkeld voor de Gouda Tijdmachine, maken het mogelijk om die gegevens als standaard GeoJSON naar buiten te brengen en om GeoJSON-lagen op een kaart in een sitepagina te tonen. De modules werken onafhankelijk van elkaar, maar vullen elkaar aan.

GeoJSON (module for Omeka S)

GeoJSON is een module voor Omeka S die elke item-query uit de REST API kan teruggeven als een FeatureCollection volgens RFC 7946, de standaard voor GeoJSON. Er is geen nieuwe route nodig: aan een gewone API-aanroep zoals /api/items?item_set_id=1234 wordt format=geojson toegevoegd, of de client stuurt een Accept: application/geo+json header. Alle gebruikelijke zoekargumenten (item set, resource class, eigenschappen, full-text zoeken) blijven werken, en ook de rechten worden gerespecteerd: items die de aanvrager niet mag zien, komen niet in de uitvoer. Items zonder geometrie worden overgeslagen.

De geometrie kan uit verschillende bronnen komen, in een instelbare volgorde: geometry- of geography-waarden van de DataTypeGeometry-module, letterlijke WKT-waarden in een eigenschap, of features van de Mapping-module (versie 2.0 of hoger). Geen van die modules is verplicht; ontbrekende bronnen worden overgeslagen. Welke eigenschappen als feature properties in de GeoJSON terechtkomen (bijvoorbeeld titel, datum of thumbnail) wordt in het configuratiebestand ingesteld op basis van RDF-termen, met eenvoudige transformaties zoals het extraheren van een jaartal. De module heeft geen admin-interface; het configuratiebestand is de interface.

De module is gebouwd op schaal: er worden geen Omeka-resources geladen, maar de uitvoer wordt met SQL in batches opgebouwd en gestreamd. Een item set van ruim 26.000 items wordt in ongeveer een seconde gerenderd met een vlak geheugengebruik. Resultaten worden als bestand gecachet en automatisch ongeldig gemaakt zodra een item, item set of medium wijzigt. Let op dat de coördinaten in WGS 84 (lengte-, breedtegraad) moeten zijn opgeslagen; coördinaten in bijvoorbeeld het Rijksdriehoekstelsel worden niet omgezet. De module vereist Omeka S 4 en heeft geen verdere afhankelijkheden. De Gouda Tijdmachine publiceert er zo'n vijftig item sets mee, waaronder molens, bruggen, gevelstenen en historische tramwegen.

GeoJSON Map (module for Omeka S)

GeoJSON Map is een module voor Omeka S die een paginablok toevoegt waarmee een of meer GeoJSON-collecties op een Leaflet-kaart worden getekend, geconfigureerd in plaats van handgeschreven. De module is ontstaan omdat tientallen pagina's van de Gouda Tijdmachine elk hun eigen kaartscript in een HTML-blok hadden staan, wat onderhoud lastig maakte en meerdere kaarten op één pagina onmogelijk. Alles wat in die scripts varieerde is nu een instelling van het blok.

Een laag verwijst naar een willekeurige URL die een GeoJSON FeatureCollection teruggeeft, bijvoorbeeld een bestand op de eigen site of een collectie die elders gepubliceerd is. Als de GeoJSON-module is geïnstalleerd kan een laag ook direct een item set of een Omeka API-query noemen. Per laag zijn onder meer instelbaar: weergave als vorm, marker of alleen tekstlabel, kleur (eventueel afhankelijk van een eigenschapswaarde), eigen markericoontjes, clustering van markers, labels op basis van een eigenschap en een popup-sjabloon met plaatshouders zoals {title} en {pid}. Waarden uit de data worden in popups standaard ge-escaped om scripts uit onbetrouwbare bronnen te weren. Daarnaast zijn hoogte, zoomniveau, centrum, basislaag en overlays (kaartlagen of WMS, zoals historische kaarten) instelbaar, en kunnen desgewenst eigen JavaScript-functies worden gekoppeld voor styling, popups of klikacties.

De JavaScript-bibliotheken (Leaflet, markercluster, fullscreen en labelplaatsing) worden meegeleverd, zodat er geen verzoeken naar externe CDN's worden gedaan en de module ook op een afgesloten netwerk werkt. Thema's kunnen een eigen sjabloon voor het blok registreren. De module vereist Omeka S 4 en heeft geen verplichte afhankelijkheden. Op de Gouda Tijdmachine worden zo'n veertig pagina's met dit blok getekend, van een eenvoudige kaart met bruggen tot een kaart met dertien lagen en een kaart met 3.570 gelabelde verpondingspolygonen.

U kunt commentaar op deze vraag geven

  • ~ 0 min
    ID #1082
  • 2026-08-25 14:42
  • 0 Commentaren

Beoordeel deze vraag:

0 (0 Stemmen)