PostGIS multipoint vs point

12

Est-il normal d'utiliser le type de géométrie «multipoint» au lieu de «point» sachant que je l'utilise pour stocker un seul point?

Comment puis-je convertir de multipoint en point?

Youssef
la source
Il existe une bonne réponse qui explique comment vérifier les géométries en plusieurs parties et convertir les types de colonnes de géométries multiples en géométries simples à: gis.stackexchange.com/questions/28835/…
John

Réponses:

16

Pour convertir "Multipoint" en "Point", vous devez utiliser ST_Dump , par exemple:

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

Sur la question de l'utilisation des géométries "Multi" ou simples, j'utilise cette logique:

  • si chaque géométrie a des attributs différents -> Unique
  • si un groupe de géométries a les mêmes attributs -> "Multi"
Taber
la source
9

La façon la plus simple d'extraire un point d'un point unique MULTIPOINTest ST_GeometryN:

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

Cela évite les problèmes potentiels dans les situations où une fonction de retour d'ensemble ne peut pas être utilisée.

Certaines optimisations importantes ne sont disponibles que pour POINTles géométries de type (en particulier dans les versions antérieures de PostGIS), afin de stocker des points uniques, conformément aux POINTbonnes pratiques. A POINTutilise également environ 25% d'espace en moins que a MULTIPOINT.

dbaston
la source