[mapserver-users] WFS OUTPUTFORMAT and application/json
Seth G
sethg at geographika.co.uk
Thu Dec 20 04:40:52 PST 2018
Thanks to both of you for your replies.
The main reason to use "application/json" was to avoid making changes to a JavaScript client that remains GeoServer/MapServer neutral.
The hint to look at the outputFormats in http://localhost/mapserver/?&version=1.1.0&service=WFS&request=getcapabilities was useful.
It appears a client can use either the OUTPUTFORMAT NAME or MIMETYPE to send in the OUTPUTFORMAT parameter of a querystring.
<ows:Parameter name="outputFormat">
<ows:Value>text/xml; subtype=gml/3.1.1</ows:Value>
<ows:Value>shapezip</ows:Value>
<ows:Value>dbfzip</ows:Value>
<ows:Value>spatialite</ows:Value>
<ows:Value>application/json; subtype=geojson</ows:Value>
</ows:Parameter>
To resolve the issue I could simply remove the subtype from the mime-type (which was incorrect anyway according to https://sgillies.net/2014/05/22/the-geojson-media-type.html).
The final working OUTPUTFORMAT is:
OUTPUTFORMAT
NAME "application/json"
DRIVER "OGR/GEOJSON"
MIMETYPE "application/json"
FORMATOPTION "FORM=SIMPLE"
FORMATOPTION "STORAGE=memory"
END
WEB
METADATA
..
"wfs_getfeature_formatlist" "gml,geojson,shapezip,dbfzip,spatialite,application/json"
..
--
web:http://geographika.co.uk
twitter: @geographika
On Thu, Dec 20, 2018, at 9:14 AM, Rahkonen Jukka (MML) wrote:
> Hi,
>
> We use outputformat as follows. The mimetype is what is written to
> GetCapabilities, in our case
> <GetFeatureInfo><Format>application/json</Format>
> OGC service clients are supposed to use that as the format name. The
> problem that you have by using "application/json" as a name may be a bug
> but you can avoid it by using some other name. If you want to support
> both "application/json" and "application/json; subtype=geojson" you
> must write two outputformats.
>
> OUTPUTFORMAT
> NAME "geojson"
> MIMETYPE "application/json"
> DRIVER "TEMPLATE"
> FORMATOPTION " geojson_template.js"
> END
>
> -Jukka Rahkonen-
>
> -----Alkuperäinen viesti-----
> Lähettäjä: mapserver-users
> [mailto:mapserver-users-bounces at lists.osgeo.org] Puolesta Seth G
> Lähetetty: 20. joulukuuta 2018 0:28
> Vastaanottaja: mapserver-users at lists.osgeo.org
> Aihe: [mapserver-users] WFS OUTPUTFORMAT and application/json
>
> Hi list,
>
> Has anyone run into the following issue with using "application/json" in
> an OUTPUTFORMAT NAME as follows?
>
> OUTPUTFORMAT
> NAME "application/json"
> DRIVER "OGR/GEOJSON"
> MIMETYPE "application/json; subtype=geojson"
> FORMATOPTION "FORM=SIMPLE"
> FORMATOPTION "STORAGE=memory"
> END
>
> Then a request such as below:
>
> http://localhost/mapserver/?&SERVICE=WFS&REQUEST=GetFeature&VERSION=1.1.0&OUTPUTFORMAT=application/json&TYPENAME=layer&SRSNAME=EPSG:3857
>
> Causes the following error:
>
> msWFSGetFeature(): WFS server error. OUTPUTFORMAT 'application/json'
> does not have IMAGEMODE FEATURE, and is not permitted for WFS output.
>
> Adding a IMAGEMODE FEATURE (or RGBA) doesn't resolve the issue.
> I thought it may have been an issue with the slash in the NAME, but this
> works in other cases. Changing NAME to "geojson" also works fine, but
> I'm wondering why this occurs. GeoServer and TinyOWS both use
> "application/json" so it would be good if it worked for MapServer also.
>
>
> Seth
>
>
> --
> web:http://geographika.co.uk
> twitter: @geographika
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/mapserver-users
More information about the MapServer-users
mailing list