Pages: 1
- Sujet précédent - Spatialite + QGis : corruption géométries lors d'un ST_UNION - Sujet suivant
#1 Fri 04 June 2021 14:49
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 1002
Spatialite + QGis : corruption géométries lors d'un ST_UNION
Bonjour à tous,
Je travaille dans QGis avec des données d'une BD Spatialite.
Je dispose d'une table source (multipolygones), sur laquelle je souhaite fusionner les entités (ST_Union) selon un champ attributaire.
J’exécute donc une requête de ce type :
CREATE TABLE st_union AS
SELECT champs_unions,
st_multi(st_makevalid(st_union(geom))) as geom
FROM source
GROUP BY champs_unions;
J'execute ensuite ces requêtes pour définir cette table comme géométrique et calculer l'index spatial :
Code:
SELECT RecoverGeometryColumn('st_union', 'geom', 2154, 'MULTIPOLYGON', 'XY'); SELECT CreateSpatialIndex('st_union', 'geom');
Malheureusement, les géométries de la couche créée doivent être corrompue car les polygones s'affichent et disparaissent aléatoirement selon le niveau de zoom.
J'ai essayé de placer mon st_makevalid() à différents niveau dans la création du champ geom (par ex. : st_makevalid(st_multi(st_union(geom))) as geom) mais le résultat est corrompu dans tous les cas.
Avez-vous une idée de la cause de cette corruption ?
Sylvain M.
Hors ligne
#2 Fri 04 June 2021 15:06
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 1002
Re: Spatialite + QGis : corruption géométries lors d'un ST_UNION
Bon, j'ai fini par trouver la cause du problème.
Lors de la 1ere exécution de ma requête d'union, la création avait bien fonctionné et je n'avais pas de corruption.
Mais comme j'ai mis à jour les données sources, j'ai voulu recréer la table en faisant simplement avant :
Code:
DROP TABLE st_union;
Mais cela ne supprimait a priori pas l'index spatial.
Je viens de corriger mon problème en faisant, avant la recréation :
Code:
SELECT DisableSpatialIndex('st_union', 'geom'); DROP TABLE idx_st_union_geom;
Je suis preneur de vos conseils pour la méthode la plus "propre" !
Sylvain M.
Hors ligne
Pages: 1
- Sujet précédent - Spatialite + QGis : corruption géométries lors d'un ST_UNION - Sujet suivant