Nous avons des fonctionnalités de données d'enquête qui contiennent des informations 3D partielles.
L'exemple le plus courant serait un LineString 2D représentant une route, qui contient des informations d'altitude à certains points où il a été arpenté. D'autres exemples incluent les formes de toit - Une chaîne MultiLineString où certains points clés ont une élévation attribuée par rapport au plan de construction, mais pas tous.
À l'aide de PostGIS, quel modèle de données recommanderiez-vous pour stocker ce type d'informations, afin de les rendre aussi accessibles que possible, sans perdre ou générer des informations interpolées?
Réponses:
Vous pouvez stocker les valeurs Z non mesurées sous la forme
'nan'::float8
. Par exemple:Cependant, cela pourrait vous poser des problèmes car les valeurs NaN ne sont pas toujours testées ou gérées par les développeurs de logiciels. Par exemple, PostGIS ne peut pas analyser la version WKT de ce qui précède
la source
Créez une colonne de géométrie secondaire à trois dimensions pour contenir les sommets de la chaîne de lignes contenant les valeurs à trois ordonnées (triple). Pour que ce schéma fonctionne, les hypothèses suivantes sont supposées:
La géométrie valide devrait être suffisante pour ne pas autoriser les points dupliqués dans les chaînes de lignes et aucune auto-intersection. Ainsi, chaque coordonnée se comportera comme une clé de primery pour identifier le sommet dans la géométrie source.
Cela est également vrai du modèle relationnel:
Pour le cas multiligne, les choses peuvent être un peu plus difficiles, car il doit maintenant y avoir une table supplémentaire avec une clé primaire composite:
La clé primaire ci-dessus empêchera l'insertion d'index de géométrie dupliqués pour une géométrie donnée. Le déclencheur / contrôle empêchera les index invalides. Les lignes ici doivent également provenir des données source étant donné la clé étrangère. Toutes les règles précédentes s'appliquent.
Une simplification serait l'utilisation de sur colonne supplémentaire mais pas de géométrie aimable mais du même type de valeur Z déclarée comme tableau.
la source