Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Fri 04 June 2021 14:49

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 981

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: 981

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

 

Pied de page des forums

Powered by FluxBB