WFS OUTPUTFORMATs and PROPERTYNAME

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

WFS OUTPUTFORMATs and PROPERTYNAME

Seth G-2
Hi all,

A question on WFS GetFeature requests and the OUTPUTFORMAT type.

All fields specified in gml_include_items are returned when creating non-GML outputs such as Shapefile and GeoJSON even when setting the PROPERTYNAME parameter in the request to reduce which fields should be added to the output.
The docs at http://mapserver.org/output/ogr_output.html#layer-metadata note you can use  gml_include_items but makes no mention they can't be overridden with PROPERTYNAME .

As OUTPUT format is an extension to WFS (http://mapserver.org/ogc/wfs_server.html#mapserver-wfs-extensions) is this logic by design?

Maybe a note should be added to http://mapserver.org/ogc/wfs_server.html#to-do-items-and-known-limitations ?

Regards,

Seth

--
web:http://geographika.co.uk
twitter: @geographika
_______________________________________________
mapserver-users mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/mapserver-users
Reply | Threaded
Open this post in threaded view
|

Re: WFS OUTPUTFORMATs and PROPERTYNAME

jratike80
Hi,

Do you get what you want with GML output? Have you tried if using ows_include_items would make any difference? And how do those attributes appear in the DescribeFeatureType? Attributes which are "not null" must appear in the response by WFS standard.

-Jukka Rahkonen-


-----Alkuperäinen viesti-----
Lähettäjä: mapserver-users [mailto:[hidden email]] Puolesta Seth G
Lähetetty: 2. heinäkuuta 2018 21:55
Vastaanottaja: [hidden email]
Aihe: [mapserver-users] WFS OUTPUTFORMATs and PROPERTYNAME

Hi all,

A question on WFS GetFeature requests and the OUTPUTFORMAT type.

All fields specified in gml_include_items are returned when creating non-GML outputs such as Shapefile and GeoJSON even when setting the PROPERTYNAME parameter in the request to reduce which fields should be added to the output.
The docs at http://mapserver.org/output/ogr_output.html#layer-metadata note you can use  gml_include_items but makes no mention they can't be overridden with PROPERTYNAME .

As OUTPUT format is an extension to WFS (http://mapserver.org/ogc/wfs_server.html#mapserver-wfs-extensions) is this logic by design?

Maybe a note should be added to http://mapserver.org/ogc/wfs_server.html#to-do-items-and-known-limitations ?

Regards,

Seth

--
web:http://geographika.co.uk
twitter: @geographika
_______________________________________________
mapserver-users mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/mapserver-users
_______________________________________________
mapserver-users mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/mapserver-users
Reply | Threaded
Open this post in threaded view
|

Re: WFS OUTPUTFORMATs and PROPERTYNAME

Even Rouault-2
In reply to this post by Seth G-2
On lundi 2 juillet 2018 20:55:11 CEST Seth G wrote:

> Hi all,
>
> A question on WFS GetFeature requests and the OUTPUTFORMAT type.
>
> All fields specified in gml_include_items are returned when creating non-GML
> outputs such as Shapefile and GeoJSON even when setting the PROPERTYNAME
> parameter in the request to reduce which fields should be added to the
> output. The docs at
> http://mapserver.org/output/ogr_output.html#layer-metadata note you can use
>  gml_include_items but makes no mention they can't be overridden with
> PROPERTYNAME .
>
> As OUTPUT format is an extension to WFS
> (http://mapserver.org/ogc/wfs_server.html#mapserver-wfs-extensions) is this
> logic by design?
>
> Maybe a note should be added to
> http://mapserver.org/ogc/wfs_server.html#to-do-items-and-known-limitations
> ?

Seth,

From a quick test, I don't see a difference in behaviour between OGR output
and native GML one, based on msautotest wfs_ogr.map

$ mapserv
QUERY_STRING="map=wfs_ogr.map&SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&TYPENAME=popplace&OUTPUTFORMAT=CSV&PROPERTYNAME=NAME&MAXFEATURES=1"
Content-Disposition: attachment; filename=result.csv
Content-Type: text/csv

WKT,NAME
"POINT (2281604.25 340848.9375)","""Tignish"


$ mapserv
QUERY_STRING="map=wfs_ogr.map&SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&TYPENAME=popplace&PROPERTYNAME=NAME&MAXFEATURES=1"
Content-Type: text/xml; subtype=gml/3.1.1; charset=UTF-8

<?xml version='1.0' encoding="UTF-8" ?>
<wfs:FeatureCollection
   xmlns:ms="http://mapserver.gis.umn.edu/mapserver"
   xmlns:gml="http://www.opengis.net/gml"
   xmlns:wfs="http://www.opengis.net/wfs"
   xmlns:ogc="http://www.opengis.net/ogc"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://mapserver.gis.umn.edu/mapserver http://
localhost/path/to/wfs_simple?
SERVICE=WFS&amp;VERSION=1.1.0&amp;REQUEST=DescribeFeatureType&amp;TYPENAME=popplace&amp;OUTPUTFORMAT=text/
xml;%20subtype=gml/3.1.1  http://www.opengis.net/wfs http://
schemas.opengis.net/wfs/1.1.0/wfs.xsd">
      <gml:boundedBy>
      <gml:Envelope srsName="EPSG:3978">
      <gml:lowerCorner>2281604.250000 340848.937500</gml:lowerCorner>
      <gml:upperCorner>2281604.250000 340848.937500</gml:upperCorner>
      </gml:Envelope>
      </gml:boundedBy>
    <gml:featureMember>
      <ms:popplace gml:id="popplace.BACMK">
        <ms:NAME>&quot;Tignish</ms:NAME>
      </ms:popplace>
    </gml:featureMember>
</wfs:FeatureCollection>

Even

--
Spatialys - Geospatial professional services
http://www.spatialys.com
_______________________________________________
mapserver-users mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/mapserver-users
Reply | Threaded
Open this post in threaded view
|

Re: WFS OUTPUTFORMATs and PROPERTYNAME

Seth G-2
Thanks Jukka and Even for the quick replies and suggestions.
It looks like the issue relates to the MSSQL driver used by the layers I'm testing with - apologies I jumped to the conclusion it wasn't implemented for OUTPUTFORMATs.

Findings are as follows:

- The output is correct when I use GML output and the MSSQL driver (which I believe defaults to OUTPUTFORMAT=text/xml) - PROPERTYNAME correctly limits which fields are in the GML/XML.
- For any other format PROPERTYNAME is ignored and all gml_include_items are returned. This includes Shapefile, Spatialite, and CSV (the same SQL is run on the database in both cases)
- Performance on the exports is very slow for Spatialite. I get one of these calls for every feature in the layer: "msMSSQL2008LayerGetShape called for shapeindex = 816457", and it takes 161.799s
- Shapefile also produces the msMSSQL2008LayerGetShape calls but runs in 26.595s
- Adding  &MAXFEATURES=1 works correctly in all cases, but the time to produce the exports is almost identical to a full export

All tests were carried out on the command line on a Windows server. I'm using MS 7.04.

Seth


--
web:http://geographika.co.uk
twitter: @geographika

On Mon, Jul 2, 2018, at 9:25 PM, Even Rouault wrote:

> On lundi 2 juillet 2018 20:55:11 CEST Seth G wrote:
> > Hi all,
> >
> > A question on WFS GetFeature requests and the OUTPUTFORMAT type.
> >
> > All fields specified in gml_include_items are returned when creating non-GML
> > outputs such as Shapefile and GeoJSON even when setting the PROPERTYNAME
> > parameter in the request to reduce which fields should be added to the
> > output. The docs at
> > http://mapserver.org/output/ogr_output.html#layer-metadata note you can use
> >  gml_include_items but makes no mention they can't be overridden with
> > PROPERTYNAME .
> >
> > As OUTPUT format is an extension to WFS
> > (http://mapserver.org/ogc/wfs_server.html#mapserver-wfs-extensions) is this
> > logic by design?
> >
> > Maybe a note should be added to
> > http://mapserver.org/ogc/wfs_server.html#to-do-items-and-known-limitations
> > ?
>
> Seth,
>
> From a quick test, I don't see a difference in behaviour between OGR output
> and native GML one, based on msautotest wfs_ogr.map
>
> $ mapserv
> QUERY_STRING="map=wfs_ogr.map&SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&TYPENAME=popplace&OUTPUTFORMAT=CSV&PROPERTYNAME=NAME&MAXFEATURES=1"
> Content-Disposition: attachment; filename=result.csv
> Content-Type: text/csv
>
> WKT,NAME
> "POINT (2281604.25 340848.9375)","""Tignish"
>
>
> $ mapserv
> QUERY_STRING="map=wfs_ogr.map&SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&TYPENAME=popplace&PROPERTYNAME=NAME&MAXFEATURES=1"
> Content-Type: text/xml; subtype=gml/3.1.1; charset=UTF-8
>
> <?xml version='1.0' encoding="UTF-8" ?>
> <wfs:FeatureCollection
>    xmlns:ms="http://mapserver.gis.umn.edu/mapserver"
>    xmlns:gml="http://www.opengis.net/gml"
>    xmlns:wfs="http://www.opengis.net/wfs"
>    xmlns:ogc="http://www.opengis.net/ogc"
>    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>    xsi:schemaLocation="http://mapserver.gis.umn.edu/mapserver http://
> localhost/path/to/wfs_simple?
> SERVICE=WFS&amp;VERSION=1.1.0&amp;REQUEST=DescribeFeatureType&amp;TYPENAME=popplace&amp;OUTPUTFORMAT=text/
> xml;%20subtype=gml/3.1.1  http://www.opengis.net/wfs http://
> schemas.opengis.net/wfs/1.1.0/wfs.xsd">
>       <gml:boundedBy>
>       <gml:Envelope srsName="EPSG:3978">
>       <gml:lowerCorner>2281604.250000 340848.937500</gml:lowerCorner>
>       <gml:upperCorner>2281604.250000 340848.937500</gml:upperCorner>
>       </gml:Envelope>
>       </gml:boundedBy>
>     <gml:featureMember>
>       <ms:popplace gml:id="popplace.BACMK">
>         <ms:NAME>&quot;Tignish</ms:NAME>
>       </ms:popplace>
>     </gml:featureMember>
> </wfs:FeatureCollection>
>
> Even
>
> --
> Spatialys - Geospatial professional services
> http://www.spatialys.com
_______________________________________________
mapserver-users mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/mapserver-users