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

#1 Wed 06 April 2011 16:45

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Mettre à jour colonne et AreaOverlap

Bonjour à tous,

Je voulais savoir s'il était possible d'utiliser un AreaOverlap en condition pour mettre à jour une colonne d'une table grâce à une autre colonne d'une autre table.

Je m'explique : j'ai deux tables et je voudrais récupérer la valeur d'une pour la mettre dans l'autre et comme jointure, j'ai d'abord utiliser un "intersects" mais j'avais des incohérences puisque parfois un polygone était insercté par deux polygones et MapInfo ne prenait pas la valeur du bon polygone.

Du coup, je voulais compléter ma jointure avec un AreaOverlap pour calculer la surface d'intersection entre les deux objets, mais le problème c'est que je ne sais pas si c'est possible et si oui, comment l'intégrer pour que le logiciel le prenne en compte.

J'ai tenté par MapBasic mais sans succès :

Code:

Add Column "table1" (champ1 )From table2 Set To champ2 Where intersects and areaoverlap(table1.obj, table2.obj) > 1

ou

Code:

Add Column "table1" (champ1 )From table2 Set To champ2 Where areaoverlap(table1.obj, table2.obj) > 1

Si vous avez d'autres idées, merci d'avance.

Hors ligne

 

#2 Wed 06 April 2011 21:15

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Mettre à jour colonne et AreaOverlap

Salut,

A essayer avec la FMB:

Code:

Select * from Table1, Table2 where Table1.obj intersects Table2.obj into Resultat
Update Resultat Set Table1.Champ1=Table2.Champ2 where areaoverlap(table1.obj, table2.obj) > 1

A+
Joël

Hors ligne

 

#3 Thu 07 April 2011 09:52

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: Mettre à jour colonne et AreaOverlap

Bonjour,

Merci d'avoir répondu.

J'ai fait la manip mais MapInfo me renvoie le message "Le résultat de l'expression n'est pas un nom de table ou de colonne".

Hors ligne

 

#4 Thu 07 April 2011 10:23

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Mettre à jour colonne et AreaOverlap

Salut,

As tu fait les modifs nécessaires pour ton cas? ---> Ta_Table, Table1.Champ1 etc...
A+
Joël

Hors ligne

 

#5 Thu 07 April 2011 10:41

Maxime31
Participant assidu
Date d'inscription: 3 Sep 2008
Messages: 175

Re: Mettre à jour colonne et AreaOverlap

Oui, j'ai remplacé tout les Table1 et autres par mes noms de table.

La première ligne marche très bien d'ailleurs, c'est sur la deuxième que MapInfo me renvoie le message d'erreur.

En fait, maintenant j'ai enlevé dans la deuxième ligne le nom des tables dans le SET, j'ai mis directement le nom des colonnes, je pense que c'est cela qui posait problème.

Sauf que cette fois-ci, c'est le areaoverlap qui pose souci, MapInfo me renvoie ce message : "AreaOverlap : le type de l'argument 1 est non valide"

Voici la ligne de code :

Code:

Update Resultat Set champ1=champ2 where areaoverlap(table1.obj, table2.obj)>1

Je ne vois pas bien d'où cela pourrait venir...

Hors ligne

 

#6 Thu 07 April 2011 11:08

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Mettre à jour colonne et AreaOverlap

je ne comprends pas bien ta condition --> areaoverlap(table1.obj, table2.obj)>1
Peux tu nous donner quelques explications supplémentaires.
Je me demande si tu ne devrais pas utiliser --> ProportionOverlap( object1, object2 )

Hors ligne

 

Pied de page des forums

Powered by FluxBB