尝试创建两条带有Postgis的平行线的路线

问题描述 投票:0回答:1

所以我刚开始使用SQL和PostGIS。对于此练习,我需要创建一个具有主键和几何字段的表。


Insert into paradezug Values (1,ST_Transform( st_linefromtext('linestring(13.40044325726135 52.51884104088853 , 13.40109986093854 52.51827594967714)',4326),25833));

Insert into paradezug Values (2,ST_Transform( st_linefromtext('LineString(13.40109986093854 52.51827594967714 , 13.39917356833286 52.51769543984515)',4326),25833));

Insert into paradezug Values (3,ST_Transform( st_linefromtext('linestring(13.39917356833286 52.51769543984515 , 13.37837611723877 52.5162977964313)',4326),25833));

这很好,给了我可以在QGIS中导入和查看的路线。

现在,我必须在左侧和右侧添加一条偏移量为250m的线。

我尝试过:

SELECT ST_AsText(ST_OffsetCurve(geom,
    -250, 'quad_segs=4 join=round')) As notsocurvy
    FROM ST_GeomFromText(
'linestring(13.40044325726135 52.51884104088853 , 13.40109986093854 52.51827594967714)') As geom;

SELECT ST_AsText(ST_OffsetCurve(geom,
    -250, 'quad_segs=4 join=round')) As notsocurvy
    FROM ST_GeomFromText(
'LineString(13.40109986093854 52.51827594967714 , 13.39917356833286 52.51769543984515)') As geom;

SELECT ST_AsText(ST_OffsetCurve(geom,
    -250, 'quad_segs=4 join=round')) As notsocurvy
    FROM ST_GeomFromText(
'linestring(13.39917356833286 52.51769543984515 , 13.37837611723877 52.5162977964313)') As geom;

成功返回某物。但是由于我是SQL的新手,所以我不太了解如何从这里继续前进。

任何帮助将不胜感激!

sql postgresql postgis qgis
1个回答
0
投票

所以ST_OffsetCurve输出从现有几何图形派生的新几何图形。

您首先使用列名计算曲线偏移,并且该列来自手动创建的几何:

SELECT ST_AsText(ST_OffsetCurve(geom,
    -250, 'quad_segs=4 join=round')) As notsocurvy
FROM ST_GeomFromText(
'linestring(13.39917356833286 52.51769543984515 , 13.37837611723877 52.5162977964313)') As geom;

如果要从表中导出曲线,可以在这里引用它:

SELECT ST_AsText(ST_OffsetCurve(geom,
    -250, 'quad_segs=4 join=round')) As notsocurvy
FROM paradezug ;

从那里,一种选择是将曲线偏移量添加到同一表格。 id应该由一个序列填充(搜索serialidentity),因此您可以在insert语句中简单地忽略它。另外,您不需要插入文本,而是插入几何图形,因此让我们删除st_asText函数:

INSERT INTO paradezug (geom)
SELECT ST_OffsetCurve(geom,
        -250, 'quad_segs=4 join=round') As geom
FROM paradezug ;

现在,您可能希望在运行此查询之前跟踪哪条线是中心线,并确保不存在偏移线。

© www.soinside.com 2019 - 2024. All rights reserved.