Svarbu
Vertimas yra bendruomenės pastangos, prie kurių jūs galite prisijungti. Šis puslapis šiuo metu išverstas 100.00%.
3.3. Tinklo Geoobjektų Paslauga - Web Feature Service (WFS)
QGIS Serveryje įgyvendinti 1.0.0 ir 1.1.0 WFS standartai teikia HTTP sąsają gauti geografinius geoobjektus iš QGIS projekto. Tipinėje WFS užklausoje nurodomas QGIS projektas ir sluoksnis, kuriame turi būti vykdoma užklausa.
Specifikacijos dokumentas pagal paslaugos versiją:
Standartinės QGIS Serverio teikiamos užklausos:
Užklausa |
Aprašymas |
---|---|
Grąžina XML metaduomenis su informacija apie serverį |
|
Grąžina geoobjektų rinkinį |
|
Grąžina geoobjektų tipų ir savybių aprašymą |
|
Leidžia įterpti, pakeisti ar ištrinti geoobjektus |
3.3.1. GetCapabilities
Standartiniai GetCapabilities užklausos parametrai pagal OGC WFS 1.0.0 ir 1.1.0 specifikacijas:
Parametras |
Privalomas |
Aprašymas |
---|---|---|
Taip |
Paslaugos pavadinimas (WFS) |
|
Taip |
Užklausos pavadinimas (GetCapabilities) |
|
Ne |
Paslaugos versija |
Be standartinių, QGIS Serveris palaiko ir šiuos papildomus parametrus:
Parametras |
Privalomas |
Aprašymas |
---|---|---|
Taip |
QGIS projekto failas |
VERSION
Šis parametras leidžia nurodyti jūsų naudojamų paslaugų versiją. Tinkamos VERSION
parametro reikšmės yra:
1.0.0
1.1.0
Jei versija nenurodyta, pagal nutylėjimą naudojama 1.1.0
versija.
URL pavyzdys:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&...
3.3.2. GetFeature
Standartiniai GetFeature užklausos parametrai pagal OGC WFS 1.0.0 ir 1.1.0 specifikacijas:
Parametras |
Privalomas |
Aprašymas |
---|---|---|
Taip |
Paslaugos pavadinimas (WFS) |
|
Taip |
Užklausos pavadinimas (GetFeature) |
|
Ne |
Paslaugos versija |
|
Ne |
Sluoksnių pavadinimai |
|
Ne |
Filtruoti geoobjektus pagal id |
|
Ne |
Išvesties formatas |
|
Ne |
Rezultato tipas |
|
Ne |
Grąžinamų savybių pavadinimas |
|
Ne |
Maksimalus grąžinamų geoobjektų skaičius |
|
Ne |
Koordinačių atskaitos sistema |
|
Ne |
OGC filtro koduotė |
|
Ne |
Žemėlapio apimtis |
|
Ne |
Rikiuoti rezultatus |
Be standartinių, QGIS Serveris palaiko ir šiuos papildomus parametrus:
Parametras |
Privalomas |
Aprašymas |
---|---|---|
Taip |
QGIS projekto failas |
|
Ne |
Puslapiavimas |
|
Ne |
Grąžinamos geometrijos tipas |
|
Ne |
Išraiškų filtras |
TYPENAME
Šis parametras leidžia nurodyti sluoksnių pavadinimus ir yra privalomas, jei nenurodytas FEATUREID
.
URL pavyzdys:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&TYPENAME=countries
FEATUREID
Šis parametras leidžia nurodyti konkretaus geoobjekto ID ir jo forma yra typename.fid,typename.fid,...
.
URL pavyzdys:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&FEATUREID=countries.0,places.1
XML atsakas:
<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
Šį parametrą galima naudoti, jei reikia nurodyti atsakymo formatą. Jei VERSION
yra naujesnė už 1.1.0
, numatytasis formatas yra GML3. Priešingu atveju naudojamas GML2.
Galimos reikšmės yra:
gml2
text/xml; subtype=gml/2.1.2
gml3
text/xml; subtype=gml/3.1.1
geojson
application/vnd.geo+json
,application/vnd.geo json
application/geo+json
application/geo json
application/json
URL pavyzdys:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&FEATUREID=countries.0
&OUTPUTFORMAT=geojson
GeoJSON atsakas:
{
"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
Šį parametrą galima naudoti, jei reikia nurodyti kokio tipo rezultatą reikia grąžinti. Galimos reikšmės yra:
results
: numatytoji elgsenahits
: grąžina tik geoobjektų skaičių
URL pavyzdys:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&RESULTTYPE=hits
&...
PROPERTYNAME
Šį parametrą galima naudoti, jei reikia nurodyti konkrečią grąžinamą savybę. Savybė turi būti sutapatinta su TYPENAME
ar FEATUREID
:
Tinkamo URL pavyzdys:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&PROPERTYNAME=name
&TYPENAME=places
O štai toks URL grąžins klaidą:
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
Šis parametras leidžia riboti užklausa grąžinamų geoobjektų skaičių.
URL pavyzdys:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&TYPENAME=places
&MAXFEATURES=1000
Pastaba
Šį parametrą galima naudoti greitaveikos gerinimui, kai teikiami sunkūs vektoriniai sluoksniai.
SRSNAME
Šis parametras leidžia nurodyti užklausos išvesties erdvinę atskaitos sistemą bei BBOX
CRS ir turi būti pateiktas formatu EPSG:XXXX
.
URL pavyzdys:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&TYPENAME=places
&SRSNAME=EPSG:32620
FILTER
Šis parametras leidžia filtruoti atsaką naudojant Filtro kodavimo kalbą, kuri apibrėžta OGC Filtro kodavimo standarte. Pavyzdžiui:
http://localhost/qgisserver?
SERVICE=WFS&
REQUEST=GetFeature&
TYPENAME=places&
FILTER=<Filter><PropertyIsEqualTo><PropertyName>name</PropertyName><Literal>Paris</Literal></PropertyIsEqualTo></Filter>
Kelių tipų atveju filtrus reikia apgaubti skliausteliais:
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>)
Filtruoti geoobjektus, kurie kerta poligoną:
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
Šis parametras leidžia nurodyti žemėlapio apimtį vienetais pagal dabartinį CRS. Koordinates reikia atskirti kableliais.
Parametras SRSNAME
leidžia nurodyti apimties CRS. Jei jis nenurodytas, naudojamas sluoksnio CRS.
URL pavyzdys:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&TYPENAME=places
&BBOX=-11.84,42.53,8.46,50.98
Parametro FEATUREID
negalima naudoti kartu su BBOX
. Toks bandymas reikš klaidą:
<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
Šis parametras leidžia rikiuoti gaunamus geoobjektus pagal savybių reikšmes ir turi būti suformuotas taip savybėspavadinimas SORTRULE
.
Tinkamos SORTRULE
reikšmės mažėjančiam rikiavimui:
D
+D
DESC
+DESC
Tinkamos SORTRULE
reikšmės didėjančiam rikiavimui:
A
+A
ASC
+ASC
URL pavyzdys:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&TYPENAME=places
&PROPERTYNAME=name
&MAXFEATURES=3
&SORTBY=name DESC
Atitinkamas rezultatas:
<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
Šį parametrą galima naudoti, jei reikia nurodyti, kokią geoobjektų geometriją reikia grąžinti. Galimos reikšmės yra:
extent
centroid
none
URL pavyzdys:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&GEOMETRYNAME=centroid
&...
STARTINDEX
Tai standartinis WFS 2.0 parametras, o WFS 1.0.0 atveju jis yra plėtinys.
Jį galima naudoti, norint praleisti kelis geoobjektus rezultate, ir, kartu su MAXFEATURES
, leidžia gauti rezultatų puslapius.
URL pavyzdys:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&STARTINDEX=2
&...
EXP_FILTER
Šis parametras leidžia filtruoti atsaką naudojant QGIS išraiškas. Simbolis ;
naudojamas atskirti filtrus, jei yra keli tipų pavadinimai.
URL pavyzdys:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&TYPENAME=places,countries
&EXP_FILTER="name"='Paris';"name"='France'
3.3.3. DescribeFeatureType
Standartiniai DescribeFeatureType užklausos parametrai pagal OGC WFS 1.0.0 ir 1.1.0 specifikacijas:
Parametras |
Privalomas |
Aprašymas |
---|---|---|
Taip |
Paslaugos pavadinimas (WFS) |
|
Taip |
Užklausos pavadinimas (DescribeFeatureType) |
|
Ne |
Paslaugos versija |
|
Ne |
Atsako formatas |
|
Ne |
Sluoksnių pavadinimai |
Be standartinių, QGIS Serveris palaiko ir šiuos papildomus parametrus:
Parametras |
Privalomas |
Aprašymas |
---|---|---|
Taip |
QGIS projekto failas |
URL pavyzdys:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=DescribeFeatureType
&TYPENAME=countries
Atsako išvestis:
<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. Transakcija
Ši užklausa leidžia keisti, trinti ar pridėti vieną ar kelis geoobjektus XML dokumento dėka. Veiksmą delete galima vykdyti tiek su POST užklausa, tiek ir su parametru OPERATION, o štai add ir update veiksmus galima vykdyti tik su POST užklausomis.
Standartiniai Transaction užklausos parametrai pagal OGC WFS 1.0.0 ir 1.1.0 specifikacijas:
Parametras |
Privalomas |
Aprašymas |
---|---|---|
Taip |
Paslaugos pavadinimas (WFS) |
|
Taip |
Užklausos pavadinimas (Transaction) |
|
Ne |
Paslaugos versija |
|
Ne |
OGC filtro koduotė |
|
Ne |
Žemėlapio apimtis |
|
Ne |
Filtruoti geoobjektus pagal id |
|
Ne |
Sluoksnių pavadinimai |
Be standartinių, QGIS Serveris palaiko ir šiuos papildomus parametrus:
Parametras |
Privalomas |
Aprašymas |
---|---|---|
Taip |
QGIS projekto failas |
|
Ne |
Nurodykite veiksmą |
|
Ne |
Išraiškų filtras |
OPERATION
Šis parametras leidžia trinti geoobjektą nenaudojant POST užklausos su dedikuotu XML dokumentu.
URL pavyzdys:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=Transaction
&OPERATION=DELETE
&FEATUREID=24
Pastaba
FEATUREID
, BBOX
ir FILTER
parametrai vienas kitą pašalina ir prioritetizuojami tokia tvarka.
Pridėti geoobjektus
POST užklausos pavyzdys:
wget --post-file=add.xml "http://localhost/qgisserver?SERVICE=WFS&REQUEST=Transaction"
su add.xml dokumentu:
<?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>
Keisti geoobjektus
POST užklausos pavyzdys:
wget --post-file=update.xml "http://localhost/qgisserver?SERVICE=WFS&REQUEST=Transaction"
su update.xml dokumentu:
<?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>
Trinti geoobjektus
POST užklausos pavyzdys:
wget --post-file=delete.xml "http://localhost/qgisserver?SERVICE=WFS&REQUEST=Transaction"
su delete.xml dokumentu:
<?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>