如何制作只有一个初始点的 PostGIS LINESTRING

How to make a PostGIS LINESTRING with only one initial point

我有一项服务会在移动时发送 GPS 坐标,这些将添加到我的 PostgreSQL / PostGIS 数据库中。

现在,创建了一个 table,其中有一列是 Geometry("LINESTRING") 类型。不过,似乎要做出一个LINESTRING,至少需要两点。

但是,我一次只会得到一分。所以最初当服务开始向我发送位置数据时,它只有一个位置要发送。我将不得不等待第二次位置提交,以便至少获得两点。那么当我收到第一个点时我应该怎么做,因为我还不能从中得到一个 LINESTRING?

在这种情况下,对于我目前只有一分的初始案例,建议遵循什么程序?

单点线串似乎很奇怪。

但是像

这样的堕落者呢?
'LINESTRING(1.23 4.56,1.23 4.56)'::geometry

使用 ST_MakeLine 创建 LineStrings 您将能够临​​时将 一点线 添加到 LineString 几何列中:

快与脏:

CREATE TEMPORARY TABLE t (id int, geom Geometry(LINESTRING));  

INSERT INTO t VALUES (1, (SELECT ST_MakeLine('POINT(1 2)'::geometry)));
SELECT id,ST_AsText(geom) FROM t;

 id |    st_astext    
----+-----------------
  1 | LINESTRING(1 2)
(1 Zeile)

然后用相同的函数更新它也应该有效:

UPDATE t SET geom = ST_MakeLine(geom,'POINT(2 3)')
WHERE id = 1;

SELECT id,ST_AsText(geom) FROM t;

 id |      st_astext      
----+---------------------
  1 | LINESTRING(1 2,2 3)
(1 Zeile)