Postpoint GIS multipunto vs punto


12

È normale usare il tipo di geometria "multipunto" anziché "punto" sapendo che lo uso per memorizzare solo un punto?

Come posso convertire da multipunto a punto?


C'è una buona risposta che spiega come verificare la presenza di geometrie multiparte e convertire i tipi di colonna da geometrie multiple
Giovanni

Risposte:


16

Per convertire "Multipoint" in "Point", è necessario utilizzare ST_Dump , ad esempio:

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

Sulla questione dell'utilizzo di "Multi" o geometrie singole, utilizzo questa logica:

  • se ogni geometria ha attributi diversi -> Singolo
  • se un gruppo di geometrie ha gli stessi attributi -> "Multi"

9

Il modo più semplice per estrarre un punto da un singolo punto MULTIPOINTè ST_GeometryN:

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

Ciò evita potenziali problemi in situazioni in cui non è possibile utilizzare una funzione di ritorno.

Vi sono alcune importanti ottimizzazioni disponibili solo per la POINTdigitazione di geometrie (specialmente nelle versioni precedenti di PostGIS), pertanto è consigliabile memorizzare singoli punti come POINTè buona prassi. A POINTutilizza anche circa il 25% di spazio in meno rispetto a MULTIPOINT.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.