我正在尝试构建一个带有Z坐标的边的PostGIS拓扑。我使用以下命令:
SELECT topology.CreateTopology('test_topo', 2154, 0, true);
SELECT topology.TopoGeo_AddLineString('test_topo', ST_GeomFromEWKT('SRID=2154;LINESTRINGZ(0 0 0, 1 1 0)'), 0);
SELECT topology.TopoGeo_AddLineString('test_topo', ST_GeomFromEWKT('SRID=2154;LINESTRINGZ(0 0.5 0.5, 1 0.5 0.5)'), 0);
SELECT topology.TopoGeo_AddLineString('test_topo', ST_GeomFromEWKT('SRID=2154;LINESTRINGZ(0 1 0, 1 0 0)'), 0);
SELECT topology.TopoGeo_AddLineString('test_topo', ST_GeomFromEWKT('SRID=2154;LINESTRINGZ(0 0.25 1, 1 0.25 1)'), 0);
在那之后,我希望在(0.5,0.5,0)中有一个新节点,因为第1和第3条线相交,其他线没有连接到任何东西。但我实际上得到了所有2D交点的节点,比如PostGIS Topo忽略了Z坐标来计算交点。请参见下图:
这是PostGIS拓扑的正常行为还是一个缺陷?如果是正常的,是否可以构建一个拓扑,其边在二维投影中重叠(即忽略Z坐标),但在三维视图中不相交?