GI2012 sredl+team-implementing ows-v2

14
Implementing of OGC and INSPIRE Standards From Theory to Reality Jáchym Čepický, Štěpán Kafka & Tomáš Mildorf, Michal Šrédl, Přemysl Wohnout 19.05.2012 1 HSRS & CCSS GI2012

description

12. Sächsisches GIS-Forum Dresden: 18./19.05.2012 GI2012-OpenDataPolicies-FORUM

Transcript of GI2012 sredl+team-implementing ows-v2

Page 1: GI2012 sredl+team-implementing ows-v2

Implementing of OGC and INSPIRE Standards

From Theory to Reality

Jáchym Čepický, Štěpán Kafka

& Tomáš Mildorf, Michal Šrédl, Přemysl Wohnout

19.05.2012 1 HSRS & CCSS GI2012

Page 2: GI2012 sredl+team-implementing ows-v2

System overview

Web Client HSLayers (JavaScript) - OpenLayers - Ext

Server proxy Proxy4ows (Python) - Mapserver / MapScript - Gdal / Ogr - OwsLib

OWS Servers MapServer GeoServer InterGraph ArcGis

WMS++

WMS WMS-T WFS, FES WCS ...

Technology behind the CCSS Geoportal

19.05.2012 2 HSRS & CCSS GI2012

Page 3: GI2012 sredl+team-implementing ows-v2

Mission

Challanges & Results

Display huge WFS data in web client → Proxy4ows

Filter Encoding (FES) → OpenLayers, OwsLib, MapServer patches

WFS Axis order issue → MapServer, OwsLib patches

→ some issues still remain

19.05.2012 3 HSRS & CCSS GI2012

Page 4: GI2012 sredl+team-implementing ows-v2

Proxy4ows

Transforms WFS and WCS to WMS For WMS, it transforms the coordinate systems [ http://proxy4ows.org ] Will be presented in Prague

19.05.2012 4 HSRS & CCSS GI2012

Page 5: GI2012 sredl+team-implementing ows-v2

Filter Encoding

OpenLayers – <Filter_Capabilities> not parsed

Part of a WFS 1.1.0 GetCapabilities response

19.05.2012 5 HSRS & CCSS GI2012

Page 6: GI2012 sredl+team-implementing ows-v2

Filter Encoding

OpenLayers – <Filter_Capabilities> not parsed

Desired result

Patch proposed - Comparison filters & related stuff - WFS 1.0.0 and 1.1.0

19.05.2012 6 HSRS & CCSS GI2012

Page 7: GI2012 sredl+team-implementing ows-v2

"wfs_filter" '<ogc:PropertyIsEqualTo xmlns:ogc="http://www.opengis.net/ogc"> <ogc:PropertyName>STUPEN</ogc:PropertyName> <ogc:Literal>3</ogc:Literal> </ogc:PropertyIsEqualTo>'

MapServer – Filter produced as invalid XML

Filter Encoding

FILTER=<ogc:Filter> <ogc:PropertyIsEqualTo+xmlns:ogc="http://www.opengis.net/ogc"> <ogc:PropertyName>STUPEN</ogc:PropertyName> <ogc:Literal>3</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter>

Mapfile

Mapserver code

Outgoing filter

19.05.2012 7 HSRS & CCSS GI2012

Page 8: GI2012 sredl+team-implementing ows-v2

"wfs_filter" '<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"> <ogc:PropertyIsEqualTo> <ogc:PropertyName>STUPEN</ogc:PropertyName> <ogc:Literal>3</ogc:Literal>

</ogc:PropertyIsEqualTo> </ogc:Filter>'

MapServer – Filter produced as invalid XML

Filter Encoding

FILTER=<ogc:Filter+xmlns:ogc="http://www.opengis.net/ogc"> <ogc:PropertyIsEqualTo> <ogc:PropertyName>STUPEN</ogc:PropertyName> <ogc:Literal>3</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter>

Mapfile

One-char patch

Outgoing filter

19.05.2012 8 HSRS & CCSS GI2012

Page 9: GI2012 sredl+team-implementing ows-v2

WFS Axis Order

WFS 1.0.0

Axis order clearly defined in standard (East, North)

<wfs:LatLongBoundingBox> causes confusion sometimes

WFS 1.1.0

As widely accepted, axis order should follow the definition of the particular CRS

However, not a strict requirement in the standard

Implementations of standards differ, heaps of confusion

Axis order depends not only on the CRS, but also on the notation used

19.05.2012 9 HSRS & CCSS GI2012

Page 10: GI2012 sredl+team-implementing ows-v2

WFS Axis Order

Axis order depends on the SRS used

Check http://www.epsg-registry.org/ for definitions

BBOX url parameter

Sometimes you need to negotiate with the service providers to follow the definition, as otherwise no data may be returned

Data themselves

MapServer did not understand, that the axis order depends on the SRS used, data was rotated by 90°

MapServer patch provided

WFS 1.1.0

19.05.2012 10 HSRS & CCSS GI2012

Page 11: GI2012 sredl+team-implementing ows-v2

WFS Axis Order

Axis order depends on the notation of the SRS as well:

EPSG:EPSG_code

→ WFS 1.0.0 style – fixed East, North

urn:EPSG:geographicCRC:epsg_code

→ Follow-up the definition

http://www.opengis.net/gml/srs/epsg.xml#EPSG_code

→ We don't know

WFS 1.1.0

19.05.2012 11 HSRS & CCSS GI2012

Page 12: GI2012 sredl+team-implementing ows-v2

WFS Axis Order

More details here:

http://les-ejk.cz/2012/03/mapserver-as-wfs-1-1-0-client-not-suitable/

MapServer as WFS 1.1.0 Client

19.05.2012 12 HSRS & CCSS GI2012

Page 13: GI2012 sredl+team-implementing ows-v2

Patches available

OpenLayers – <Filter_Capabilities> not parsed

http://trac.osgeo.org/openlayers/ticket/3652

(Patch proposed)

MapServer – Filter produced as invalid XML

http://trac.osgeo.org/mapserver/ticket/4171

(Expected in 6.2)

MapServer – WFS Axis order

http://trac.osgeo.org/mapserver/ticket/4228

(Expected in 6.2)

OwsLib patches already deployed

19.05.2012 13 HSRS & CCSS GI2012

Page 14: GI2012 sredl+team-implementing ows-v2

Thank you!

Hope to see you in Prague:

19.05.2012 14 HSRS & CCSS GI2012