Kann PostGIS eine Spalte auf Multipolygone und Polygone beschränken?

10

Ich verwende derzeit PostGIS 1.5.3, werde aber bald auf 2.0 aktualisieren. Bitte beachten Sie daher alle Unterschiede zwischen den beiden Versionen, die für die folgenden Fragen relevant sind.

  • Ist es möglich, eine Spalte des PostGIS-Geometrietyps zu erstellen, die das Einfügen von Polygonen und Multipolygonen ermöglicht, aber das Einfügen anderer Geometrietypen einschränkt, ohne die Einschränkung, die PostGIS beim Aufrufen von AddGeometryColumn generiert, manuell zu ändern?
  • Gibt es Gründe, dies nicht zu tun? Speichert PostGIS insbesondere Metadaten, die sich durch manuelles Ändern der Einschränkung negativ auswirken könnten? (Ich bin sehr neu in PostGIS. Verzeihen Sie mir, wenn die Idee, dass PostGIS Metadaten speichert, absurd ist.)
  • Wie hoch ist der Aufwand für die Verwendung von Multipolygonen für alles?

Mir ist bereits bekannt, dass ich ST_Multi verwende , um Polygone vor dem Einfügen in Multipolygone umzuwandeln. Wenn dies also nicht möglich oder keine gute Idee ist, werde ich das tun.

jpmc26
quelle

Antworten:

6

Für jede Ihrer Fragen ...

  1. Nicht ohne die Einschränkung manuell zu ändern.

  2. In der PostGIS-Geometrie sind einige Metadaten gespeichert. Technisch gibt es keinen Grund, dies nicht zu tun. Wenn Sie möchten, dass eine Spalte Polygon oder Multipolygon enthält, liegt dies bei Ihnen. Der allgemeine Grund für das Festhalten an einem Geometrietyp pro Spalte ist die Einfachheit, wenn die Tabelle wächst und / oder wenn die Tabelle massiv ist.

  3. Ein Multipolygon, das nur aus einem Polygon besteht, ist größer als nur das Polygon, jedoch nicht signifikant. Die Geschwindigkeit der räumlichen Abfrage (mit dem entsprechenden Index) des Multipolygons mit einem Polygon gegenüber nur einem Polygon wäre jedoch gleich.

Wenn die Spalte für meine Daten Polygone enthalten soll, muss die Spalte ein Multipolygon sein, da dies die Möglichkeit berücksichtigt, dass ein Multipolygon in die Spalte eingefügt wird. Führen Sie einfach ST_Multi aus, während Sie einfügen.

Staubbecher
quelle