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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 26 March 2009 17:58

pap
Participant occasionnel
Date d'inscription: 13 Jun 2007
Messages: 40

[MI7.5] Découper des polygones et garder des identifiants uniques ????

Bonjour,

Je vous soumets un problème relatif à la découpe de polygones et à l'identifiant uniques des objets.

Donc, quand on découpe un polygone (objet cible avec un identifiant UNIQUE) en deux (par exemple), dans la table de données une ligne se grise (ligne de l'objet cible) et deux nouvelles lignes apparaissent en bas de tableau et qui correspondent aux deux polygones issus de la découpe.
Les données sont alors dédoublées tout comme l'identifiant !

Mon problème et donc le suivant :

J'ai des découpes à faire dans une table. Seulement quelques polygones vont être coupé en deux ou plus de parties.
Je ne veux pas changer les identifiants des objets non découpés.
Je veux que SEULS les objets découpés prennent de nouvelles valeurs d'identifiant uniques.

Comment faire ???

La fonction ROWID (par mise à jour colonne) réaffecte un nouvel identifiant à tous les objets de ma table, donc cette solution ne réponds pas à mon problème !!!

Si vous avez des idées, je suis preneur.


Merci de votre aide.

PAP

Hors ligne

 

#2 Thu 26 March 2009 19:32

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MI7.5] Découper des polygones et garder des identifiants uniques ????

Bonjour
Le plus simple: sélectionner les nouveaux polygones (ils sont en fin de table) et mettre à jour cette sélection avec une formule genre 10000+rowid

Hors ligne

 

#3 Thu 26 March 2009 20:01

Daniel
Membre
Lieu: Victoriaville, Québec
Date d'inscription: 6 Sep 2005
Messages: 2028

Re: [MI7.5] Découper des polygones et garder des identifiants uniques ????

Bonjour
Maurice, en théorie, si on ne compact pas la table, les numéros des polygones inchangés devraient garder le même identifiant?

Daniel

Dernière modification par Daniel (Thu 26 March 2009 20:02)


De retour à la géomatique

Hors ligne

 

#4 Thu 26 March 2009 22:46

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MI7.5] Découper des polygones et garder des identifiants uniques ????

Daniel,
Tu as raison smile
Il suffit de mettre à jour par rowid AVANT de compacter (éventuellement)
Dans le doute, cependant, pour éviter des "accidents", je préfère ne pas prendre de risque

Hors ligne

 

#5 Fri 27 March 2009 08:18

pap
Participant occasionnel
Date d'inscription: 13 Jun 2007
Messages: 40

Re: [MI7.5] Découper des polygones et garder des identifiants uniques ????

Bonjour,

Merci de vos réponses.

Je viens de faire l'essais, en compactant la table après découpe, les identifiants ne changent pas.
Ainsi, un polygone avec un identifiant unique 200 "produit" autant d'objets que de découpes avec autant d'identifiant 200 !

Effectivement, un bricolage avec une formule genre 10000+rowid pourrait convenir (via une sélection finale sur les identifiants unique après toutes les découpes). Toutefois, dans ma manip, les parties d'un polygone qui seront découpées seront de petites parties et je souhaiterais conserver l'identifiant initial sur la "grosse partie parent" et attribuer un nouvel identifiant aux parties "enfants" coupées.

Pour résumer :

- J'ai 3000 polygones (ID de 1 à 3000).
- J'ai un premier gros polygone dit "Parent" à découper avec un ID 100.
- Je découpe deux petites parties de ce gros polygone "parent".
- J'aimerai avoir en final (et de manière la plus automatisée possible)  3 polygones :  mon polygone "Parent" initial, tronqué, avec ID 100, un nouveau polygone "enfant 1" avec ID 3001 et un second nouveau polygone "enfant 2" avec ID 3002.

Avec la manip 10000+rowid sur tous les polygones je perds l'ID initial.


Pour l'instant, je ne vois qu'un "bricolage artisanal" du type :

1) réaliser toutes mes découpes
2) sélectionner tous les polygones provenant de mes découpes (polygones découpés et polygones issus des découpes) soit tous les polygones avec des doublons dans les ID
3) identifier les polygones parents et réattribuer manuellement des ID aux polygones enfants !!!!!

Vos idées sont les bienvenues !!!!!

Merci et A+

PAP

Dernière modification par pap (Fri 27 March 2009 08:29)

Hors ligne

 

#6 Fri 27 March 2009 09:04

nicoboud
Membre
Lieu: Nantes
Date d'inscription: 12 Oct 2007
Messages: 860

Re: [MI7.5] Découper des polygones et garder des identifiants uniques ????

Bonjour,

Est-ce que l'outil "AddObjects with ID" de J. Paris ne répondrait pas à votre attente ? On peut le trouver ici.

Nicolas.


Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS

Hors ligne

 

#7 Fri 27 March 2009 10:53

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MI7.5] Découper des polygones et garder des identifiants uniques ????

Un peu compliqué (mais pas trop) qui suppose que vous avez au départ une table compactée avec 3000 polygones et un identifiant ID et que vous en découpez N (connu)
- créer une colonne test1 en entier
- procéder à la découpe de vos N polygones
- requête Select ID, test1, area(obj,"sq km") "surf" from ma_table where rowid>3000 order by surf desc
- Update selection Set test1 = 10000+rowid
- Commit Table ma_table Interactive
- Select * from ma_table where test1>10000+N
- Update selection Set ID = 3000+rowid
- Commit Table ma_table Interactive
...il ne devrait plus rester qu'à détruire la colonne test1, si je ne me suis pas trompé smile

Hors ligne

 

#8 Fri 27 March 2009 11:26

pap
Participant occasionnel
Date d'inscription: 13 Jun 2007
Messages: 40

Re: [MI7.5] Découper des polygones et garder des identifiants uniques ????

Rebonjour et merci de vos réponses.

Je vais faire quelques tests.

Maurice, je vous ai envoyé un mail pour une demande d'aide un peu différente.

Merci et je vous tiens au courant

PAP

Hors ligne

 

Pied de page des forums

Powered by FluxBB