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
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
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
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
Filter Encoding
OpenLayers – <Filter_Capabilities> not parsed
Part of a WFS 1.1.0 GetCapabilities response
19.05.2012 5 HSRS & CCSS GI2012
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
"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
"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
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
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
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
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
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
Thank you!
Hope to see you in Prague:
19.05.2012 14 HSRS & CCSS GI2012
Top Related