在postgresql中存储3D点阵。

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

我必须在postgres数据库中存储对象的逻辑三维坐标。每个对象一般有50-1000个点,可能永远不会超过10000.我的意图是在postgres中使用类型为real[][]的列。

我也看了postGis扩展,不知道它是否是合适的解决方案,但无法回答自己的几个问题。

  1. 1.我应该使用哪种空间参考--只需要逻辑坐标x,y,z,我可以指定左或右坐标系--这是最让我困惑的部分? 2.如何组织数据--线几何似乎是我的自然方式?
  2. 能否在数组中找到两点之间的距离(直线几何)?
postgresql postgis
1个回答
1
投票

这将是自然的使用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)
© www.soinside.com 2019 - 2024. All rights reserved.