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

ポイントが海面 (0.0) にない限り、Z 次元を使用していなくても、実際に 3D ジオメトリがある場合、パーサーは 2D ジオメトリを想定しているように見えます。ディメンション属性を明示的に指定すると、正しい結果が得られます。

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 に答える