Ist es normal, den Geometrietyp "Mehrpunkt" anstelle von "Punkt" zu verwenden, wenn ich weiß, dass ich damit nur einen Punkt speichere?
Wie kann ich von Mehrpunkt zu Punkt konvertieren?
Ist es normal, den Geometrietyp "Mehrpunkt" anstelle von "Punkt" zu verwenden, wenn ich weiß, dass ich damit nur einen Punkt speichere?
Wie kann ich von Mehrpunkt zu Punkt konvertieren?
Antworten:
Um "Multipoint" in "Point" umzuwandeln, müssen Sie beispielsweise ST_Dump verwenden :
SELECT (ST_Dump(the_geom)).geom AS the_POINT_geom
FROM MULTIPOINT_table;
Bei der Frage der Verwendung von "Multi" - oder Einzelgeometrien verwende ich diese Logik:
Der einfachste Weg, einen Punkt aus einem einzelnen Punkt zu extrahieren, MULTIPOINT
ist ST_GeometryN
:
SELECT ST_AsText(ST_GeometryN('MULTIPOINT ((1 1))', 1));
--POINT(1 1)
Dies vermeidet potenzielle Probleme in Situationen, in denen eine Set-Return-Funktion nicht verwendet werden kann.
Es gibt einige wichtige Optimierungen, die nur zum POINT
Eingeben von Geometrien verfügbar sind (insbesondere in früheren Versionen von PostGIS). Daher wird das Speichern einzelner Punkte als POINT
bewährte Methode empfohlen . A POINT
verbraucht außerdem etwa 25% weniger Platz als a MULTIPOINT
.