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

GetCapabilities

Returnerar XML-metadata med information om servern

GetFeature

Returnerar ett urval av funktioner

DescribeFeatureType

Returnerar en beskrivning av objekttyper och egenskaper

Transaction

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

SERVICE

Ja

Tjänstens namn (WFS)

REQUEST

Ja

Namn på begäran (GetCapabilities)

VERSION

Nej

Version av tjänsten

Utöver standardparametrarna har QGIS Server stöd för följande extra parametrar:

Parameter

Obligatorisk

Beskrivning

MAP

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

SERVICE

Ja

Tjänstens namn (WFS)

REQUEST

Ja

Namn på begäran (GetFeature)

VERSION

Nej

Version av tjänsten

TYPENAME

Nej

Namn på lager

FEATUREID

Nej

Filtrera funktionerna efter ID-nummer

OUTPUTFORMAT

Nej

Output format

RESULTTYPE

Nej

Typ av resultat

PROPERTYNAME

Nej

Namn på egenskaper som ska returneras

MAXFEATURES

Nej

Maximalt antal funktioner som ska returneras

SRSNAME

Nej

Referenssystem för koordinater

FILTER

Nej

Kodning av OGC-filter

BBOX

Nej

Kartans utbredning

SORTBY

Nej

Sortera resultaten

Utöver standardparametrarna har QGIS Server stöd för följande extra parametrar:

Parameter

Obligatorisk

Beskrivning

MAP

Ja

QGIS-projektfil

STARTINDEX

Nej

Personsökning

GEOMETRYNAME

Nej

Typ av geometri som ska returneras

EXP_FILTER

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: standardbeteendet

  • hits: 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

SERVICE

Ja

Tjänstens namn (WFS)

REQUEST

Ja

Namn på begäran (DescribeFeatureType)

VERSION

Nej

Version av tjänsten

OUTPUTFORMAT

Nej

Svarets format

TYPENAME

Nej

Namn på lager

Utöver standardparametrarna har QGIS Server stöd för följande extra parametrar:

Parameter

Obligatorisk

Beskrivning

MAP

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

SERVICE

Ja

Tjänstens namn (WFS)

REQUEST

Ja

Namn på begäran (Transaction)

VERSION

Nej

Version av tjänsten

FILTER

Nej

Kodning av OGC-filter

BBOX

Nej

Kartans utbredning

FEATUREID

Nej

Filtrera funktionerna efter ID-nummer

TYPENAME

Nej

Namn på lager

Utöver standardparametrarna har QGIS Server stöd för följande extra parametrar:

Parameter

Obligatorisk

Beskrivning

MAP

Ja

QGIS-projektfil

OPERATION

Nej

Specificera operationen

EXP_FILTER

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>