WFS teenus haridusasutuste kohta
Läbi Pikseli GeoServeri saab kätte Arno (Tallinnas Laur) haridusasutuste loendi koos asukoha koordinaatidega (punkt ADS/AKS järgi).
Koolide, lasteaedade ja huvikoolide põhiandmed on avaandmeid (neid näeb Arno’de kasutajaliideselt anonüümsena).
WFS (Web Feature Service) on OGC (Open Geospatial Consortium) poolt standardiseeritud veebiteenus geoobjektide väljastamiseks. GIS-tarkvarad (nagu vabavara QGIS või kommetrsvara ArcGIS) suudavad pöörduda WFS teenuse pakkuja poole ja küsida/värskendada mingi grupi (geokeeles: kihi) objektide andmeid.
GeoServer on geo-andmeteenuseid pakkuv vabavara (https://geoserver.org/) ja Pikseli juures on selle üks paigaldus (hetkel ver 2.x, ver 3.0 avalikustati eelmisel nädalal, 11.06.2026).
Arno on mitme andmebaasiga lahendus (igal KOV-il on oma andmebaas). Tavaolukorras ei ole võimalik küsida korraga kõigi Arnode käest midagi. Isegi kui need on IP-turvata täiesti avalikud andmed. Aga Arno pakub avaandmeid (vahest puudulikult dokumenteeritud) JSON kujul. Pikselil on lahendus, mis käib eelmääratud Arnod läbi küsides avaandmeid ja tehes need GeoServerile kättesaadavaks kui üks tervik(geo)andmestik.
Läbi GeoServeri (GS) serveeritakse Arnodest väikese intervalliga kogutud avaandmeid haridusasutuste kohta (koolid, lasteaiad, huvikoolid). Haridusasutuste andmed muutuvad harva ja veel harvemini muutuvad nende asukohad, seega tuleb eeldada väikest viivitust andmete uuendamisel (aga kiiret sellega pole). Hetkel uuendatakse 2 korda ööpäevas (00:17 ja 12:17), aga see võib muutuda ära kiiremini kui siinse dokumentatsiooni muutumine. Ilmselt võiks tarbija eeldada korra nädalas muutumist ja vastavalt sättida omapoolset uuendamisvajadust.
KOV võib oma GIS-tarkvarast küsida kõigi KOV-ide (piiratud ikkagi Arnot kasutavate KOV-idega) kõiki haridusasutusi (piiratud sellega, mida KOV haldab Arnoga).
Ilmselt on mõistlik, et KOV küsib oma GIS-i ainult enda haridusasutused, et neid näidata oma kodulehel kaardina.
Andmestik
Kiht xa:haridusasutus
xa = eXtended Arno
haridusasutus = lasteaed, lastehoid, põhikool, gümnaasium, huvikool
element | tähendus |
|---|---|
kov_kood | täisarv, tähistab KOV-i |
arno_id | asutuse (maja) ID Arnos, tehniline, unikaalsuse tagamiseks/tuvastamiseks |
reg_nr | tekst 8 numbriga, võib olla kahel majal sama (juriidiline isik) |
ehis_id | täisarv haridusasutuse tuvastamiseks EHIS-es (või korduda, nt gümnaaium ja põhikool on Arnos eraldi kirjed erinevate haldusreeglite tõttu, aga EHIS-es on nad üks asutus) |
nimi |
|
adr_id | 7-8 kohaline täisarv. Arno side AKS-iga. |
taisaadress | AKS info (võib ise olla kaua värskendamata) |
on_kool, on_huvikool, on_lasteaed, on_lastehoid | 4 elementi 0/1 väärtustega (linnukestega), head filteerimiseks (Arno praeguse ülesehitusega ei saa objekt omada kahte linnukest, aga see võib tulevikus muutuda) |
on_munitsipaal | mõned KOV-id registreerivad Arnos ka eraasutusi (eralasteaedasid, erahuvikoole), see linnuke võimaldab eristada. |
liik | tekstiline info, mis võiks vastata eelmisele 5 linnukesele (parem seda mitte üle tähtsustada) |
veebileht, yldtelefon, peamine_epost | natuke avalikke kontaktandmeid |
lisainfo | üle-KOV-iliselt parem mitte kasutada – eri KOV-idel võib olla erinev poliitika, mida siin kajastada |
kuju | geoinfo, PUNKT, vaikimisi SRID 3301 ehk L-EST97, aga teenuse abil saab lasta tõlkida WGS84-ks (SRID 4326) |
Tarbimine
Järgnevalt üldised juhised. Piksel ei paku WFS tarbimise õpetust/tuge. Kes tahab arendada andmete tõmbamist, tutvub ise standardiga ja vahest ka GS iseärasustega selle standardi piires/ümber.
Avaandmete tarbijatelt eeldame “mõistlikku” kasutamist. Arendada/häälestada oma tarkvaratoode nii, et lauspommitamist ei toimu. Agressiivselt käituvad IP-d võib Piksel ette hoiatamata sulgeda (pole ju teada, keda hoiatada). SAmas, kui KOV paneb WFS tarbimise püsti, võiks Pikselit informeerida IP osas, kust päringud tulevad.
Üldjuhul piisab valmistarkvarale WFS juurikast: https://geo.loc.piksel.ee/geoserver/ows
See otsib üles kõik, mida GS pakub (sh nimeruumis "xa") WFS-ina.
Järgnevad näited on versioon 2.0.0 kohta,kuigi GS toetab ka vanu versioone 1.0.0 ja 1.1.0, aga seal on pisierinevused, mida tuleb siis tarbijal teada (typeName (1.x) vs typeNames (v2), count vs maxFeatures)
Omaduste otsimise teenus: https://geo.loc.piksel.ee/geoserver/xa/ows?service=WFS&version=2.0.0&request=GetCapabilities
annab FeatureTypeList (kust leiab xa:haridusasutus) ja hulga tehnilist infot, milleks konkreetne server (meie juhul GS praegune versioon) võimeline on.
Ühe kihi metaandmete küsimine: https://geo.loc.piksel.ee/geoserver/xa/ows?service=WFS&version=2.0.0&typeNames=xa:haridusasutus&request=DescribeFeatureType (usutavasti brauser laeb alla failina, kuna XSD loetakse uuemal ajal tundmatuks laiendiks)
typeNames on kaheosaline:
nimeruum, meie näitel "xa"
kiht nimeruumis, meie näitel "haridusasutus"
annab XSD faili (XML), kus on loetletud (kui “sequence”, st järjekord loeb) propertied ehk omadused ehk elemendid, st ka geo element asukoha punktiga (AKS andmed, tõlgednust teab MaRu):
<xsd:element maxOccurs="1" minOccurs="0" name="kuju" nillable="true" type="gml:GeometryPropertyType"/>
Mingi hulga objektide (featuuride) küsimine, vaikimisi XML (vist GML3) mis on piisav ja hea ArcGIS jaoks (inimvaatleja brauseriga või python arendaja võivad tahta juhtida ouputFormat abil (=json korral näeb ka brauseris kenasti (raw, prettyprint, struktuurne)) https://geo.loc.piksel.ee/geoserver/xa/ows?service=WFS&version=2.0.0&request=GetFeature&typeName=xa:haridusasutus&CQL_FILTER=kov_kood=784%20AND%20on_huvikool=1&count=20&startIndex=0&sortBy=arno_id%20D&outputFormat=json
CQL filter abil andmete sisuline piiramine:
Tallinna (kov_kood=784) huvikoolid (on_huvikool=1)
CQL-is on mõistlik avaldis protsent-kodeerida (kui ise tarbija kirjutada) tühikud (%20), ülakomad (%27), võrdusmärgid (%3D), protsendimärgid (%25) jms.
Pagineerimine (mitu, mitmendast alates, mis sorteerimisalusega)
count=6
startIndex=0
sortBy=arno_id A (arno_id%20A – või D, kui üldse ära jätta, siis Geoserver sorteerib oma sisemise feature_id abil)
Projektsiooniteisenduseks lisa URLi parameeter: &srsName=EPSG:4326 (kraadid)
Märkused
Arendajad, kes pole veel WFS-i maailmaga tuttavad, võivad sellega tutvuda läbi GeoServeri prisma: https://docs.geoserver.org/main/en/user/services/wfs/reference/
Kui andmeid pole üldse (filter KOV järgi andis tühja nimekirja, aga tehniliselt töötas), siis võib-olla, et selle KOV-i andmeid ei laeta, või laetakse nad teise (nt ajaloolise) KOV EHAK koodiga. Rääkida KOV-i haridusosakonnaga, kes vajadusel räägib Pikseliga.
Kui andmeid on hiljuti saadud, aga enam ei saa, siis tasuks mitte rutata enda poolt kustutamisega. WFS teenus ise võib maas olla (tehniline tõrge), aga võib olla ka tarkvaraline andmete ümberehitus, või KOV ümberkodeerimine. Uurida Pikselist.