PostgreSQL:将几何类型的原点更改为左上角

时间:2014-02-26 21:04:03

标签: postgresql

我正在使用 Postgresql 处理图像数据。我们通常将0,0作为图像的左上角。当我尝试将BOX对象存储在表中时, Postgresql 正在对第一个和第二个参数进行排序,因此原点是左下角。无论如何要改变 postgresql 原点应该在哪里?

我正在使用Posgresql 9.3。查询将类似于'INSERT INTO table(bbox)VALUES('(0,100),(100,0)')'

我想:

  • 左上角= 0,0
  • 右上角= 0,100
  • 左下= 100,0
  • 右下= 100,100

放入数据库的内容是:(100,100),(0,0)。所以它是90度关闭。

1 个答案:

答案 0 :(得分:1)

存储时取消y轴,加载时再次取消。这应该通过在x轴上镜像来将你的坐标空间(左上角的原点0,0)转换为PostgreSQL(左下角的原点0,0)。

regress=> SELECT box ('(0,100),(100,0)');
       box       
-----------------
 (100,100),(0,0)
(1 row)

regress=> SELECT box ('(0,-100),(100,0)');
       box        
------------------
 (100,0),(0,-100)
(1 row)

始终如一地执行此操作,并且所有数据库中的数据库工作仍然很好且一致。

或者,让Pg按照自己想要的方式存储盒子。无论哪种方式都表示相同的框,您可以在加载它时随意执行任何操作。