Важно
Prevod je zajednički napor :ref:`možete se pridružiti `. Ova stranica je trenutno prevedena na |napredak prevođenja|.
3.3. Web Feature Service (WFS)
WFS standardi 1.0.0 i 1.1.0 implementirani u QGIS Serveru pružaju HTTP interfejs za upite nad geografskim objektima iz QGIS projekta. Tipičan WFS zahtev definiše QGIS projekat koji se koristi i sloj nad kojim se vrši upit.
Dokument sa specifikacijama prema broju verzije servisa:
Standardni zahtevi koje pruža QGIS Server:
Zahtev |
Opis |
|---|---|
Vraća XML metapodatke sa informacijama o serveru |
|
Vraća izbor objekata |
|
Vraća opis tipova objekata i svojstava |
|
Omogućava umetanje, ažuriranje ili brisanje objekata |
3.3.1. GetCapabilities
Standardni parametri za zahtev GetCapabilities prema OGC WFS 1.0.0 i 1.1.0 specifikacijama:
Parametar |
Obavezno |
Opis |
|---|---|---|
Da |
Naziv servisa (WFS) |
|
Da |
Naziv zahteva (GetCapabilities) |
|
Ne |
Verzija servisa |
Pored standardnih, QGIS Server podržava i sledeće dodatne parametre:
Parametar |
Obavezno |
Opis |
|---|---|---|
Da |
QGIS projektna datoteka |
VERSION
Ovaj parametar omogućava zadavanje verzije servisa koja se koristi. Dostupne vrednosti za parametar VERSION su:
1.0.01.1.0
Ako u zahtevu nije naznačena verzija, podrazumevano se koristi 1.1.0.
Primer URL-a:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&...
3.3.2. GetFeature
Standardni parametri za zahtev GetFeature prema OGC WFS 1.0.0 i 1.1.0 specifikacijama:
Parametar |
Obavezno |
Opis |
|---|---|---|
Da |
Naziv servisa (WFS) |
|
Da |
Naziv zahteva (GetFeature) |
|
Ne |
Verzija servisa |
|
Ne |
Nazivi slojeva |
|
Ne |
Filtriraj objekte po ID-jevima |
|
Ne |
Izlazni format |
|
Ne |
Tip rezultata |
|
Ne |
Nazivi svojstava koja se vraćaju |
|
Ne |
Maksimalan broj objekata koji se vraćaju |
|
Ne |
Koordinatni referentni sistem |
|
Ne |
OGC Filter Encoding |
|
Ne |
Obuhvat karte |
|
Ne |
Sortiraj rezultate |
Pored standardnih, QGIS Server podržava i sledeće dodatne parametre:
Parametar |
Obavezno |
Opis |
|---|---|---|
Da |
QGIS projektna datoteka |
|
Ne |
Straničenje |
|
Ne |
Tip geometrije koja se vraća |
|
Ne |
Filtriranje izrazima |
TYPENAME
Ovaj parametar omogućava zadavanje naziva slojeva i obavezan je ako FEATUREID nije postavljen.
Primer URL-a:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&TYPENAME=countries
FEATUREID
Ovaj parametar omogućava zadavanje ID-ja određenog objekta i formira se kao typename.fid,typename.fid,....
Primer URL-a:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&FEATUREID=countries.0,places.1
XML odgovor:
<wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" xmlns:ows="http://www.opengis.net/ows" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qgs="http://www.qgis.org/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd http://www.qgis.org/gml http://192.168.1.15/qgisserver?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&TYPENAME=countries,places&OUTPUTFORMAT=text/xml; subtype%3Dgml/3.1.1">
<gml:boundedBy>
...
</gml:boundedBy>
<gml:featureMember>
<qgs:countries gml:id="countries.1">
...
</qgs:countries>
</gml:featureMember>
<gml:featureMember>
<qgs:places gml:id="places.1">
...
</qgs:places>
</gml:featureMember>
</wfs:FeatureCollection>
OUTPUTFORMAT
Ovaj parametar se može koristiti za zadavanje formata odgovora. Ako je VERSION veća ili jednaka 1.1.0, podrazumevani format je GML3. U suprotnom se koristi GML2.
Dostupne vrednosti su:
gml2text/xml; subtype=gml/2.1.2gml3text/xml; subtype=gml/3.1.1geojsonapplication/vnd.geo+json,application/vnd.geo jsonapplication/geo+jsonapplication/geo jsonapplication/json
Primer URL-a:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&FEATUREID=countries.0
&OUTPUTFORMAT=geojson
GeoJSON odgovor:
{
"type":"FeatureCollection",
"bbox":[
-180,
-90,
180,
83.6236
],
"features":[
{
"bbox":[
-61.891113,
16.989719,
-61.666389,
17.724998
],
"geometry":{
"coordinates":[
"..."
],
"type":"MultiPolygon"
},
"id":"countries.1",
"properties":{
"id":1,
"name":"Antigua and Barbuda"
},
"type":"Feature"
}
]
}
RESULTTYPE
Ovaj parametar se može koristiti za zadavanje vrste rezultata koji se vraća. Dostupne vrednosti su:
results: podrazumevano ponašanjehits: vraća samo broj objekata
Primer URL-a:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&RESULTTYPE=hits
&...
PROPERTYNAME
Ovaj parametar se može koristiti za zadavanje određenog svojstva koje se vraća. Svojstvo mora biti mapirano sa TYPENAME ili FEATUREID:
Primer ispravnog URL-a:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&PROPERTYNAME=name
&TYPENAME=places
Nasuprot tome, sledeći URL će vratiti izuzetak:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&PROPERTYNAME=name
&TYPENAME=places,countries
<ServiceExceptionReport xmlns="http://www.opengis.net/ogc" version="1.2.0">
<ServiceException code="RequestNotWellFormed">There has to be a 1:1 mapping between each element in a TYPENAME and the PROPERTYNAME list</ServiceException>
</ServiceExceptionReport>
MAXFEATURES
Ovaj parametar omogućava ograničavanje broja objekata koje zahtev vraća.
Primer URL-a:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&TYPENAME=places
&MAXFEATURES=1000
Белешка
Ovaj parametar može biti koristan za poboljšanje performansi kada su vektorski slojevi u pozadini obimni.
SRSNAME
Ovaj parametar omogućava naznačavanje prostornog referentnog sistema izlaznog odgovora, kao i CRS-a za BBOX, i mora biti formiran kao EPSG:XXXX.
Primer URL-a:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&TYPENAME=places
&SRSNAME=EPSG:32620
FILTER
Ovaj parametar omogućava filtriranje odgovora pomoću jezika Filter Encoding definisanog OGC Filter Encoding standardom. Na primer:
http://localhost/qgisserver?
SERVICE=WFS&
REQUEST=GetFeature&
TYPENAME=places&
FILTER=<Filter><PropertyIsEqualTo><PropertyName>name</PropertyName><Literal>Paris</Literal></PropertyIsEqualTo></Filter>
U slučaju više naziva tipova, filteri moraju biti u zagradama:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&TYPENAME=places,countries
&FILTER=(<Filter><PropertyIsEqualTo><PropertyName>name</PropertyName><Literal>Paris</Literal></PropertyIsEqualTo></Filter>)(<Filter><PropertyIsEqualTo><PropertyName>name</PropertyName><Literal>France</Literal></PropertyIsEqualTo></Filter>)
Filtriraj objekte koji se seku sa poligonom:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&VERSION=1.1.0
&TYPENAME=places
&FILTER=<Filter xmlns="http://www.opengis.net/ogc">
<Intersects>
<PropertyName>geometry</PropertyName>
<Polygon xmlns="http://www.opengis.net/gml" srsName="EPSG:4326">
<exterior>
<LinearRing>
<posList>
-0.6389 42.5922
10.2683 51.9106
14.5196 41.0320
-0.6389 42.5922
</posList>
</LinearRing>
</exterior>
</Polygon>
</Intersects>
</Filter>
BBOX
Ovaj parametar omogućava zadavanje obuhvata karte u jedinicama prema tekućem CRS-u. Koordinate moraju biti razdvojene zarezom.
Parametar SRSNAME može zadati CRS obuhvata. Ako nije zadat, koristi se CRS sloja.
Primer URL-a:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&TYPENAME=places
&BBOX=-11.84,42.53,8.46,50.98
Parametar FEATUREID ne može se koristiti sa BBOX. Svaki pokušaj rezultiraće izuzetkom:
<ServiceExceptionReport xmlns="http://www.opengis.net/ogc" version="1.2.0">
<ServiceException code="RequestNotWellFormed">FEATUREID FILTER and BBOX parameters are mutually exclusive</ServiceException>
</ServiceExceptionReport>
SORTBY
Ovaj parametar omogućava sortiranje rezultujućih objekata prema vrednostima svojstava i mora biti formiran kao propertyname SORTRULE.
Dostupne vrednosti za SORTRULE u slučaju opadajućeg sortiranja:
D+DDESC+DESC
Dostupne vrednosti za SORTRULE u slučaju rastućeg sortiranja:
A+AASC+ASC
Primer URL-a:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&TYPENAME=places
&PROPERTYNAME=name
&MAXFEATURES=3
&SORTBY=name DESC
Odgovarajući rezultat:
<wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" xmlns:ows="http://www.opengis.net/ows" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qgs="http://www.qgis.org/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd http://www.qgis.org/gml http://192.168.1.15/qgisserver?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&TYPENAME=places&OUTPUTFORMAT=text/xml; subtype%3Dgml/3.1.1">
<gml:boundedBy>
...
</gml:boundedBy>
<gml:featureMember>
<qgs:places gml:id="places.90">
<qgs:name>Zagreb</qgs:name>
</qgs:places>
</gml:featureMember>
<gml:featureMember>
<qgs:places gml:id="places.113">
<qgs:name>Yerevan</qgs:name>
</qgs:places>
</gml:featureMember>
<gml:featureMember>
<qgs:places gml:id="places.111">
<qgs:name>Yaounde</qgs:name>
</qgs:places>
</gml:featureMember>
</wfs:FeatureCollection>
GEOMETRYNAME
Ovaj parametar se može koristiti za zadavanje vrste geometrije koja se vraća za objekte. Dostupne vrednosti su:
extentcentroidnone
Primer URL-a:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&GEOMETRYNAME=centroid
&...
STARTINDEX
Ovaj parametar je standardan u WFS 2.0, ali je proširenje za WFS 1.0.0.
Zapravo, može se koristiti za preskakanje nekih objekata u skupu rezultata, a u kombinaciji sa MAXFEATURES omogućava straničenje kroz rezultate.
Primer URL-a:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&STARTINDEX=2
&...
EXP_FILTER
Ovaj parametar omogućava filtriranje odgovora pomoću QGIS izraza. Znak ; se koristi za razdvajanje filtera u slučaju više naziva tipova.
Primer URL-a:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&TYPENAME=places,countries
&EXP_FILTER="name"='Paris';"name"='France'
3.3.3. DescribeFeatureType
Standardni parametri za zahtev DescribeFeatureType prema OGC WFS 1.0.0 i 1.1.0 specifikacijama:
Parametar |
Obavezno |
Opis |
|---|---|---|
Da |
Naziv servisa (WFS) |
|
Da |
Naziv zahteva (DescribeFeatureType) |
|
Ne |
Verzija servisa |
|
Ne |
Format odgovora |
|
Ne |
Nazivi slojeva |
Pored standardnih, QGIS Server podržava i sledeće dodatne parametre:
Parametar |
Obavezno |
Opis |
|---|---|---|
Da |
QGIS projektna datoteka |
Primer URL-a:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=DescribeFeatureType
&TYPENAME=countries
Izlazni odgovor:
<schema xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:qgs="http://www.qgis.org/gml" xmlns:gml="http://www.opengis.net/gml" targetNamespace="http://www.qgis.org/gml" version="1.0" elementFormDefault="qualified">
<import schemaLocation="http://schemas.opengis.net/gml/3.1.1/base/gml.xsd" namespace="http://www.opengis.net/gml"/>
<element type="qgs:countriesType" substitutionGroup="gml:_Feature" name="countries"/>
<complexType name="countriesType">
<complexContent>
<extension base="gml:AbstractFeatureType">
<sequence>
<element minOccurs="0" type="gml:MultiPolygonPropertyType" maxOccurs="1" name="geometry"/>
<element type="long" name="id"/>
<element nillable="true" type="string" name="name"/>
</sequence>
</extension>
</complexContent>
</complexType>
</schema>
3.3.4. Transaction
Ovaj zahtev omogućava ažuriranje, brisanje ili dodavanje jednog ili više objekata pomoću XML dokumenta. Akcija delete može se izvršiti POST zahtevom, kao i pomoću parametra OPERATION, dok se operacije add i update mogu izvršiti samo POST zahtevom.
Standardni parametri za zahtev Transaction prema OGC WFS 1.0.0 i 1.1.0 specifikacijama:
Parametar |
Obavezno |
Opis |
|---|---|---|
Da |
Naziv servisa (WFS) |
|
Da |
Naziv zahteva (Transaction) |
|
Ne |
Verzija servisa |
|
Ne |
OGC Filter Encoding |
|
Ne |
Obuhvat karte |
|
Ne |
Filtriraj objekte po ID-jevima |
|
Ne |
Nazivi slojeva |
Pored standardnih, QGIS Server podržava i sledeće dodatne parametre:
Parametar |
Obavezno |
Opis |
|---|---|---|
Da |
QGIS projektna datoteka |
|
Ne |
Zadajte operaciju |
|
Ne |
Filtriranje izrazima |
OPERATION
Ovaj parametar omogućava brisanje objekta bez korišćenja POST zahteva sa posebnim XML dokumentom.
Primer URL-a:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=Transaction
&OPERATION=DELETE
&FEATUREID=24
Белешка
Parametri FEATUREID, BBOX i FILTER međusobno se isključuju i imaju prioritet ovim redosledom.
Dodavanje objekata
Primer POST zahteva:
wget --post-file=add.xml "http://localhost/qgisserver?SERVICE=WFS&REQUEST=Transaction"
sa dokumentom add.xml:
<?xml version="1.0" encoding="UTF-8"?>
<wfs:Transaction service="WFS" version="1.0.0" xmlns:wfs="http://www.opengis.net/wfs" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ogc="http://www.opengis.net/ogc" xmlns="http://www.opengis.net/wfs" updateSequence="0" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-capabilities.xsd" xmlns:gml="http://www.opengis.net/gml" xmlns:ows="http://www.opengis.net/ows">
<wfs:Insert idgen="GenerateNew">
<qgs:places>
<qgs:geometry>
<gml:Point srsDimension="2" srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
<gml:coordinates decimal="." cs="," ts=" ">-4.6167,48.3833</gml:coordinates>
</gml:Point>
</qgs:geometry>
<qgs:name>Locmaria-Plouzané</qgs:name>
</qgs:places>
</wfs:Insert>
</wfs:Transaction>
Ažuriranje objekata
Primer POST zahteva:
wget --post-file=update.xml "http://localhost/qgisserver?SERVICE=WFS&REQUEST=Transaction"
sa dokumentom update.xml:
<?xml version="1.0" encoding="UTF-8"?>
<wfs:Transaction service="WFS" version="1.0.0" xmlns:wfs="http://www.opengis.net/wfs" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ogc="http://www.opengis.net/ogc" xmlns="http://www.opengis.net/wfs" updateSequence="0" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-capabilities.xsd" xmlns:gml="http://www.opengis.net/gml" xmlns:ows="http://www.opengis.net/ows">
<wfs:Update typeName="places">
<wfs:Property>
<wfs:Name>name</wfs:Name>
<wfs:Value>Lutece</wfs:Value>
</wfs:Property>
<ogc:Filter>
<ogc:FeatureId fid="24"/>
</ogc:Filter>
</wfs:Update>
</wfs:Transaction>
Brisanje objekata
Primer POST zahteva:
wget --post-file=delete.xml "http://localhost/qgisserver?SERVICE=WFS&REQUEST=Transaction"
sa dokumentom delete.xml:
<?xml version="1.0" encoding="UTF-8"?>
<wfs:Transaction service="WFS" version="1.0.0" xmlns:wfs="http://www.opengis.net/wfs" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ogc="http://www.opengis.net/ogc" xmlns="http://www.opengis.net/wfs" updateSequence="0" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-capabilities.xsd" xmlns:gml="http://www.opengis.net/gml" xmlns:ows="http://www.opengis.net/ows">
<wfs:Delete typeName="places">
<ogc:Filter>
<ogc:FeatureId fid="24"/>
</ogc:Filter>
</wfs:Delete>
</wfs:Transaction>