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

Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !

10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …

Faire un don 

Retrouver nos membres bienfaiteurs

#1 Mon 27 August 2007 11:24

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Obtenir l'union des intersections de 2 couches de polygones

Bonjour,

Je cherche à croiser géométriquement les périmétres des objets A et le parcellaire de la collectivité. En résultat je souhaite obtenir l'union des intersections de ces deux collections. J'ai utilisé le spatial filter, le clipper, mais rien n'y fait. Le résultat est inexact. Certaines parcelles semblent oubliées du calcul. J'ai nettoyé mon parcellaire pour m'assurer de n'avoir que des surfaces.

Avez-vous déjà procédé à un traitement semblable ?

Dernière modification par Brindavoine (Mon 27 August 2007 11:27)


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#2 Mon 27 August 2007 12:26

ogayte
Participant assidu
Lieu: Saint-Estève
Date d'inscription: 6 Mar 2006
Messages: 658
Site web

Re: Obtenir l'union des intersections de 2 couches de polygones

Avez vous essayé AreaOnAreaOverlayer pour l'intersection des polygones
puis dissolver pour l'union ?


Olivier Gayte
http://www.veremes.com
+33 (0)4-68-38-65-27

Hors ligne

 

#3 Mon 27 August 2007 13:01

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: Obtenir l'union des intersections de 2 couches de polygones

Le test a été effectué.
Il fusionne le polygone A à toutes les parcelles intersectantes. Ce qui ne m'avance pas. Je ne souhaite pas obtenir la totalité du polygone A mais l'intersection de ce polygone avec mon parcellaire.
Clipper avec Aggregator renvoie un résultat exact mais dès lors que j'ai plusieurs bases le résultat ne l'est plus. Il faut que je trouve maintenant un moyen de traiter mes objets base pour les envoyer un à un vers le "Clipper".

Dernière modification par Brindavoine (Mon 27 August 2007 13:02)


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#4 Mon 27 August 2007 13:06

Mathieu
Participant occasionnel
Lieu: Paris
Date d'inscription: 6 Sep 2005
Messages: 37
Site web

Re: Obtenir l'union des intersections de 2 couches de polygones

bonjour

Utiliser SpatialRelator avec les bons paramètres pour connaître les relations géomètriques
Utiliser AeraOnAeraOverLayer pour créer des entités résultant des relations spatiales

ça dépend ce que vous voulez obtenir vraiment

Abscisse Géomatique     Leroux Mathieu

Hors ligne

 

#5 Mon 27 August 2007 13:31

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: Obtenir l'union des intersections de 2 couches de polygones

j'ai ce message d'erreur :
2007-08-27 13:30:16|  33.4| 12.4|ERROR |SPATIALRELATOR(SpatialRelationshipFactory): Intersection matrix match of predefined type 3 with geometry dimensions 2 and 2 could not be computed.
Ce qui correspond peu ou prou à mon message d'erreur avec SpatialFilter.
Une idée ?

! En fait celà est dû à l'utilisation de polygones aggrégés.

Comment dois-je utiliser les relations créées dans AreaOnArea ?

Dernière modification par Brindavoine (Mon 27 August 2007 14:10)


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#6 Mon 27 August 2007 14:27

ogayte
Participant assidu
Lieu: Saint-Estève
Date d'inscription: 6 Mar 2006
Messages: 658
Site web

Re: Obtenir l'union des intersections de 2 couches de polygones

Vous pouvez utiliser DESAGGREGATOR pour supprimer les aggrégats.
Si vous avez encore un message de ce type c'est que vos couches en entrée ne sont pas propres, avec des géométries incohérentes.
Il faut que vos deux couches en entrée soient planaires (pas de chevauchement) sinon c'est encore plus complexe.
Après AreOnAreaOverlayer, il faut utiliser les attributs de la couche A qui sont ajoutés à votre parcelle comme critère d'aggrégation dans DISSOLVER par exemple id_pos.

AreOnAreaOverlayer découpe vos parcelles par rapport aux objets de votre couche A.
Dissolver permet de fusionner toutes les parcelles se trouvant dans le même objet A.


Olivier Gayte
http://www.veremes.com
+33 (0)4-68-38-65-27

Hors ligne

 

#7 Mon 27 August 2007 16:12

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: Obtenir l'union des intersections de 2 couches de polygones

Le traitement qui me semble adéquat :
un spatial relator (ce qui permet d'associer les objets A et les parcelles) puis un list explode pour dupliquer chaque parcelle entrant en relation avec un objet A.

Et ensuite un clipper entre les objets list explode et mes objets A avec l'instruction d'associer les objets listes explode et les objets A d'après une valeur d'attribut. Et enfin un aggregator pour avoir des objets propres.

cependant j'ai ce message d'erreur :

2007-08-27 16:00:33|   1.5|  0.0|WARN  |CLIPPER(ClippingFactory): Extra clipping feature encountered and ignored.
2007-08-27 16:00:33|   1.5|  0.0|WARN  |Deleting extra clipper feature encountered which entered transformer CLIPPER

J'ai donc un objet A qui n'est pas utilisé lors du clipping.


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#8 Mon 27 August 2007 18:49

Mathieu
Participant occasionnel
Lieu: Paris
Date d'inscription: 6 Sep 2005
Messages: 37
Site web

Re: Obtenir l'union des intersections de 2 couches de polygones

Si je comprends bien votre problématique :

Utiliser spatial filter pour ne sélectionner que les parcelles intersectantes et utiliser ensuite AreaOnAreaOverlayer avec un filtre sur le champ nombre d'objet ayant servi à créer de nouvelle entité.

Logo Abscisse Géomatique     Leroux Mathieu

Hors ligne

 

#9 Tue 04 September 2007 14:11

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: Obtenir l'union des intersections de 2 couches de polygones

Aloha
Votre réponse ne me permet pas d'effectuer le traitement.
Mes données en entrée sont issues d'une base Oracle ; j'utilise donc le SQLquerier pour extraire les parcelles intersectantes. Puis j'utilise un clipper.
Dans la suite de mon traitement je dois :
calculer la surface de l'ensemble des intersections de parcelle avec chaque objet

Or un areacalculator placé derrière l'aggregator en sortie du clipper ne renvoie pas de données cohérentes (< à la surface de l'objet servant de clipper !!!).

Errata : il semble que ce soit dû à des doublons créés lors du clipper (!?).

Dernière modification par Brindavoine (Tue 04 September 2007 14:33)


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

Pied de page des forums

Powered by FluxBB