Multipunto vs punto PostGIS

12

¿Es normal usar el tipo de geometría 'multipunto' en lugar de 'punto' sabiendo que lo uso para almacenar solo un punto?

¿Cómo puedo convertir de multipunto a punto?

Youssef
fuente
Hay una buena respuesta que explica cómo verificar las geometrías de varias partes y convertir los tipos de columnas de geometrías múltiples a simples en: gis.stackexchange.com/questions/28835/…
Juan

Respuestas:

16

Para convertir "Multipunto" en "Punto", debe usar ST_Dump , por ejemplo:

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

Sobre la cuestión de usar geometrías "múltiples" o simples, uso esta lógica:

  • si cada geometría tiene atributos diferentes -> Individual
  • si un grupo de geometrías tiene los mismos atributos -> "Multi"
Taber
fuente
9

La forma más fácil de extraer un punto de un punto único MULTIPOINTes ST_GeometryN:

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

Esto evita posibles problemas en situaciones en las que no se puede utilizar una función de retorno de conjunto.

Hay algunas optimizaciones importantes que están disponibles solo para POINTescribir geometrías (especialmente en versiones anteriores de PostGIS), por lo que almacenar puntos individuales POINTes una buena práctica. A POINTtambién usa aproximadamente un 25% menos de espacio que a MULTIPOINT.

dbaston
fuente