хранить массив 3D точек в postgresql - PullRequest
0 голосов
/ 06 мая 2020

Мне нужно сохранить логические трехмерные координаты объекта в базе postgres. Каждый объект обычно имеет от 50 до 1000 точек и, вероятно, никогда не превышает 10000. Я намерен использовать столбец типа real [] [] в postgres.

Я посмотрел также расширение postGis и задался вопросом, подходит ли это решение, но не смог ответить себе на несколько вопросов:

  1. Какую пространственную привязку мне следует использовать - нужны только логические координаты x, y, z могу ли я указать левую или правую систему координат - это то, что меня больше всего смущает? 2.Как организовать данные - линейная геометрия кажется мне естественной?
  2. Можно ли найти расстояние между двумя точками в массиве (линейная геометрия)?

1 Ответ

1 голос
/ 06 мая 2020

Было бы естественно использовать 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...