2

在 PostGIS 2.0 中,我尝试:

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

这给出了一个错误:

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

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

我的观点有什么问题?

4

1 回答 1

1

看起来解析器假设一个 2D 几何,当你实际上有一个 3D 几何时,即使你可能没有使用 Z 维度,除非你的点在海平面上(它是 0.0)。如果你明确声明维度属性,你会得到正确的结果:

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)
于 2012-07-13T03:46:47.660 回答