[Geoserver-users] WFS geometry data swapped x/y

Dear users/developers of geoserver,
We built inspire dataset (SeaRegion). It has 3 wms layers which work without
problem and 3 wfs features (based on the same data). The geometry data of 2
features (Coastline & Shoreline) are swapped and the 3rd feature works well.
The wfs lines appears somewhere against Africa in place of the Netherlands.
The projection in the database if ok (EPSG:4258)
I trun the debug mode on the geoserver and I get the next logging. Any tips
are more than welcome. Thanks and goodbye

2019-01-31 14:44:13,917 DEBUG [org.geotools.jdbc] - CREATE CONNECTION
2019-01-31 14:44:13,922 DEBUG [org.geotools.jdbc] - SELECT
"inspire_sr"."coastline"."gid","inspire_sr"."coastline"."localid","inspire_sr"."coastline"."beginlifespanversion","inspire_sr"."coastline"."namespace","inspire_sr"."coastline"."type",encode(ST_AsEWKB("inspire_sr"."coastline"."_geometry"),'base64')
as "_geometry" FROM "inspire_sr"."coastline" INNER JOIN (SELECT DISTINCT
"inspire_sr"."coastline"."localid" FROM "inspire_sr"."coastline" ORDER BY
"inspire_sr"."coastline"."localid" ASC LIMIT 1) "coastline_1" ON
("coastline"."localid" = "coastline_1"."localid" ) ORDER BY
"inspire_sr"."coastline"."localid" ASC
2019-01-31 14:44:14,076 TRACE [org.geotools.data.complex.filter] - ENTRY
FeatureImpl:Coastline<CoastlineType
id=NL.KAD.TOP10NL.SR.Coastline.130471483>= sr:geographicalName null null
null
2019-01-31 14:44:14,080 DEBUG [org.geotools.util] - CRSConverterFactory can
be applied from Strings to CRS only.
2019-01-31 14:44:14,081 DEBUG [org.geotools.util] -
InterpolationConverterFactory can be applied from Strings to Interpolation
only.
2019-01-31 14:44:14,081 TRACE [org.geotools.data.complex.filter] - ENTRY
FeatureImpl:Coastline<CoastlineType
id=NL.KAD.TOP10NL.SR.Coastline.130471483>=[ComplexAttributeImpl:geographicalName=]
sr:segment/sr:ShoreSegment null
segment.coastline.fid-534b709_168a41cb49a_-7fff null
2019-01-31 14:44:14,082 DEBUG [org.geotools.util] - CRSConverterFactory can
be applied from Strings to CRS only.
2019-01-31 14:44:14,082 DEBUG [org.geotools.util] -
InterpolationConverterFactory can be applied from Strings to Interpolation
only.
2019-01-31 14:44:14,088 TRACE [org.geotools.data.complex.filter] - ENTRY
FeatureImpl:Coastline<CoastlineType
id=NL.KAD.TOP10NL.SR.Coastline.130471483>=[ComplexAttributeImpl:geographicalName=,
ComplexAttributeImpl:segment=[FeatureImpl:ShoreSegment<ShoreSegmentType
id=segment.coastline.fid-534b709_168a41cb49a_-7fff>=]]
sr:segment/sr:ShoreSegment/sr:geometry LINESTRING (3.963950921634013
51.38193453042329, 3.9633747253813385 51.381513463799514, 3.9628282962186137
51.38170540984772, 3.9588603275236944 51.38309910824923, ….3.96506401830659
51.38273352736728, 3.963950921634013 51.38193453042329)
geom.coastline.fid-534b709_168a41cb49a_-7fff LazyAttributeType:
http://www.opengis.net/gml/3.2:CurveType
2019-01-31 14:44:14,089 DEBUG [org.geotools.feature] - Adding attribute
http://inspire.ec.europa.eu/schemas/sr/4.0:geometry of type
http://www.opengis.net/gml/3.2:CurveType which is not a subtype of
http://www.opengis.net/gml/3.2:CurvePropertyType
2019-01-31 14:44:14,103 TRACE [org.geotools.data.complex.filter] - ENTRY
FeatureImpl:Coastline<CoastlineType
id=NL.KAD.TOP10NL.SR.Coastline.130471483>=[ComplexAttributeImpl:geographicalName=,
ComplexAttributeImpl:segment=[FeatureImpl:ShoreSegment<ShoreSegmentType
id=segment.coastline.fid-534b709_168a41cb49a_-7fff>=[GeometryAttributeImpl:geometry<CurveType
id=geom.coastline.fid-534b709_168a41cb49a_-7fff
crs=GEOGCS[&quot;ETRS89&quot;,
  DATUM[&quot;European Terrestrial Reference System 1989&quot;,
    SPHEROID[&quot;GRS 1980&quot;, 6378137.0, 298.257222101,
AUTHORITY[&quot;EPSG&quot;,&quot;7019&quot;]],
    TOWGS84[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
    AUTHORITY[&quot;EPSG&quot;,&quot;6258&quot;]],
  PRIMEM[&quot;Greenwich&quot;, 0.0,
AUTHORITY[&quot;EPSG&quot;,&quot;8901&quot;]],
  UNIT[&quot;degree&quot;, 0.017453292519943295],
  AXIS[&quot;Geodetic latitude&quot;, NORTH],
  AXIS[&quot;Geodetic longitude&quot;, EAST],
  AUTHORITY[&quot;EPSG&quot;,&quot;4258&quot;]]
id=geom.coastline.fid-534b709_168a41cb49a_-7fff>=LINESTRING
(3.963950921634013 51.38193453042329, 3.9633747253813385 51.381513463799514,
3.9628282962186137 51.38170540984772, …….. 3.963950921634013
51.38193453042329)]]] sr:waterLevel null null null
2019-01-31 14:44:14,112 DEBUG [org.geotools.xml] - AbstractFeature is
abstract

--
Sent from: http://osgeo-org.1560.x6.nabble.com/GeoServer-User-f3786390.html

Which versions of the WMS and WFS did you use? Which axis order is the original data in?

Ian

On Thu, 31 Jan 2019, 18:22 Basim via Geoserver-users <geoserver-users@lists.sourceforge.net wrote:

Dear users/developers of geoserver,
We built inspire dataset (SeaRegion). It has 3 wms layers which work without
problem and 3 wfs features (based on the same data). The geometry data of 2
features (Coastline & Shoreline) are swapped and the 3rd feature works well.
The wfs lines appears somewhere against Africa in place of the Netherlands.
The projection in the database if ok (EPSG:4258)
I trun the debug mode on the geoserver and I get the next logging. Any tips
are more than welcome. Thanks and goodbye

2019-01-31 14:44:13,917 DEBUG [org.geotools.jdbc] - CREATE CONNECTION
2019-01-31 14:44:13,922 DEBUG [org.geotools.jdbc] - SELECT
“inspire_sr”.“coastline”.“gid”,“inspire_sr”.“coastline”.“localid”,“inspire_sr”.“coastline”.“beginlifespanversion”,“inspire_sr”.“coastline”.“namespace”,“inspire_sr”.“coastline”.“type”,encode(ST_AsEWKB(“inspire_sr”.“coastline”."geometry"),‘base64’)
as "geometry" FROM “inspire_sr”.“coastline” INNER JOIN (SELECT DISTINCT
“inspire_sr”.“coastline”.“localid” FROM “inspire_sr”.“coastline” ORDER BY
“inspire_sr”.“coastline”.“localid” ASC LIMIT 1) “coastline_1” ON
(“coastline”.“localid” = “coastline_1”.“localid” ) ORDER BY
“inspire_sr”.“coastline”.“localid” ASC
2019-01-31 14:44:14,076 TRACE [org.geotools.data.complex.filter] - ENTRY
FeatureImpl:Coastline=[] sr:geographicalName null null
null
2019-01-31 14:44:14,080 DEBUG [org.geotools.util] - CRSConverterFactory can
be applied from Strings to CRS only.
2019-01-31 14:44:14,081 DEBUG [org.geotools.util] -
InterpolationConverterFactory can be applied from Strings to Interpolation
only.
2019-01-31 14:44:14,081 TRACE [org.geotools.data.complex.filter] - ENTRY
FeatureImpl:Coastline=[ComplexAttributeImpl:geographicalName=[]]
sr:segment/sr:ShoreSegment null
segment.coastline.fid-534b709_168a41cb49a
-7fff null
2019-01-31 14:44:14,082 DEBUG [org.geotools.util] - CRSConverterFactory can
be applied from Strings to CRS only.
2019-01-31 14:44:14,082 DEBUG [org.geotools.util] -
InterpolationConverterFactory can be applied from Strings to Interpolation
only.
2019-01-31 14:44:14,088 TRACE [org.geotools.data.complex.filter] - ENTRY
FeatureImpl:Coastline=[ComplexAttributeImpl:geographicalName=[],
ComplexAttributeImpl:segment=[FeatureImpl:ShoreSegment=[]]]
sr:segment/sr:ShoreSegment/sr:geometry LINESTRING (3.963950921634013
51.38193453042329, 3.9633747253813385 51.381513463799514, 3.9628282962186137
51.38170540984772, 3.9588603275236944 51.38309910824923, ….3.96506401830659
51.38273352736728, 3.963950921634013 51.38193453042329)
geom.coastline.fid-534b709_168a41cb49a
-7fff LazyAttributeType:
http://www.opengis.net/gml/3.2:CurveType
2019-01-31 14:44:14,089 DEBUG [org.geotools.feature] - Adding attribute
http://inspire.ec.europa.eu/schemas/sr/4.0:geometry of type
http://www.opengis.net/gml/3.2:CurveType which is not a subtype of
http://www.opengis.net/gml/3.2:CurvePropertyType
2019-01-31 14:44:14,103 TRACE [org.geotools.data.complex.filter] - ENTRY
FeatureImpl:Coastline=[ComplexAttributeImpl:geographicalName=,
ComplexAttributeImpl:segment=[FeatureImpl:ShoreSegment=[GeometryAttributeImpl:geometry<CurveType
id=geom.coastline.fid-534b709_168a41cb49a_-7fff
crs=GEOGCS["ETRS89",
DATUM["European Terrestrial Reference System 1989",
SPHEROID["GRS 1980", 6378137.0, 298.257222101,
AUTHORITY["EPSG","7019"]],
TOWGS84[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
AUTHORITY["EPSG","6258"]],
PRIMEM["Greenwich", 0.0,
AUTHORITY["EPSG","8901"]],
UNIT["degree", 0.017453292519943295],
AXIS["Geodetic latitude", NORTH],
AXIS["Geodetic longitude", EAST],
AUTHORITY["EPSG","4258"]]
id=geom.coastline.fid-534b709_168a41cb49a_-7fff>=LINESTRING
(3.963950921634013 51.38193453042329, 3.9633747253813385 51.381513463799514,
3.9628282962186137 51.38170540984772, ……… 3.963950921634013
51.38193453042329)]]] sr:waterLevel null null null
2019-01-31 14:44:14,112 DEBUG [org.geotools.xml] - AbstractFeature is
abstract


Sent from: http://osgeo-org.1560.x6.nabble.com/GeoServer-User-f3786390.html


Geoserver-users mailing list

Please make sure you read the following two resources before posting to this list:

If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer

Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Hi Basim

This quote from the documentation might assist you:

Axis ordering

WFS 1.0.0 servers return geographic coordinates in longitude/latitude (x/y) order, the most common way to distribute data. For example, most shapefiles adopt this order by default.

However, the traditional axis order for geographic and cartographic systems is the opposite—latitude/longitude (y/x)—and the later WFS specifications respect this. The default axis ordering support is:

  • Latitude/longitude—WFS 1.1.0 and WFS 2.0.0
  • Longitude/latitude—WFS 1.0.0

This may cause difficulties when switching between servers with different WFS versions, or when upgrading your WFS. To minimize confusion and increase interoperability, GeoServer has adopted the following assumptions when specifying projections in the following formats…

ref: https://docs.geoserver.org/latest/en/user/services/wfs/basics.html#axis-ordering

Regards

Peter

On Thu, 31 Jan 2019 at 20:42, Ian Turton <ijturton@anonymised.com> wrote:

Which versions of the WMS and WFS did you use? Which axis order is the original data in?

Ian

On Thu, 31 Jan 2019, 18:22 Basim via Geoserver-users <geoserver-users@lists.sourceforge.net wrote:

Dear users/developers of geoserver,
We built inspire dataset (SeaRegion). It has 3 wms layers which work without
problem and 3 wfs features (based on the same data). The geometry data of 2
features (Coastline & Shoreline) are swapped and the 3rd feature works well.
The wfs lines appears somewhere against Africa in place of the Netherlands.
The projection in the database if ok (EPSG:4258)
I trun the debug mode on the geoserver and I get the next logging. Any tips
are more than welcome. Thanks and goodbye

2019-01-31 14:44:13,917 DEBUG [org.geotools.jdbc] - CREATE CONNECTION
2019-01-31 14:44:13,922 DEBUG [org.geotools.jdbc] - SELECT
“inspire_sr”.“coastline”.“gid”,“inspire_sr”.“coastline”.“localid”,“inspire_sr”.“coastline”.“beginlifespanversion”,“inspire_sr”.“coastline”.“namespace”,“inspire_sr”.“coastline”.“type”,encode(ST_AsEWKB(“inspire_sr”.“coastline”."geometry"),‘base64’)
as "geometry" FROM “inspire_sr”.“coastline” INNER JOIN (SELECT DISTINCT
“inspire_sr”.“coastline”.“localid” FROM “inspire_sr”.“coastline” ORDER BY
“inspire_sr”.“coastline”.“localid” ASC LIMIT 1) “coastline_1” ON
(“coastline”.“localid” = “coastline_1”.“localid” ) ORDER BY
“inspire_sr”.“coastline”.“localid” ASC
2019-01-31 14:44:14,076 TRACE [org.geotools.data.complex.filter] - ENTRY
FeatureImpl:Coastline=[] sr:geographicalName null null
null
2019-01-31 14:44:14,080 DEBUG [org.geotools.util] - CRSConverterFactory can
be applied from Strings to CRS only.
2019-01-31 14:44:14,081 DEBUG [org.geotools.util] -
InterpolationConverterFactory can be applied from Strings to Interpolation
only.
2019-01-31 14:44:14,081 TRACE [org.geotools.data.complex.filter] - ENTRY
FeatureImpl:Coastline=[ComplexAttributeImpl:geographicalName=[]]
sr:segment/sr:ShoreSegment null
segment.coastline.fid-534b709_168a41cb49a
-7fff null
2019-01-31 14:44:14,082 DEBUG [org.geotools.util] - CRSConverterFactory can
be applied from Strings to CRS only.
2019-01-31 14:44:14,082 DEBUG [org.geotools.util] -
InterpolationConverterFactory can be applied from Strings to Interpolation
only.
2019-01-31 14:44:14,088 TRACE [org.geotools.data.complex.filter] - ENTRY
FeatureImpl:Coastline=[ComplexAttributeImpl:geographicalName=[],
ComplexAttributeImpl:segment=[FeatureImpl:ShoreSegment=[]]]
sr:segment/sr:ShoreSegment/sr:geometry LINESTRING (3.963950921634013
51.38193453042329, 3.9633747253813385 51.381513463799514, 3.9628282962186137
51.38170540984772, 3.9588603275236944 51.38309910824923, ….3.96506401830659
51.38273352736728, 3.963950921634013 51.38193453042329)
geom.coastline.fid-534b709_168a41cb49a
-7fff LazyAttributeType:
http://www.opengis.net/gml/3.2:CurveType
2019-01-31 14:44:14,089 DEBUG [org.geotools.feature] - Adding attribute
http://inspire.ec.europa.eu/schemas/sr/4.0:geometry of type
http://www.opengis.net/gml/3.2:CurveType which is not a subtype of
http://www.opengis.net/gml/3.2:CurvePropertyType
2019-01-31 14:44:14,103 TRACE [org.geotools.data.complex.filter] - ENTRY
FeatureImpl:Coastline=[ComplexAttributeImpl:geographicalName=,
ComplexAttributeImpl:segment=[FeatureImpl:ShoreSegment=[GeometryAttributeImpl:geometry<CurveType
id=geom.coastline.fid-534b709_168a41cb49a_-7fff
crs=GEOGCS["ETRS89",
DATUM["European Terrestrial Reference System 1989",
SPHEROID["GRS 1980", 6378137.0, 298.257222101,
AUTHORITY["EPSG","7019"]],
TOWGS84[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
AUTHORITY["EPSG","6258"]],
PRIMEM["Greenwich", 0.0,
AUTHORITY["EPSG","8901"]],
UNIT["degree", 0.017453292519943295],
AXIS["Geodetic latitude", NORTH],
AXIS["Geodetic longitude", EAST],
AUTHORITY["EPSG","4258"]]
id=geom.coastline.fid-534b709_168a41cb49a_-7fff>=LINESTRING
(3.963950921634013 51.38193453042329, 3.9633747253813385 51.381513463799514,
3.9628282962186137 51.38170540984772, ……… 3.963950921634013
51.38193453042329)]]] sr:waterLevel null null null
2019-01-31 14:44:14,112 DEBUG [org.geotools.xml] - AbstractFeature is
abstract


Sent from: http://osgeo-org.1560.x6.nabble.com/GeoServer-User-f3786390.html


Geoserver-users mailing list

Please make sure you read the following two resources before posting to this list:

If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer

Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users


Geoserver-users mailing list

Please make sure you read the following two resources before posting to this list:

If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer

Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

First of all thanks for your response.
We are using WFS version 2.0.0

The wms service works well and its version is 1.3.0

2/3 Wfs features have the swap problem and the 3rd feature (intertidalarea)
works ok.

http://geodata.nationaalgeoregister.nl/inspire/sr/wfs?&request=GetCapabilities&service=WFS

If you try to use the capabilities in the next QGIS plugin you’ll notice
that the coordinations of coastline & shoreline features are swapped.
The coordination of the interTidalArea not. See 2nd screen shot. They belong
both to the same workspace and they have one wfs.xml.

I send as attachment the logging of both features from geoserver and the
app-schema of both features.
Thanks for your time any way 
<http://osgeo-org.1560.x6.nabble.com/file/t384453/CoordinationProblemScreenShothot.jpg&gt;

--
Sent from: http://osgeo-org.1560.x6.nabble.com/GeoServer-User-f3786390.html

First of all thanks for your response.
We are using WFS version 2.0.0

The wms service works well and its version is 1.3.0

2/3 Wfs features have the swap problem and the 3rd feature (intertidalarea)
works ok.

http://geodata.nationaalgeoregister.nl/inspire/sr/wfs?&request=GetCapabilities&service=WFS

If you try to use the capabilities in the next QGIS plugin you’ll notice
that the coordinations of coastline & shoreline features are swapped.
The coordination of the interTidalArea not.

--
Sent from: http://osgeo-org.1560.x6.nabble.com/GeoServer-User-f3786390.html