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

Printemps des cartes 2024

#1 Fri 13 February 2015 07:42

ÍPaulineAnemone
Juste Inscrit !
Date d'inscription: 12 Feb 2015
Messages: 1

Mapinfo - comment incorporer données table 1 dans table 2

Bonjour tout le monde,

Tout d'abord je tiens à signaler que j'ai cherché dans les sujets déjà dispo mais n'ai rien trouvé.
Voilà je travaille avec mapinfo sur des données foncières.

J'ai une table A avec des enregistrements : objets géographiques sans aucun attribut et qui sont en fait du texte (des numéros et noms de parcelles cadastrales).
J'ai une autre table B qui contient elle des enregistrements : objets géographiques (polygones des parcelles) auxquels sont associés des attributs divers (commune référence cadastrale superficie. ...).

Je voudrais incorporer les objets géographiques de la table A dans la table B en tant que nouvel attribut des objets géographiques de la table B.

Est ce que c'est possible ? Ne faudrait il pas avant tout créer un champ commun ?

Merci de me donner un coup de main.
A bientôt,
Pauline.

Hors ligne

 

#2 Fri 13 February 2015 11:47

Benoit91
Participant assidu
Date d'inscription: 2 Oct 2008
Messages: 263

Re: Mapinfo - comment incorporer données table 1 dans table 2

Bonjour

Si vos données de la table A intersectent les données de la table B il est possible de faire quelque chose:

Étape 1:
Sur votre table A créer un nouveau champ de type caractère et appelons le "libelle" et lancer la requête de mise à jour suivante:
Table =>Mettre à jour la colonne
Table à mettre à jour => table A
Utiliser une valeur de la table => Table A
Colonne à mettre à jour => libelle
Valeur => objectinfo(obj,3)

Normalement l'objet texte est mis en valeur attributaire.

Étape 2:
Table A
Créer deux champs supplémentaires coordX et coordY afin de récupérer les coordonnées X et Y du centroid des données textes de votre table A.
Table =>Mettre à jour la colonne
Table à mettre à jour => table A
Utiliser une valeur de la table => Table A
Colonne à mettre à jour => coordX
Valeur => CentroidX(obj)

faire pareil avec le champ Coord Y

Étape 3 exporter votre table A en csv (Abis)

Étape 4:
Importer votre table Abis csv et faites "table" =>"Creer des points"
Le but est de convertir votre ancienne table de texte en table point dont l'attribut est la données texte (numéro et nom de parcelle)

Étape 5:
Créer un champ refcada dans votre table B

Étape 6:
Requête d'intersection pour récupérer la colonne "libelle" de la table Abis dans la table B.

Menu Selection => Selection SQL
Laisser * dans la fenetre colonnes
Tables => Table B, Table Abis
Critères => Table B.obj Contains (ou intersect) Table Abis.obj
Table de résultat => nouvelle table

Vérifier si le résultat obtenu est conforma à vos attente puis etape7

Étape 7:
ET à partir de cette nouvelle table "temporaire" faite une mise à jour de votre table B

Table =>Mettre à jour la colonne
Table à mettre à jour => nouvelle table
Utiliser une valeur de la table => nouvelle table
Colonne à mettre à jour => Refcada
Valeur => libelle

Vérifiez que tout semble correcte.

Je vous conseil de travailler sur des copies de vos couches.

L’intérêt de passer vos anciennes données objet texte en objet point, est d’éviter la duplication de vos données parcelles lorsque vous effectuez la requete d'intersection.
On peut éviter l'étape 6 en passant directement à l'étape 7.
On peut mettre à jour directement le champ refcada par jointure spatiale dans "table à mettre à jour" mais dans votre cas je vous conseil de passer par l'etape 6 afin d'avoir un certain contrôle du résultat.

En cherchant des les sujets épinglé il y a ceci:
http://georezo.net/forum/viewtopic.php?id=53164

Cordialement.

Dernière modification par Benoit91 (Fri 13 February 2015 14:08)

Hors ligne

 

Pied de page des forums

Powered by FluxBB