WFS 2.0 Pekka Latvala / Geodeettinen laitos 22.03.2012
Rakenne Yleistä WFS 2.0:sta Operaatiot Esimerkit valituista operaatioista 2
WFS 2.0 WFS (Web Feature Service) on OGC:n (Open Geospatial Consortium) luoma rajapinta, jonka avulla kohdemuotoista paikkatietoaineistoa voi ladata verkosta. Viimeisin versio: WFS 2.0 OGC 09-025r1 ISO/DIS 19142 Julkaistu: 11 / 2010 Sisältää 11 operaatiota Spesifikaatiodokumentti ladattavissa osoitteesta: http://www.opengeospatial.org/standards/wfs 3
WFS 2.0 Operaatiot Vanhat operaatiot GetCapabilities DescribeFeatureType GetFeature GetFeatureWithLock LockFeature Transaction Uudet operaatiot GetPropertyValue ListStoredQueries DescribeStoredQueries CreateStoredQuery DropStoredQuery Yleisesti operaatioille on määritelty sekä KVP (Key-Value pair), ja XML-pohjaiset koodausmuodot Transaction- ja CreateStoredQuery operaatioille on kuitenkin ainoastaan XML-pohjainen koodausmuoto 4
Yhteiset parametrit WFS 2.0 operaatioille yhteiset parametrit ovat: SERVICE=WFS VERSION=2.0.0 GetCapabilities-kyselyssä ACCEPTVERSIONS HANDLE määritelty vain XML-kyselyille Nimen liittäminen kyselyihin virheiden käsittelyä varten. Kyselyoperaation tyyppi määritellään KVP-kyselyissä REQUEST parametrin avulla XML-pohjaisissä kyselyissä operaation tyyppi ilmaistaan kyselyn juurielementin nimen avulla KVP-kyselyissä nimiavaruudet ilmaistaan NAMESPACES-parametrilla Palvelukohtaiset parametrit WFS-palvelutoteutukset voivat tukea myös omia, standardiin kuulumattomia parametreja 5
GetCapabilities Palauttaa palvelimen metadatatiedot Sisältää mm. palvelun yleiset metatiedot sekä tarjottujen kohdeluokkien nimet Parametrit: REQUEST=GetCapabilities ACCEPTVERSIONS oletusarvo 2.0.0 ACCEPTFORMATS UPDATESEQUENCE SECTIONS 6
DescribeFeatureType Palauttaa määritettyjen kohdetyyppien metadatatiedot Parametrit REQUEST=DescribeFeatureType TYPENAME OUTPUTFORMAT oletusarvo: text/xml; subtype=gml/3.2.1 7
Kyselyoperaatiot GetFeature GetFeatureWithLock GetPropertyValue Kyselyoperaatioiden yhteydessä voidaan käyttää joko Ad hoc -kyselyitä Tallennettuja kyselyitä, jossa määritellyille parametreille voidaan antaa myös omia arvoja. 8
Kyselyoperaatioiden yhteiset parametrit (GetFeature, GetPropertyValue ja GetFeatureWithLock) Standardiselvitysparametrit resurssiviittausten hallintaan: RESOLVE [ local, remote, all tai none ] RESOLVEDEPTH Ilmaisee syvyyden, mihin saakka resurssiviittaukset selvitetään RESOLVETIMEOUT Palvelimen odottama aika resurssiviittausten selvittämisessä. Jos palvelin tukee Resolve-parametrin remote -arvoa, se ilmaistaan Capabilities-dokumentin ImpelementRemoteResolve-rajoitteessa. 9
Kyselyoperaatioiden yhteiset parametrit (GetFeature, GetPropertyValue ja GetFeatureWithLock) Standardiesitysparametrit STARTINDEX Tulosjoukon indeksi, josta lähtien kohteet palautetaan COUNT Kyselyn tuloksena palautettavien kohteiden määrä OUTPUTFORMAT Vastauksen formaatti RESULTTYPE [ results tai hits ] results luo kokonaisen vastausdokumentin hits arvolla palvelin luo vastausdokumentin joka ei sisällä kohteita. Dokumentin juurielementissä ilmoitetaan kyselyä vastaavien kohteiden määrä. 10
Vastausten sivutus Vastausten sivutus Vastauksessa olevien tuloskohteiden tai arvojen tarkastelu sivu kerrallaan Palvelimet ilmoittavat tuestaan sivutukselle Capabilities-dokumentin ImplementsResultPaging-rajoitteessa Sivutusta käytetään jos vastausten määrä ylittää palvelimen count-arvon Count-arvo voidaan määrittää kyselyissä käytettävällä count-parametrilla tai palvelin voi antaa sille oletusarvon Capabilities-dokumentin CountDefaultrajoitteella Sivutuksessa vastauksen kokoomaelementtiin esim. <wfs:featurecollection> luodaan previous - ja next attribuutit jotka sisältävät linkit edelliselle ja seuraavalle sivulle STARTINDEX-parametrin avulla määrätään indeksi, josta lähtien tuloksia esitetään 11
Vastausten sivutus 12
Ad Hoc kyselyiden parametrit Parametrit TYPENAMES Valitsee kohdeluokat, joihin haku kohdistetaan ALIASES SRSNAME Projektio-rakenne Kohdetyypin skeeman ei-pakollisten elementtien liittäminen vastausviestiin PROPERTYNAME Standardiselvitysparamerit (resolve, resolvedepth, resolvetimeout) FILTER FILTER_LANGUAGE RESOURCEID BBOX SORTBY 13
Tallennettujen kyselylauseiden parametrit STOREDQUERY_ID Tallennetun kyselylauseen tunniste Tallennettujen kyselylauseiden parametriarvot parametri=arvo WFS 2.0-standardia tukevien palvelimien on pakollista toteuttaa GetFeatureByID niminen tallennettu kysely 14
Get Feature Palauttaa kyselyä vastaavat kohteet Parametrit REQUEST=GetFeature Standardiesitysparametrit Standardiselvitysparametrit Ad hoc kyselyden tai tallennettujen kyselylauseiden parametrit 15
GetFeatureWithLock Toimii samalla tavalla kuin GetFeature-operaatio, mutta lisäksi lukitsee kohteet Parametrit: REQUEST=GetFeatureWithLock GetFeature-kyselyn parametrit EXPIRY Positiivinen kokonaisluku, joka ilmaisee lukitusajan sekunneissa Oletusarvo 300 s = (5 min) LOCKACTION Määrittää tavan, jolla lukitus tehdään Mahdolliset arvot: [ALL, SOME] ALL lukitsee kaikki kyselyn elementit. Jos kaikkien elementtien lukitus ei onnistu, käyttäjälle lähetetään virheraportti. SOME lukitsee kaikki kyselyn elementit, jotka voidaan lukita. Vastaukseen liitetään lukitut kohteet. 16
GetPropertyValue Palauttaa kohteen ominaisuusarvon tai kompleksin ominaisuusarvon osan Parametrit REQUEST=GetPropertyValue VALUEREFERENCE XPATH-lause, joka yksilö kohteen, jonka arvo noudetaan RESOLVEPATH Määrittää tietyn polun, jossa resurssiviittaukset selvitetään Ad hoc kyselylauseiden tai tallennettujen kyselylauseiden parametrit 17
LockFeature Lukitsee kohteen tietyksi ajaksi, jolloin muut käyttäjät eivät voi muokata kohdetta Parametrit REQUEST=LockFeature Ad hoc-kyselyjen tai tallennettujen kyselyjen parametrit EXPIRY Positiivinen kokonaisluku, joka ilmaisee lukitusajan sekunneissa Oletusarvo 300 s = (5 min) LOCKACTION Määrittää tavan, jolla lukitus tehdään Mahdolliset arvot: [ALL, SOME] ALL lukitsee kaikki kyselyn elementit. Jos kaikkien elementtien lukitus ei onnistu, käyttäjälle lähetetään virheraportti. SOME lukitsee kaikki kyselyn elementit, jotka voidaan lukita. Vastaukseen liitetään lukitut kohteet. LOCKID Käytetään lukituksen ajan nollaamiseen Lukitus on suhteessa alkuperäiseen lukitsemisajankohtaan 18
Transaction Operaatio kohteiden lisäämiseen, päivittämiseen, korvaamiseen ja poistamiseen Vain XML-muotoisena Parametrit REQUEST=Transaction [wfs:insert, wfs:update, wfs:replace, wfs:delete] lockid Aiemman lukituksen tunniste releaseaction Määrittää lukitusten avaamisen transaktion päätyttyä [ALL, SOME] srsname inputformat 19
ListStoredQueries Listaa palvelimella olevat StoredQuery -kyselyt Parametrit REQUEST=ListStoredQueries 20
DescribeStoredQueries Palauttaa Tallennetun kyselyn kuvauksen Parametrit REQUEST=DescribeStoredQueries STOREDQUERY_ID 21
CreateStoredQuery Luo tallennetun kyselyn Ainoastaan XML-muodossa Palvelimien tuki ilmoitetaan ManageStoredQueries-rajoitteessa GetStoredQuery -elementin parametrit Service version Handle StoredQueryDefinition title [0...*] abstract [0...*] metadata [0...*] id 1 parameter [0...*] queryexpressiontext [0...*] Ilmaisee kyselylauseet, jotka suoritetaan silloin, kun tallennettu kysely ajetaan 22
DropStoredQuery Poistaa tallennetun kyselyn Palvelimien tuki ilmoitetaan ManageStoredQueriesrajoitteessa Parametrit REQUEST=DropStoredQuery STOREDQUERY_ID poistettavan tallennetun kyselyn id 23