<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML-esimuotoiltu Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
tt
        {mso-style-priority:99;
        font-family:"Courier New";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;
        color:black;}
span.HTML-esimuotoiltuChar
        {mso-style-name:"HTML-esimuotoiltu Char";
        mso-style-priority:99;
        mso-style-link:HTML-esimuotoiltu;
        font-family:Consolas;
        color:black;}
span.pre
        {mso-style-name:pre;}
span.Shkpostityyli22
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.Shkpostityyli23
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.Shkpostityyli24
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 2.0cm 70.85pt 2.0cm;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:763920215;
        mso-list-type:hybrid;
        mso-list-template-ids:-1016984866 -347160526 67829763 67829765 67829761 67829763 67829765 67829761 67829763 67829765;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-font-family:Calibri;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body bgcolor="white" lang="FI" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">The documentation of Geoserver is not quite right or clear at this point. Geoserver developers did believe some years
 ago that WFS 1.1.0 means flipping the axis always but of course it is not that simple. Currently Geoserver is handling axis order with WFS 1.1.0 and higher, with WMS 1.3.0, and with WCS 1.1.0 and higher as<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt;mso-list:l0 level1 lfo2"><![if !supportLists]><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman"">         
</span></span></span><![endif]><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Always longitude-latitude or easting-northing with the short EPSG:xxxx syntax<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt;mso-list:l0 level1 lfo2"><![if !supportLists]><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman"">         
</span></span></span><![endif]><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Axis order as it is defined in the EPSG database when the long urn syntax is used<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">You can test that yourself by using for example EPSG:2393 and EPSG:3067. The first one is Gauss-Krüger system with northing-easting
 axis order but the latter is UTM system with easting-northing. Geoserver does not flip the axis of srsname=urn:x-ogc:def:crs:EPSG:3067<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">No flip with the short syntax<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><a href="http://demo.opengeo.org/geoserver/wfs?service=wfs&version=1.1.0&request=GetFeature&typename=topp:states&maxfeatures=1&srsname=epsg:2393">http://demo.opengeo.org/geoserver/wfs?service=wfs&version=1.1.0&request=GetFeature&typename=topp:states&maxfeatures=1&srsname=epsg:2393</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext;mso-fareast-language:EN-US">Flip with the urn syntax<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><a href="http://demo.opengeo.org/geoserver/wfs?service=wfs&version=1.1.0&request=GetFeature&typename=topp:states&maxfeatures=1&srsname=urn:x-ogc:def:crs:EPSG:2393">http://demo.opengeo.org/geoserver/wfs?service=wfs&version=1.1.0&request=GetFeature&typename=topp:states&maxfeatures=1&srsname=urn:x-ogc:def:crs:EPSG:2393</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">No flip despite using the urn syntax because of official easting-northing axis<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><a href="http://demo.opengeo.org/geoserver/wfs?service=wfs&version=1.1.0&request=GetFeature&typename=topp:states&maxfeatures=1&srsname=urn:x-ogc:def:crs:EPSG:3067">http://demo.opengeo.org/geoserver/wfs?service=wfs&version=1.1.0&request=GetFeature&typename=topp:states&maxfeatures=1&srsname=urn:x-ogc:def:crs:EPSG:3067</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">TinyOWS behaves similarly<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">No-flip with short<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><a href="http://hip.latuviitta.org/cgi-bin/tinyows?service=wfs&version=1.1.0&maxfeatures=1&request=getfeature&typename=lv:mml_kunta100k_2011_p&srsname=EPSG:2393">http://hip.latuviitta.org/cgi-bin/tinyows?service=wfs&version=1.1.0&maxfeatures=1&request=getfeature&typename=lv:mml_kunta100k_2011_p&srsname=EPSG:2393</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Flip with long<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><a href="http://hip.latuviitta.org/cgi-bin/tinyows?service=wfs&version=1.1.0&maxfeatures=1&request=getfeature&typename=lv:mml_kunta100k_2011_p&srsname=urn:x-ogc:def:crs:EPSG:2393">http://hip.latuviitta.org/cgi-bin/tinyows?service=wfs&version=1.1.0&maxfeatures=1&request=getfeature&typename=lv:mml_kunta100k_2011_p&srsname=urn:x-ogc:def:crs:EPSG:2393</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">No flip with long because system is E-N<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><a href="http://hip.latuviitta.org/cgi-bin/tinyows?service=wfs&version=1.1.0&maxfeatures=1&request=getfeature&typename=lv:mml_kunta100k_2011_p&srsname=urn:x-ogc:def:crs:EPSG:3067">http://hip.latuviitta.org/cgi-bin/tinyows?service=wfs&version=1.1.0&maxfeatures=1&request=getfeature&typename=lv:mml_kunta100k_2011_p&srsname=urn:x-ogc:def:crs:EPSG:3067</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">EPSG:2393 and EPSG:3067 are perhaps the most tested coordinate systems for axis flipping in both Geoserver and Tinyows
 (Hi Oliviers and Andrea!) but mostly only for simple GetFeature requests. Unfortunately coordinates used inside the filters have not been tested so well and strange things can happen. In your case you use EPSG:3003 which is E-N system and Tinyows handles it
 correctly when it requires non-flipped coordinates. But you wrote that TinyOWS returns EPSG:3003 coordinates in reversed order for you and that is clearly a bug.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">-Jukka Rahkonen-<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext">aperi2007 wrote:<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt">Hi Jukka.<br>
I agreed with you that if the srs is epsg it should always repeort the correct axis order, but this , as report me from Olivier, seem to be a standard "defacto" (a standard coming from bottom).<br>
This is confirmed from this doc from Geoserver:<br>
<br>
<a href="http://docs.geoserver.org/latest/en/user/services/wfs/basics.html">http://docs.geoserver.org/latest/en/user/services/wfs/basics.html</a><br>
<br>
Where is reported this rule:<o:p></o:p></p>
<table class="MsoNormalTable" border="1" cellpadding="0">
<thead>
<tr>
<td style="padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal" align="center" style="text-align:center"><b>Representation<o:p></o:p></b></p>
</td>
<td style="padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal" align="center" style="text-align:center"><b>Assumed axis order<o:p></o:p></b></p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td style="padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal"><span class="pre"><span style="font-size:10.0pt;font-family:"Courier New"">EPSG:xxxx</span></span><o:p></o:p></p>
</td>
<td style="padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal">longitude/latitude (x/y)<o:p></o:p></p>
</td>
</tr>
<tr>
<td style="padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal"><span class="pre"><span style="font-size:10.0pt;font-family:"Courier New""><a href="http://www.opengis.net/gml/srs/epsg.xml#xxxx">http://www.opengis.net/gml/srs/epsg.xml#xxxx</a></span></span><o:p></o:p></p>
</td>
<td style="padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal">longitude/latitude (x/y)<o:p></o:p></p>
</td>
</tr>
<tr>
<td style="padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal"><span class="pre"><span style="font-size:10.0pt;font-family:"Courier New"">urn:x-ogc:def:crs:EPSG:xxxx</span></span><o:p></o:p></p>
</td>
<td style="padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal">latitude/longitude (y/x)<o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
So established that this is the rule, my second question is:<br>
A request with an srs espressed as a urn should have the coords in reversed axis order ?<br>
<br>
Actually tinyows need the request coords in not-reversed axis order however.<br>
<br>
A.<o:p></o:p></p>
<div>
<p class="MsoNormal">Il 15/03/2016 22:58, Rahkonen Jukka (MML) ha scritto:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre>Hi,<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>With EPSG:3003 the coordinates should never ever be reversed because it is officially an Easting-Northing system as you can see from <a href="http://epsg-registry.org/export.htm?wkt=urn:ogc:def:crs:EPSG::3003">http://epsg-registry.org/export.htm?wkt=urn:ogc:def:crs:EPSG::3003</a><o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>AXIS["easting (X)",east,ORDER[1]],<o:p></o:p></pre>
<pre>AXIS["northing (Y)",north,ORDER[2]],<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>So if you will find a difference in using WMS 1.1.x vs. 1.3.0 or WFS 1.0 vs. 1.1 or SRS in short format vs. long format with EPSG:3003 that's a bug.<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>-Jukka Rahkonen-<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>Andrea Peri wrote:<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>Hi,<o:p></o:p></pre>
<pre>thx to Olivier. I understand that the TinyOWS has a rule inherited from OGC that when the srs is in short version (ie: EPSG:3003) the axis are not reversed.<o:p></o:p></pre>
<pre>Instead when the srs is with long form (ie:<o:p></o:p></pre>
<pre>urn:x-ogc:def:crs:EPSG:3003) the axis are always reversed.<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>A last question I have is about the input.<o:p></o:p></pre>
<pre>Infact this rule seem to be supported also in input request.<o:p></o:p></pre>
<pre>So when the srs is espressed in the request in long form , I guess, the cocordinates should be given in reversed order.<o:p></o:p></pre>
<pre>But instead tinyows seem to accept instead the coordinate in not reversed axis order.<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
</blockquote>
<p class="MsoNormal"><span style="color:#1F497D">…</span><o:p></o:p></p>
</div>
</body>
</html>