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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#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

Powered by FluxBB