Aloha,

Je mets aujourd'hui à jour une table (insert après un truncate) à partir des géométries d'une autre table (bâtiments du cadastre) en fonction de critères géographiques. Ceci fonctionne parfaitement bien.

Cependant, je souhaite que les objets insérés soient le regroupement, l'union des géométries des bâtiments "proches", ou "touchants". Je souhaite que disparaissent les limites entre ces bâtiments. Sur l'image ci dessous, je souhaite que les bâtiments 1282, 1283, 1284 et 1285 ne forment plus qu'un.



Comment faire ?

J'arrive à sortir par unité foncière les bâtiments touchants avec leur vis à vis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT                                                          /*+ ordered */
      B.UF,
       B1.UF,
       B.GID,
       B1.GID
  FROM TABLE (SDO_JOIN ('A_REIMS.PAT_BATI',
                        'GEOMETRY',
                        'A_REIMS.PAT_BATI',
                        'GEOMETRY',
                        'mask=TOUCH distance = 0.1')) c,
       A_REIMS.PAT_BATI B,
       A_REIMS.PAT_BATI B1
 WHERE c.rowid1 = B.ROWID AND c.rowid2 = B1.ROWID AND B.UF = B1.UF AND B.GID !=B1.GID
 ORDER BY B.UF
qui me renvoie une liste où apparaissent des "doublons"
UF0085 UF0085 1284 1283
UF0085 UF0085 1285 1284
UF0085 UF0085 1285 1283
UF0085 UF0085 1284 1285
UF0085 UF0085 1283 1282
UF0085 UF0085 1283 1284
UF0085 UF0085 1283 1285
UF0085 UF0085 1282 1283
J'ai essayé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT SDO_AGGR_UNION(SDOAGGRTYPE(I.GEOMETRY,1)),UF FROM PAT_BATI I  GROUP BY UF
Mais le résultat était un objet comprenant les géométries 1280, 1281, 1282,...

Quelqu'un a-t'il une idée ? C'est le group by pour faire mon aggregat qui pêche. Il faudrait que j'arrive à lui dire de grouper par "lots de GID".

D'avance, merci,