Opsæt en kodeliste til Infoopsætning
Formål
Sektion kaldt “Formål”Et felt med visningstypen “Kodeliste” viser en læsbar tekst i stedet for en rå kode, fx
110 – Stuehus til landbrug i stedet for 110. Teksten slås op i en kodeliste: et separat WFS-lag
med en kolonne med koder og en kolonne med tekster. Denne vejledning beskriver, hvordan en sådan
kodeliste udstilles og tilføjes i konfigurationen.
Forudsætninger
Sektion kaldt “Forudsætninger”enableCodelists: trueer sat i TableTemplaterscfg(se plugin-dokumentationen).- Adgang til at oprette en tabel i PostGIS, og til at publicere lag i GeoServer.
- Adgang til at redigere
localConfig.json/pluginsConfig.json.
Trin-for-trin
Sektion kaldt “Trin-for-trin”Eksempel: kommunenavne
Sektion kaldt “Eksempel: kommunenavne”Laget har et felt komnr med kommunekoder (101). Det skal vises som 101 – København.
-
Opret kodelisten som en tabel i PostGIS. Koden må ikke være tabellens primærnøgle: GeoServer udstiller ikke primærnøglen som attribut, og så findes koderne ikke.
CREATE TABLE kodeliste_kommune (id serial PRIMARY KEY, kode integer, tekst text);INSERT INTO kodeliste_kommune (kode, tekst) VALUES(101, 'København'), (230, 'Rudersdal'), (461, 'Odense'); -
Udstil tabellen i GeoServer som et lag, fx
<workspace>:kodeliste_kommune. Tabellen har ingen geometri, så koordinatsystem og udstrækning skal udfyldes manuelt (fxEPSG:25832og en udstrækning, der dækker Danmark). -
Tjek, at koden er med som attribut: en GetFeature (
.../geoserver/<workspace>/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=<workspace>:kodeliste_kommune&outputFormat=application/json) skal vise"properties": {"kode": 101, "tekst": "København", ...}. -
Tilføj kodelisten i
codeLists. Med"id": "komnr"- samme navn som feltet - vælges den automatisk:{"id": "komnr","title": "Kommunenavn","url": "https://<server>/geoserver/<workspace>/wfs","typeName": "<workspace>:kodeliste_kommune","codeAttribute": "kode","labelAttribute": "tekst"} -
Genindlæs kortet. Åbn infoopsætningen for laget, sæt
komnrtil visningstypen “Kodeliste”, og gem.
Konfiguration
Sektion kaldt “Konfiguration”Hele codeLists-indgangen, i sin fulde form:
{ "name": "TableTemplater", "cfg": { "enableCodelists": true, "codeLists": [ { "id": "byganvendelse", "title": "BBR byganvendelse", "url": "https://<server>/geoserver/<workspace>/wfs", "typeName": "<workspace>:byganvendelse", "codeAttribute": "kode", "labelAttribute": "tekst" } ] }}Se parameterbeskrivelsen i plugin-dokumentationen for hvert felts betydning og standardværdi.
Kontrol og rollback
Sektion kaldt “Kontrol og rollback”- Tjek i infoopsætningen, at feltet viser
kode – tekstefter gem, ikke blot koden. - Kan laget ikke findes, eller mangler koden som attribut (fx fordi den er sat som primærnøgle i PostGIS), vises koden uden tekst - se Fejlfinding.
- Ved rollback: fjern indgangen fra
codeLists, eller sætenableCodelists: false. Felter, der allerede er sat til “Kodeliste”, viser herefter blot den rå kode igen.
Fejlfinding
Sektion kaldt “Fejlfinding”Problem: Koden vises aldrig med tekst, uanset opsætning.
Mulig årsag: Koden er sat som kodelistetabellens primærnøgle - GeoServer udstiller ikke primærnøglen som en almindelig attribut.
Løsning: Brug en separat serial-kolonne som primærnøgle (se eksemplet ovenfor), og lad koden
være en almindelig kolonne.
Problem: Kodelisten virker lokalt, men ikke når den ligger på en anden server.
Mulig årsag: Manglende CORS-tilladelse på den anden server.
Løsning: Tillad CORS på den server, eller lad forespørgslen gå gennem proxyen.
Tip: Kodelisten bør være en tabel uden geometri - et helt lag med geometri gør opslaget langsommere end nødvendigt. Højst 5.000 rækker fra kodelisten bruges.
Tip: Kodelisten kopieres til feltet, når den vælges, i stedet for at blive slået op igen ved
hver visning. Ændres codeLists i konfigurationen senere (fx en ny url), skal kodelisten vælges
igen i infoopsætningen for hvert felt, der bruger den - ellers beholder feltet den gamle kopi.