我是PostGIS的新手。我希望在普通的XYZ图上有一个简单的有界(-200< x,y,z< 200)数据集1,000,000点。我需要的唯一查询是快速K最近邻居和所有邻居,使得距离小于< N.似乎PostGIS有很多我不需要的额外功能。
SELECT AddGeometryColumn ('my_schema','my_spatial_table','geom_c',4326,'POINT',3, false);
。那是对的吗?
谢谢!
答案 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的情况下实现距离函数,将三个坐标存储在三个数字字段中。