2

In PostGIS 2.0 I try:

select ST_GeomFromGML(
  '<gml:Point srsName="urn:ogc:def:crs:EPSG::28992">
       <gml:pos>275466.0 565559.0 0.0</gml:pos>
   </gml:Point>');

This gives an error:

********** Error **********

ERROR: invalid GML representation
SQL state: XX000
Context: SQL function "st_geomfromgml" statement 1

What is wrong with my point?

milovanderlinden
  • 1,124
  • 1
  • 12
  • 27

1 Answers1

1

It looks like the parser is assuming a 2D geometry, when you actually have a 3D geometry, even though you might not be using the Z dimension, unless your point is at sea level (it is 0.0). If you explicitly state the dimension attribute, you will get the correct result:

SELECT ST_AsText(ST_GeomFromGML(
  '<gml:Point srsName="urn:ogc:def:crs:EPSG::28992">
       <gml:pos dimension="3">275466.0 565559.0 0.0</gml:pos>
   </gml:Point>'));

         st_astext
---------------------------
 POINT Z (275466 565559 0)
(1 row)
Mike T
  • 41,085
  • 18
  • 152
  • 203