多点对点PostGIS


12

使用几何类型“多点”而不是“点”是否正常,因为我知道只用它存储一个点?

如何从多点转换为点?


有一个很好的答案说明了如何检查多部分几何并将列类型从多几何转换为单个几何,网址
John

Answers:


16

要将“多点”转换为“点”,必须使用ST_Dump,例如:

SELECT (ST_Dump(the_geom)).geom AS the_POINT_geom
  FROM MULTIPOINT_table;

关于使用“多”或单个几何的问题,我使用以下逻辑:

  • 如果每个几何都有不同的属性->单
  • 如果一组几何具有相同的属性->“多”

9

从单点中提取点的最简单方法MULTIPOINTST_GeometryN

SELECT ST_AsText(ST_GeometryN('MULTIPOINT ((1 1))', 1));
--POINT(1 1)

这避免了在无法使用设定返回功能的情况下的潜在问题。

有一些重要的优化仅可用于POINT键入几何形状(尤其是在PostGIS的早期版本中),因此,存储单点是POINT一种很好的做法。与相比,A POINT占用的空间约少25%MULTIPOINT

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.