简单的PostGIS XYZ设置?

时间:2016-08-23 04:23:18

标签: postgresql postgis

我是PostGIS的新手。我希望在普通的XYZ图上有一个简单的有界(-200< x,y,z< 200)数据集1,000,000点。我需要的唯一查询是快速K最近邻居和所有邻居,使得距离小于< N.似乎PostGIS有很多我不需要的额外功能。

  • 我需要什么SRID?与脚或米无关的一个。
  • 我是对的,我需要使用该功能 ST_3DDistance用LIMIT K查询K个最近邻居?或最大距离为N。
  • 要添加列,我需要使用SELECT AddGeometryColumn ('my_schema','my_spatial_table','geom_c',4326,'POINT',3, false);。那是对的吗?
    • 3D点和PointZ有什么区别?
    • AddGeometryColumn会确保我的距离查询很快吗?
  • PostGIS是我用例的正确选择吗?我的数据库的其余部分已经与PostgreSQL集成了

谢谢!

1 个答案:

答案 0 :(得分:4)

  

我需要什么SRID?与脚或米无关的一个。

你不需要一个圣人。如果您的数据是坐标系,请找到正确的srid,否则使用0。

  

我是否正确,我需要使用函数ST_3DDistance来查询与LIMIT K的K个最近邻居?或者最大距离为N.

是的,你是对的。

  

要添加列,我需要使用SELECT AddGeometryColumn('my_schema','my_spatial_table','geom_c',4326,'POINT',3,false);.这是对的吗?

是的,但我使用0表示srid,而不是4326(表示度数)。

  

3D点和PointZ有什么区别?

PointZ是一个3d点。

  

AddGeometryColumn会确保我的距离查询很快吗?

AddGeometryColumn只会向表中添加一些约束,确保您插入的几何与列定义一致。

我认为您不需要它,但您可以尝试使用CREATE INDEX index_name ON schema.table使用gist(geom_col);

为您的几何列添加索引
  

PostGIS是我用例的正确选择吗?我的数据库的其余部分已经与PostgreSQL集成了

我认为这是最简单的方法,而不是“正确的”方式。

您还可以在没有postgis的情况下实现距离函数,将三个坐标存储在三个数字字段中。