Wir haben Funktionen aus Umfragedaten, die teilweise 3D-Informationen enthalten.
Das häufigste Beispiel wäre ein 2D-LineString, der eine Straße darstellt und an bestimmten Stellen, an denen er vermessen wurde, Höheninformationen enthält. Andere Beispiele sind Dachformen - Ein MultiLineString, bei dem einigen Schlüsselpunkten eine vom Gebäudeplan zugewiesene Höhe zugewiesen wurde, jedoch nicht allen.
Welches Datenmodell würden Sie unter Verwendung von PostGIS empfehlen, um diese Art von Informationen zu speichern, um sie so zugänglich wie möglich zu halten, ohne interpolierte Informationen zu verlieren oder zu generieren?
Antworten:
Sie können die nicht gemessenen Z-Werte als speichern
'nan'::float8
. Beispielsweise:Dies kann jedoch zu Problemen führen, da NaN-Werte nicht immer von Softwareentwicklern getestet oder verarbeitet werden. Beispielsweise kann PostGIS die WKT-Version des oben genannten nicht analysieren
quelle
Erstellen Sie eine sekundäre Geometriespalte mit drei Dimensionen, um die Scheitelpunkte des Linienstreifens mit den dreifach ordinierten (dreifachen) Werten aufzunehmen. Damit dieses Schema funktioniert, werden die folgenden Annahmen angenommen:
Die gültige Geometrie sollte ausreichen, um doppelte Punkte in Linestrings und keine Selbstüberschneidung zuzulassen. Jede Koordinate verhält sich also wie ein Primerschlüssel, um den Scheitelpunkt in der Quellgeometrie zu identifizieren.
Dies gilt auch für das relationale Modell:
Für den Multilinestring-Fall kann es etwas schwieriger sein, da jetzt eine zusätzliche Tabelle mit einem zusammengesetzten Primärschlüssel vorhanden sein muss:
Der obige Primärschlüssel verhindert das Einfügen doppelter Geometrieindizes für eine bestimmte Geometrie. Der Trigger / Check verhindert ungültige Indizes. Auch Zeilen hier müssen aus Quelldaten stammen, wenn der Fremdschlüssel angegeben ist. Es gelten alle bisherigen Regeln.
Eine Vereinfachung wäre die Verwendung einer zusätzlichen Spalte, jedoch nicht der Art Geometrie, sondern des gleichen Typs von Z-Wert, der als Array deklariert ist.
quelle