Suite

Comment créer une table PostGIS avec support arc compatible avec QGIS ?

Comment créer une table PostGIS avec support arc compatible avec QGIS ?


Dans la base de données postgis, j'ai deux tables - disons "polygones" (gid, the_geom,MultiPolygon,srid=2180) et "lines" (gid, the_geom,MultLineString,srid=2180). J'aimerais utiliser "Ajouter un outil de chaîne circulaire" de qgis pour créer les mêmes arcs et enregistrer dans ces couches. À partir du Web et du message d'erreur qgis (le type de géométrie (MultiSurface) ne correspond pas au type de colonne (MultiPolygon); le type de géométrie (MultiCurve) ne correspond pas au type de colonne (MultiLineString) Je sais que je devrais avoir des tables dans postgis avec le type de géométrie MultiSurface et MultiCurve .

Comment dois-je faire cela? Puis-je ajouter ce type de type de géométrie respectivement à mes tables existantes, c'est-à-dire. MultiSurface en « polygones » et MultiCurve en « lignes » ? Si quelqu'un peut donner des solutions de travail en code SQL ?


Je n'utilise pas d'arcs pour le moment, mais j'utilise une table avec plusieurs géométries, cela pourrait donc répondre à vos besoins.

Ce que vous avez à faire est de déclarer votre table avec un type de géométrie sans contrainte. Mais soyez averti, car cela implique que vous savez réellement ce que vous faites, car cela supprimera une protection « à l'épreuve des stupidités » qui peut conduire à un comportement indésirable si elle n'est pas manipulée avec soin.

La façon de déclarer une colonne sans contrainte est d'utiliser ce modificateur de type générique dans l'instruction create

geom geometry(Geometry,2154) --L'entier n'est que le SRID cible

Vous pouvez même supprimer complètement le SRID

géométrie geom

Mais la folie peut s'ensuivre et certaines applications clientes pourraient ne pas être en mesure d'utiliser cette table facilement. (L'une de mes principales tables géographiques est déclarée ainsi et est parfaitement fonctionnelle et optimisée, mais je ne saurais trop insister sur l'avertissement "à manipuler avec précaution")


Plus spécifiquement pour QGIS, vous devrez faire une petite configuration pour que cette couche spécifique apparaisse dans la liste. Vous devez modifier la connexion Postgis comme suit. L'effet secondaire est un chargement lent si vous avez une énorme colonne geom sans contrainte.

Et enfin, veuillez noter que vous devrez ouvrir chaque type de données en tant que couche distincte dans QGIS lorsque vous les ajouterez. Je ne peux donc pas prédire si l'outil spécifique que vous avez mentionné fonctionnera, mais si le message d'erreur provient de la base de données, cela pourrait le faire. Si le message d'erreur provient de QGIS ou de l'outil, ce n'est peut-être pas le cas.


Merci pour votre réponse.

Voici le sql, qui ajoutera de nouvelles colonnes avec une géométrie "arcs" à mes tables existantes - "lignes" et "polygones":

ALTER TABLE lines ADD COLUMN the_geom geometry(CompoundCurve,2180); ALTER TABLE polygons ADD COLUMN the_geom geometry(CurvePolygon,2180);