Viktigt
Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 100.00%.
3.3. Web Feature Service (WFS)
WFS-standarderna 1.0.0 och 1.1.0 som implementerats i QGIS Server tillhandahåller ett HTTP-gränssnitt för att fråga efter geografiska funktioner från ett QGIS-projekt. En typisk WFS-förfrågan definierar vilket QGIS-projekt som ska användas och vilket skikt som ska frågas.
Specifikationer dokument enligt tjänstens versionsnummer:
Standardförfrågningar som tillhandahålls av QGIS Server:
Förfrågan |
Beskrivning |
---|---|
Returnerar XML-metadata med information om servern |
|
Returnerar ett urval av funktioner |
|
Returnerar en beskrivning av objekttyper och egenskaper |
|
Gör det möjligt att lägga till, uppdatera eller ta bort funktioner |
3.3.1. GetCapabilities
Standardparametrar för GetCapabilities-begäran enligt OGC WFS 1.0.0- och 1.1.0-specifikationerna:
Parameter |
Obligatorisk |
Beskrivning |
---|---|---|
Ja |
Tjänstens namn (WFS) |
|
Ja |
Namn på begäran (GetCapabilities) |
|
Nej |
Version av tjänsten |
Utöver standardparametrarna har QGIS Server stöd för följande extra parametrar:
Parameter |
Obligatorisk |
Beskrivning |
---|---|---|
Ja |
QGIS-projektfil |
VERSION
Denna parameter gör det möjligt att ange vilken version av tjänsten som ska användas. Tillgängliga värden för parametern VERSION
är:
1.0.0
1.1.0
Om ingen version anges i begäran används 1.1.0
som standard.
Exempel på URL:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&...
3.3.2. GetFeature
Standardparametrar för GetFeature-begäran enligt OGC WFS 1.0.0- och 1.1.0-specifikationerna:
Parameter |
Obligatorisk |
Beskrivning |
---|---|---|
Ja |
Tjänstens namn (WFS) |
|
Ja |
Namn på begäran (GetFeature) |
|
Nej |
Version av tjänsten |
|
Nej |
Namn på lager |
|
Nej |
Filtrera funktionerna efter ID-nummer |
|
Nej |
Output format |
|
Nej |
Typ av resultat |
|
Nej |
Namn på egenskaper som ska returneras |
|
Nej |
Maximalt antal funktioner som ska returneras |
|
Nej |
Referenssystem för koordinater |
|
Nej |
Kodning av OGC-filter |
|
Nej |
Kartans utbredning |
|
Nej |
Sortera resultaten |
Utöver standardparametrarna har QGIS Server stöd för följande extra parametrar:
Parameter |
Obligatorisk |
Beskrivning |
---|---|---|
Ja |
QGIS-projektfil |
|
Nej |
Personsökning |
|
Nej |
Typ av geometri som ska returneras |
|
Nej |
Filtrering av uttryck |
TYPENAME
Denna parameter gör det möjligt att ange skiktnamn och är obligatorisk om FEATUREID
inte har angetts.
Exempel på URL:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&TYPENAME=countries
FEATUREID
Denna parameter gör det möjligt att ange ID för en specifik funktion och är utformad som typename.fid,typename.fid,...
.
Exempel på URL:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&FEATUREID=countries.0,places.1
XML-svar:
<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
Denna parameter kan användas för att ange formatet på svaret. Om VERSION
är större än eller lika med 1.1.0
är GML3 standardformatet. I annat fall används GML2.
Tillgängliga värden är:
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
Exempel på URL:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&FEATUREID=countries.0
&OUTPUTFORMAT=geojson
GeoJSON-svar:
{
"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
Denna parameter kan användas för att ange vilken typ av resultat som ska returneras. Tillgängliga värden är:
results
: standardbeteendethits
: returnerar endast ett antal funktioner
Exempel på URL:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&RESULTTYPE=hits
&...
PROPERTYNAME
Denna parameter kan användas för att ange en specifik egenskap som ska returneras. En egenskap måste mappas med ett TYPENAME
eller ett FEATUREID
:
Exempel på giltig URL:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&PROPERTYNAME=name
&TYPENAME=places
Tvärtom kommer nästa URL att returnera ett undantag:
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
Denna parameter gör det möjligt att begränsa antalet funktioner som returneras av begäran.
Exempel på URL:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&TYPENAME=places
&MAXFEATURES=1000
Observera
Denna parameter kan vara användbar för att förbättra prestanda när underliggande vektorlager är tunga.
SRSNAME
Denna parameter gör det möjligt att ange det rumsliga referenssystemet för svarsutgången samt CRS för BBOX
och måste utformas som EPSG:XXXX
.
Exempel på URL:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&TYPENAME=places
&SRSNAME=EPSG:32620
FILTER
Denna parameter gör det möjligt att filtrera svaret med Filter Encoding-språket som definieras av OGC Filter Encoding standard. Till exempel:
http://localhost/qgisserver?
SERVICE=WFS&
REQUEST=GetFeature&
TYPENAME=places&
FILTER=<Filter><PropertyIsEqualTo><PropertyName>name</PropertyName><Literal>Paris</Literal></PropertyIsEqualTo></Filter>
Om det finns flera typnamn måste filtren anges inom parentes:
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>)
Filtrera objekt som skär en polygon:
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
Denna parameter gör det möjligt att ange kartans utsträckning med enheter enligt aktuellt CRS. Koordinaterna måste separeras med ett kommatecken.
Parametern SRSNAME
kan ange CRS för utbredningen. Om inget anges används skiktets CRS.
Exempel på URL:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&TYPENAME=places
&BBOX=-11.84,42.53,8.46,50.98
Parametern FEATUREID
kan inte användas med BBOX
. Alla försök kommer att resultera i ett undantag:
<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
Denna parameter gör det möjligt att sortera resulterande funktioner enligt egenskapsvärden och måste utformas som propertyname SORTRULE
.
Tillgängliga värden för SORTRULE
vid fallande sortering:
D
+D
DESC
+DESC
Tillgängliga värden för SORTRULE
vid stigande sortering:
A
+A
ASC
+ASC
Exempel på URL:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&TYPENAME=places
&PROPERTYNAME=name
&MAXFEATURES=3
&SORTBY=name DESC
Motsvarande resultat:
<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
Denna parameter kan användas för att ange vilken typ av geometri som ska returneras för funktioner. Tillgängliga värden är:
extent
centroid
ingen
Exempel på URL:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&GEOMETRYNAME=centroid
&...
STARTINDEX
Denna parameter är standard i WFS 2.0, men det är ett tillägg för WFS 1.0.0.
Det kan faktiskt användas för att hoppa över vissa funktioner i resultatuppsättningen och i kombination med MAXFEATURES
ger det möjlighet att bläddra igenom resultaten.
Exempel på URL:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&STARTINDEX=2
&...
EXP_FILTER
Denna parameter gör det möjligt att filtrera svaret med QGIS-uttryck. Tecknet ;
används för att separera filter om det finns flera typnamn.
Exempel på URL:
http://localhost/qgisserver?
SERVICE=WFS
&REQUEST=GetFeature
&TYPENAME=places,countries
&EXP_FILTER="name"='Paris';"name"='France'
3.3.3. DescribeFeatureType
Standardparametrar för begäran DescribeFeatureType enligt OGC WFS 1.0.0- och 1.1.0-specifikationerna:
Parameter |
Obligatorisk |
Beskrivning |
---|---|---|
Ja |
Tjänstens namn (WFS) |
|
Ja |
Namn på begäran (DescribeFeatureType) |
|
Nej |
Version av tjänsten |
|
Nej |
Svarets format |
|
Nej |
Namn på lager |
Utöver standardparametrarna har QGIS Server stöd för följande extra parametrar:
Parameter |
Obligatorisk |
Beskrivning |
---|---|---|
Ja |
QGIS-projektfil |
Exempel på URL:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=DescribeFeatureType
&TYPENAME=countries
Svar på utmatning:
<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. Transaktion
Denna begäran gör det möjligt att uppdatera, ta bort eller lägga till en eller flera funktioner med hjälp av ett XML-dokument. Åtgärden delete kan utföras med en POST-begäran samt med parametern OPERATION medan åtgärderna add och update endast kan utföras med en POST-begäran.
Standardparametrar för Transaction-begäran enligt OGC WFS 1.0.0- och 1.1.0-specifikationerna:
Parameter |
Obligatorisk |
Beskrivning |
---|---|---|
Ja |
Tjänstens namn (WFS) |
|
Ja |
Namn på begäran (Transaction) |
|
Nej |
Version av tjänsten |
|
Nej |
Kodning av OGC-filter |
|
Nej |
Kartans utbredning |
|
Nej |
Filtrera funktionerna efter ID-nummer |
|
Nej |
Namn på lager |
Utöver standardparametrarna har QGIS Server stöd för följande extra parametrar:
Parameter |
Obligatorisk |
Beskrivning |
---|---|---|
Ja |
QGIS-projektfil |
|
Nej |
Specificera operationen |
|
Nej |
Filtrering av uttryck |
OPERATION
Med denna parameter kan du ta bort en funktion utan att använda en POST-begäran med ett särskilt XML-dokument.
Exempel på URL:
http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=Transaction
&OPERATION=DELETE
&FEATUREID=24
Observera
parametrarna FEATUREID
, BBOX
och FILTER
är ömsesidigt uteslutande och prioriteras i denna ordning.
Lägg till funktioner
Exempel på POST-begäran:
wget --post-file=add.xml "http://localhost/qgisserver?SERVICE=WFS&REQUEST=Transaction"
med dokumentet 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>
Uppdatera funktioner
Exempel på POST-begäran:
wget --post-file=update.xml "http://localhost/qgisserver?SERVICE=WFS&REQUEST=Transaction"
med dokumentet 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>
Ta bort funktioner
Exempel på POST-begäran:
wget --post-file=delete.xml "http://localhost/qgisserver?SERVICE=WFS&REQUEST=Transaction"
med dokumentet 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>