Message posté par : T. Rossini
----------------------------------------
Salut,
difficile de dire ce qui cloche avec votre requête
si vous n'en donnez pas un extrait.
Cela dit, votre problème de perte d'unicité
provient du fait que vous utilisez st_dump,
qui explose vos multi polygones en plusieurs
polygones et donc repetant l'ID du multi_polygone
original.
Seule solution, pour avoir une seul ligne par id,
qui regrouperait tous les morceaux de polygones
intersectés, supprimez l'appel à st_dump et conservez
des multipolygones.
Si st_intersection renvoie une geometrycollection,
vous pouvez "forcer" son type en multipolygon
en utilisant la fonction ST_CollectionHomogenize.
Il se peut par contre que st_intersection renvoie
des collections de géométries composées de plusieurs type.
Dans ce cas, vous pouvez compter sur ST_CollectionExtract
(en filtrant pour ecarter les geometries résultantes qui sont vides,
exemple, st_intresection ne renvoyant que des lignes ou des points).
Mais même avec votre traitement actuel
vous ne perdez pas vraiment l'ID IGN puisqu'il est conservé
pour chaque polygone, il est seulement répété.
C'est sûr vous perdez l'unicité, mais est ce que vous en avez vraiment
besoin ?
Si oui, à la limite,
peut être pouvez vous créer une clé primaire composite
id+géométrie ?
Tout cela pour dire, que définir une clé primaire n'a pas toujours de sens,
tout dépend de ce que vous faites avec vos données.
Si par exemple vous avez besoin de cet ID pour joindre votre vue avec
autre chose, le fait qu'il définisse la clé primaire peut ne pas être important.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325811#p325811
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : Nicolas Vaginay
----------------------------------------
Bonjour,
J'ai intégré des données vectorielles de l'IGN (OCS GE) dans une base postgreSQL. En m'appuyant sur le descriptif de livraison, j'ai défini la clé primaire sur la colonne "id". Cet identifiant est stable d'une version à une autre. Les objets sont de type Multipolygon.
Les données sont fournies à l'échelon départemental. Comme je n'en ai besoin que sur un territoire plus petit, j'ai procédé à leur découpage en utilisant ce territoire comme pochoir (fonction ST_Intersection). Le résultat est stocké dans une vue matérialisée.
J'ai d'abord remarqué que certaines portions de mon territoire manquaient dans cette vue. Elles correspondaient toujours à des polygones initiaux non entièrement inclus dans mon territoire. Pour autant, d'autres polygones "à cheval" étaient bien découpés. Sans parvenir à expliquer vraiment ce problème, j'ai trouvé une parade en imbriquant la fonction ST_Intersection dans la fonction ST_Dump, qui crée des objets Polygon.
Tout est désormais correctement découpé mais quand un polygone qui intersecte mon territoire à au moins deux endroits différents (cf fichier joint), des polygones distincts sont créés avec le même id. Et QGIS de ne pas pouvoir ouvrir la vue au motif que cet id n'est plus unique.
Savez-vous comment je peux gérer ce problème sans perdre l'id de l'IGN? En dernier recours, je pourrai conserver les polygones intersectant mon territoire sans les découper. Visuellement, c'est moins "propre" et ça ne permet pas de recalculer les surfaces (par commune notamment).
Je vous remercie pour votre aide.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325792#p325792
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : Ben22
----------------------------------------
Bonjour,
Une piste peut-être : vérifiez les droits sur les vues geometry_columns / geography_columns et la table spatial_ref_sys dans le schema public.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325704#p325704
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : Abdoulayi111
----------------------------------------
Bonjour,
Dans la base de données de mon entreprise, j'ai créé des utilisateurs avec différents droits
Cependant, lorsque j'enlève le droit de superutilisateur à un utilisateur en lui laissant simplement les droits d'usage (GRANT USAGE).
La personne arrive à voir les tables depuis QGIS mais elle n'arrive pas à afficher en tant que des couches géographiques.
Dans Qgis l'utilisateur arrive à charger la couche mais même le contenu de la table ne lui est pas accessible.
Seule quant elle a les droits superutilisateurs qu'elle arrive à voir les couches en tant couche géographiques et visualiser le contenu des tables attributaires.
Voici pourtant les requêtes que j'ai testé.
Merci de votre aide.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325703#p325703
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : erwannlh
----------------------------------------
salut,
merci :)
je vais devoir me pencher un peu en détail la dessus pour etre sur de bien comprendre tout ça, mais j'ai le départ :)
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325701#p325701
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : T. Rossini
----------------------------------------
Salut,
comme valeur par défaut c'est tout à fait possible.
Exemple :
-----------------
Code :
create temp table bar(v text, i double precision default random());
INSERT INTO bar(v) VALUES ('toto'), ('tata');
SELECT * FROM bar;
-----------------
Une troisième solution serait de créer une "colonne" calculée
avec une fonction comme suit :
-----------------
Code :
CREATE OR REPLACE FUNCTION ma_colonne_calculée(t ma_table)
RETURNS INTEGER
AS $$
. code du calcul de la fonction
$$ LANGUAGE ...
-----------------
(Cette fonction prend comme argument une ligne de ma_table,
dans le corps de la fonction on a accès à toutes ses colonnes)
Ensuite on tire parti du fait qu'il y une façon alternative d'appeler ce genre de fonction
dans postgresql :
-----------------
Code :
SELECT m_table.ma_fonction;
-----------------
Comme toute colonne calculée, celle-ci ne peut pas être mise à jour
puisqu'elle n'est que le résultat d'un calcul dépendant des autres colonnes
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325659#p325659
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : neskuik01
----------------------------------------
Bonjour,
Non je ne peux pas passer par une vue ( je travail avec géoconcept et les vues sont mal supportées par le logiciel dans le cadre des mises à jours journalisé). Je me demandais juste si il était possible par exemple de mettre une formule comme valeur par défaut par ex.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325655#p325655
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : Sylvain M.
----------------------------------------
Le plus simple / rapide peut être de passer par une vue ?
-----------------
Code :
CREATE VIEW nom_schema.nom_vue AS
SELECT t.*,
left(colonne2,2) || colonne3 as colonne1
FROM nom_schema.nom_table as t
-----------------
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325651#p325651
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : neskuik01
----------------------------------------
Bonjour,
j'ai des colonnes au sein d'une table auxquelles je souhaite appliquer des formules (genre colonne1= concaténation (left(colonne2,2), colonne 3). Est-ce qu'il faut que je passe par une fonction de type AFTER INSERT/UPDATE ou bien il y'a plus rapide (je travail avec pgadmin) ?
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325646#p325646
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : T. Rossini
----------------------------------------
Salut,
unaryunion fait la même chose qu'union,
à ceci près qu'il fusionne aussi les composants
de ses géomètres d'entrées, comme les geometrycollections et les multi-polygones.
Exemple :
select
st_astext(st_unaryunion(geom))
from
(values ('MULTI POLYGON(((0 0, 0 1, 1 1, 1 0, 0 0)), ((0.5 0, 1.5 0, 1.5 1, 0.5 1, 0.5 0)))'))
AS foo(geom)
UNION
select
st_astext(st_union(geom))
from
(values ('MULTI POLYGON(((0 0, 0 1, 1 1, 1 0, 0 0)), ((0.5 0, 1.5 0, 1.5 1, 0.5 1, 0.5 0)))'))
AS foo(geom)
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325644#p325644
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net