Linkkejä todelliseen palveluun
Oheiset esimerkit eivät ole linkkejä palvelimelle kiinteästi tallennettuihin tiedostoihin, vaan ne tekevät pyyntöjä hip.latuviitta.fi -palvelimelle. Esimerkkipyyntö voidaan ottaa tekstinkäsittelyohjelmaan, muokata ja kopioida muokattu pyyntö selaimen osoitekenttään. Näin nähdään saman tien, miten muutos vaikuttaa palvelimen lähettämään vastaukseen.
Mahdollisena ongelmana WFS-palvelun suorakäytössä on se, että jos palvelimella on toimintahäiriö, niin esimerkit eivät toimi ollenkaan. Tässä tapauksessa ei voi tehdä muuta kuin yrittää myöhemmin uudestaan.
Ei pelkästään demoiluun, vaan myös hyötykäyttöön.
Käsin kirjoitettujenWFS-pyyntöjen lähettäminen selaimelta on paras tapa opetella ymmärtämään miten WFS toimii. Menetelmä on kuitenkin käyttökelpoinen muutenkin kuin pelkkään harjoitteluun. Jos tarkoituksena on hakea WFS:stä suuri aineisto myöhempää paikallista käyttöä varten, niin nimenomaan tiedostojen lataamiseen tarkoitetut ohjelmat, kuten wget tai curl, sopivat siihen erittäin hyvin. Suuren aineiston hakeminen WFS:stä GIS-ohjelmaan voi epäonnistua monesta syystä. Aineisto saattaa esimerkiksi jo lukuvaiheessa kuluttaa ohjelman käytettävissä olevan muistin loppuun, jolloin ohjelma kaatuu ja koko WFS-haku on tehty turhaan. Täydellinen epäonnistuminen voi tapahtua vielä senkin jälkeen, kun tiedot on saatu haetuksi WFS:stä. Jos nimittäin ohjelma kohtaa jonkin virheen vastaanotetun GML-tiedoston jäsentämisessä, niin se saattaa lopettaa jäsentämisen kokonaan, lähettää virheilmoituksen, ja hylätä koko suurella vaivalla palvelimelta hankitun aineiston. Molemmissa tapauksissa uusi yritys johtaa todennäköisesti uuteen epäonnistumiseen.
Jos aineisto noudetaan palvelimelta esimerkiksi wget-ohjelmalla, niin muistin loppumista ei tule tapahtumaan ja aineisto saadaan omalle koneelle tiedostoksi GML-muodossa. Tämä tiedosto voidaan sitten muuntaa GIS-ohjelmalle paremmin sopivaan muotoon jollakin tätä tarkoitusta varten tehdyllä ohjelmalla. Niiden ominaisuuksiin kuuluu yleensä esimerkiksi mahdollisuus jättää virheelliset kohteet huomioimatta. Näin voidaan saada esimerkiksi miljoona kohdetta muunnetuksi, ja vain yksi virheellinen kohde jää muuntamatta. Useimmiten tämä on käyttäjän kannalta paljon parempi lopputulos, kuin että koko valtava aineisto hylätään. Muunnosohjelma voi jopa tulostaa tiedot virheellisestä kohteesta, jolloin käyttäjä voi tehdä datavirheestä kunnollisen raportin palvelun ylläpitäjälle.
Periaatteessa GML-tiedosto ei selitä omaa rakennettaan, vaan siihen tarvitaan erillinen skeematiedosto. WFS:ssä skeematiedosto saadaan palvelusta DescribeFeatureType-pyynnöllä. Hyvä tapa ladattaessa aineistoa esimerkiksi wget:llä tai curl:lla on noutaa samalla myös aineiston skeema ja tallentaa myös se. Kuitenkin esimerkiksi ilmainen ogr2ogr-ohjelma pystyy jäsentämään ja muuntamaan myös pelkän GML-tiedoston.
Esimerkkihakujen tuloksen näyttäminen kartalla
Esimerkkipyyntöjen vastaus näkyy selaimella tekstinä. Tämä sopii oikein hyvin osoittamaan, että palvelin vastaa, minkä lisäksi se antaa mainion mahdollisuuden ymmärtää, mistä WFS:ssä oikeasti on kysymys. Esimerkkejä WFS-palvelun käyttämisestä karttaohjelmien avulla on Video-ohjeet -välilehdellä. Jos kuitenkin haluaa nähdä miltä näillä esimerkkipyynnöillä saatavat vektorit näyttävät kartalla, niin sekin onnistuu, kun tallentaa selaimella näkyvän GML-muotoisen vektoritiedon ensin levylle.
- Odota, kunnes aineisto on latautunut selaimelle. Käytä sen jälkeen selaimen toimintoa "Näytä lähdekoodi" ja tallenna sitten lähdekoodi-ikkunassa näkyvä teksti levylle. Anna tallennettavalle tiedostolle tiedostotunnukseksi .gml.
- Avaa tallennettu tiedosto Quantum GIS -ohjelmalla käyttämällä toimintoa "Lisää vektoritaso (Tiedosto) - Tiedostotyyppi (Geography Markup Language)"
- Tulos näkyy kartalla. Kohteiden ominaisuustiedot saadaan nykyviin valikon "Tasot - Avaa attribuuttitaulukko" kautta.
Quantum GIS:n lisäksi on monia muitakin GML:ää lukevia ohjelmia. QGis mainitaan tässä siitä syystä, että sen toimivuus on testattu.
Http GET- ja POST-esimerkeistä
WFS-esimerkit on jaettu kahteen valikkoon. Ensimmäisessä esitetään on http GET -tyylisiä pyyntöjä, jotka voi lähettää palvelimella selaimen kautta yksinkertaisesti klikkaamalla linkkiä. Ikävä kyllä vähänkään mutkikkaammat haut käyvät tällä tavalla melkein mahdottomiksi lukea ja ymmärtää, koska http-pyyntöön täytyy sisällyttää XML-muotoisia filter-elementtejä url-koodattuina. Lisäksi XML-filttereiden lähettämisessä GET-menetelmällä on käytännössä usein suuria ongelmia, jotka johtuvat toisaalta vaikeuksista tehdä url-koodaus oikein, ja toisaalta siitä, että WFS-palvelimet eivät välttämättä tulkitse GET-filttereitä oikein ja samalla tavalla kuin samoja filttereitä POST-menetelmällä lähetettynä. Tämä on ikävää, mutta totta.
POST-esimerkit ovat helpompia lukea ja WFS-palvelimet yleensä vastaavat niihin enemmän sillä tavalla, kuin standardi määrää. Tämä johtuu siitä, että standardinmukaisuustesteissä POST-menetelmää testataan paljon perusteellisemmin. POST sopii myös paremmin kuin GET helposti pitkiksi venyvien WFS-pyyntöjen lähettämiseen. Palvelimilla on usein oletusarvona hyväksyä esimerkiksi korkeintaan 2000 merkin mittaisia GET-pyyntöjä, eikä tämän rajan ylittämiseen tarvita kovinkaan ihmeellistä pyyntöä, yksi suuri aluegeometria rajaustekijänä voi jo olla tarpeeksi.
POST:in huonona puolena on se, että pyyntöä ei voi lähettää suoraan linkkiä näpäyttämällä. Sivulle tulevat POST-esimerkit on testattu käyttämällä Firefox-selainen Poster-lisäosaa. Tästä tulee myös asennus- ja käyttöohje saataville.