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Ă© ?

#1 Thu 19 May 2016 10:34

flo1er
Juste Inscrit !
Date d'inscription: 22 Apr 2014
Messages: 9

Jointure spatiale : extraire data plusieurs points vers un polygone

Bonjour,
j'ai cherché sur le forum mais je n'ai pas réussi à trouver de sujets qui correspondent, je vous expose mon souci.
J'ai :
- une couche de point
- une couche polygone

J'ai compté le nombre de mes points à l'intérieur des polygones.

Je veux récupérer certaines informations de CHAQUE point présent dans mon polygone dans une colonne DIFFERENTE de ma table et là je bloque.

J'arrive Ă  rĂ©cupĂ©rer les Ă©lĂ©ment d'un point en faisant une mise Ă  jour de la colonne via une jointure spatiale, le point en question est choisi par le logiciel, et si je rĂ©pĂšte la manip' dans la colonne suivante je rĂ©cupĂšre les donnĂ©es du mĂȘme point.

Donc si quelqu'un peut m'expliquer comment je demande au logiciel de prendre un point différent de celui traité dans la colonne précédente je serai plus que ravi.

Merci

PS : J'utilise Mapinfo Pro Version 15.0 Releawe Build 18
ah et je suis une bille en Mapbasic

Hors ligne

 

#2 Thu 19 May 2016 15:25

CRIGBAB
Participant assidu
Lieu: Bayonne
Date d'inscription: 14 Nov 2005
Messages: 180

Re: Jointure spatiale : extraire data plusieurs points vers un polygone

Bonjour,


A ma connaissance pas simple sans plusieurs sĂ©lections et tables intermĂ©diaires. Effectivement si tu n’élimines pas point dĂ©jĂ  pris lors de la premiĂšre passe pour la suivante tu retrouves les mĂȘmes, et ainsi de suite. En somme il faut identifiĂ© les points qui sont dĂ©jĂ  "pris" et porter la jointure spatial sur ceux qui restent et cela Ă  chaque fois que tu as fait une jointure.

En gros tu fais ta premiĂšre mise Ă  jour de colonne COL1.
Tu sélectionne tes points dont l'info n'est pas présente dans la 1Úre colonne ajoutée COL1 de ta table polygone et qui est dans ce polygone ton résultat est la table point_non_reference_1
tu refais une mise Ă  jour de colonne COL2 avec la table point_non_reference_1
Tu sélectionne tes points de table_non_reference_1 dont l'info n'est pas présente dans la colonne COL2 et toujours pas dans le polygone ton resultat est dans point_non_reference_2
tu refais une mise Ă  jour de colonne COL3 avec la table point_non_reference_2
...
et ainsi de suite .

Cela devrait fonctionner. Je n'ai pas essayé mais il faut voir dans le concret comment la sélection des points non référencés fonctionne si l'info à transférer n'est pas unique. L'idéal est de passer par un identifiant unique par point que chaque polygone référencera.

Attention toutefois si l'info que tu rĂ©cupĂšres de la table point est identique pour plusieurs points tu n'auras par cette procĂ©dure qu'une fois chaque valeur pour un polygone. En effet enlevant les points qui portent cette mĂȘme info et qui sont dans le mĂȘme polygone ceux-ci ne pourront pas ĂȘtre pris en compte lors de la jointure.

Je prendrai le temps ce soir de voir une solution sûre, sauf si quelqu'un la met en ligne avant.

Cordialement.

Dernière modification par CRIGBAB (Thu 19 May 2016 15:35)

Hors ligne

 

#3 Thu 19 May 2016 15:44

flo1er
Juste Inscrit !
Date d'inscription: 22 Apr 2014
Messages: 9

Re: Jointure spatiale : extraire data plusieurs points vers un polygone

Finalement je suis passĂ© par une bĂȘte requĂȘte SQL et au lieu d'avoir mes indications groupĂ©es par polygone j'ai plusieurs lignes avec le nom du polygone et je traite la suite sur Excel.
C'est pas la solution optimale que j'espérais mais ça fera l'affaire bien que ça fasse une table un plus longue qu'envisagée initialement.

Hors ligne

 

#4 Thu 19 May 2016 16:03

CRIGBAB
Participant assidu
Lieu: Bayonne
Date d'inscription: 14 Nov 2005
Messages: 180

Re: Jointure spatiale : extraire data plusieurs points vers un polygone

Hello,

Finalement je n'ai pas attendu ce soir car le problÚme est solutionné soit par ta solution soit par la mienne qui fonctionne trÚs bien aussi, je viens de faire le test.
La requĂȘte SQL est obligatoire et peut ĂȘtre trĂšs longue si tu as beaucoup de points Ă  remonter.
Avantage de ma solution tu gardes ta table polygone avec le mĂȘme nombre d’occurrences et seul le nombre de colonnes s'adapte en fonction du nombre d'infos remontĂ©es.


Restant Ă  votre disposition.

Dernière modification par CRIGBAB (Thu 19 May 2016 16:04)

Hors ligne

 

#5 Thu 19 May 2016 17:11

flo1er
Juste Inscrit !
Date d'inscription: 22 Apr 2014
Messages: 9

Re: Jointure spatiale : extraire data plusieurs points vers un polygone

Ok, j'essaierai demain de faire avec ta solution pour avoir une table propre comme je le voulais au début.
Merci ;-)

Hors ligne

 

#6 Thu 19 May 2016 18:08

CRIGBAB
Participant assidu
Lieu: Bayonne
Date d'inscription: 14 Nov 2005
Messages: 180

Re: Jointure spatiale : extraire data plusieurs points vers un polygone

La suite donc

Si tu y retravailles voici quelques éléments pour le SQL

et la jointure

Exemple sur la table Bidon_p et bidon_s (ponctuels et surfaciques)

structure de bidon_p
Definition Table
  Type NATIVE Charset "WindowsLatin1"
  Fields 3
    id Char (10) ;
    info1 Char (10) ;
    info2 Char (10) ;

structure de bidon_s
Definition Table
  Type NATIVE Charset "WindowsLatin1"
  Fields 2
    info1 Char (10) ;
    info2 Char (10) ;


Si je ne sais pas combien de points au maxi je vais avoir avec une info_1 différentes je fais une mise à jour de colonne je choisis l'option "ajouter une colonne temporaire" et je prends par exemple info1 comme valeur de la table bidon_p a remonter.

ma table bidon_s s'enrichi temporairement d'une colonne info1_2

puis je fais la sélection suivante :
Fields {*}
Tables {bidon_P, bidon_S}
Where {bidon_P.Obj Within bidon_S.Obj and bidon_P.info1 <> bidon_S.info1_2}
Group {}
Order {}
Into {pt_non_ref_2}
Browse

je fais alors un mise à jour de colonne entre bidon_s et pt_non_ref_2 en prenant toujours ajouter une colonne temporaire et alimentée par info1 de pt_non_ref_2
J'obtiens dans bidon_s une nouvelle colonne info1_3

je refais une sélection comme ci-dessous:
Fields {*}
Tables {bidon_P, bidon_S}
Where {bidon_P.Obj Within bidon_S.Obj and bidon_P.info1 <> bidon_S.info2 and bidon_P.info1<>bidon_S.info1_2 and bidon_P.info1<> bidon_S.info1_3}
Group {}
Order {}
Into {pt_non_ref_3}
Browse

et je reprends une nouvelle maj de colonne

je fais alors un mise à jour de colonne entre bidon_s et pt_non_ref_3 en prenant toujours ajouter une colonne temporaire et alimentée par info1 de pt_non_ref_3
J'obtiens dans bidon_s une nouvelle colonne info1_4
je refais une sélection en ajoutant une condition et ainsi de suite tant que la sélection me retourne au moins un ponctuel non traité.

J'espÚre avoir été clair sinon je ferai la manipulation en l'enregistrant en vidéo....

Bon travaux cordialement.

Hors ligne

 

#7 Fri 20 May 2016 08:55

CRIGBAB
Participant assidu
Lieu: Bayonne
Date d'inscription: 14 Nov 2005
Messages: 180

Re: Jointure spatiale : extraire data plusieurs points vers un polygone

Bonjour,

Petite prĂ©cision supplĂ©mentaire avec la mĂ©thode ci-dessus, le rĂ©sultat de la table dont nous avons ajoutĂ© dynamiquement des colonnes doit ĂȘtre sauvegardĂ© sous une nouvelle table, sinon la structure est perdue.

Cordialement.

Hors ligne

 

#8 Fri 20 May 2016 11:28

flo1er
Juste Inscrit !
Date d'inscription: 22 Apr 2014
Messages: 9

Re: Jointure spatiale : extraire data plusieurs points vers un polygone

Ca y est j'ai mené la manip à terme (la sql commence à devenir longue quand on a 5 points dans une zone pour obtenir le dernier reliquat de point non pris en compte et des noms de table à coucher dehors ;-) )

Merci pour le coup de main, j'ai une belle table lisible maintenant :-D

Bonne journée.
Cordialement.

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo