在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
我的观点有什么问题?
答案 0 :(得分:1)
当您实际拥有3D几何体时,即使您可能没有使用Z维度,看起来解析器也在假设2D几何体,除非您的点位于海平面(它是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)