我必须在postgres数据库中存储对象的逻辑三维坐标。每个对象一般有50-1000个点,可能永远不会超过10000.我的意图是在postgres中使用类型为real[][]的列。
我也看了postGis扩展,不知道它是否是合适的解决方案,但无法回答自己的几个问题。
这将是自然的使用PostGIS geometry(pointz)[]
作为数据类型,一个三维点的数组。
下面是一个例子,显示了该类型的常数,并计算了点之间的距离。
WITH x(p) AS (
SELECT '{POINT Z (1 2 3):POINT Z (3 0 2)}'::geometry(pointz)[]
)
SELECT st_3ddistance(p[1], p[2]) FROM x;
st_3ddistance
---------------
3
(1 row)