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 Mon 08 June 2009 16:59

Cbirdy
Juste Inscrit !
Date d'inscription: 8 Jun 2009
Messages: 7

Creation d'une liste dans un champ

Bonjour,

Je cherche un code mapbasic permettant de créer une liste dans un champ à partir de la superposition entre un polygone et un cadastre numérisé et renseigné (champ numéro de parcelle).
En fait je veux la liste des numéros de parcelles concernées par l'enveloppe que j'ai créé et qui correspond à un boisement.

Si quelqu'un peut m'aider, ça fait plusieurs jours que je galère...

Merci  d'avance.

Hors ligne

 

#2 Mon 08 June 2009 17:20

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

Re: Creation d'une liste dans un champ

Salut Cbirdy et bienvenue,

Si je comprends bien tu veux renseigner la section cadastrale sur tes parcelles.
C'est ça?
Pourquoi ne pas utiliser une requête SQL dans la FMB (Fenêtre MapBasic).
Pour ouvrir cette fenêtre ---> options ----> voir Fenêtre Mapbasic puis avec un copier coller ---> Placer la requête suivante:

Code:

Select * from Ta_Table_Polygone, Ta_Table_Cadastrale where Ta_Table_Cadastrale.obj entierly within Ta-Table_Polygone.obj into Ma_Selection

Tu retrouveras dans la Table Selection toutes tes parcelles contenues dans ton enveloppe
En espérant que cela t'aide
A+
Joël

Hors ligne

 

#3 Mon 08 June 2009 17:24

Cbirdy
Juste Inscrit !
Date d'inscription: 8 Jun 2009
Messages: 7

Re: Creation d'une liste dans un champ

J'arrive deja à selecter l'ensemble des parcelles, avec la selection SQL... le probleme c'est de renseigner mon champ numéros de parcelles avec la liste des numéros de parcelles contenu dans la table parcelle.
Merci pour l'aide.

Hors ligne

 

#4 Mon 08 June 2009 17:37

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

Re: Creation d'une liste dans un champ

Ce que je ne comprend pas c'est:

mon champ numéros de parcelles avec la liste des numéros de parcelles contenu dans la table parcelle.


Peux tu développer?
Une piste:
Aprés la sélection toujours dans la FMB --->
A essayer, je ne garantie rien:
utilises un "

Code:

Update selection set Champs_Numéros_Parcelles=?

A+
Joël

Dernière modification par Spacejo (Mon 08 June 2009 17:43)

Hors ligne

 

#5 Mon 08 June 2009 17:47

Cbirdy
Juste Inscrit !
Date d'inscription: 8 Jun 2009
Messages: 7

Re: Creation d'une liste dans un champ

Mon cadastre est informé à partir des numéros de parcelles et des section; ex AB1, AB 125, AD 56... dans un champ n° de parcelle (BD)
Je veux "informer" mo polygone qui intersecte plusieurs parcelles à partir du champ n° de parcelle, je pourrai le faire à la mains... mais bon à l'échelle d'une commune où j'ai dessiné plusieurs polygones (130) je cherche  un outil qui me permette de créer la liste des n° de parcelles concernées par la selection que j'arrive à faire par la selection SQL. le probleme c'est "mettre à jour la colonnes", il y a pas la possibilité de faire directement par mapinfo, car il n'existe pas de fonction "liste".
On m'a laisser entendre que c'était possible via mapbasic.

Merci de ton attention

Hors ligne

 

#6 Mon 08 June 2009 17:49

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

Re: Creation d'une liste dans un champ

Voici un exemple de mise à jour d'un champs aprés une sélection:
http://www.forumsig.org/showthread.php?t=19485
En espérant que cela t'aide
A+
Joël

Hors ligne

 

#7 Mon 08 June 2009 17:56

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Creation d'une liste dans un champ

Bonjour
Un tableau de chaque parcelle contenue dans chaque boisement...c'est possible par SQL
Mais remplir un champ des boisements avec la liste des parcelles qu'il contient...plus dur sans MapBasic, voire impossible si ce champ excède la limite de 256 caractères sad

Hors ligne

 

#8 Mon 08 June 2009 17:59

Cbirdy
Juste Inscrit !
Date d'inscription: 8 Jun 2009
Messages: 7

Re: Creation d'une liste dans un champ

Mais y a pas de solution? personnen'a jamais été confronté à ce probleme? il parait qu'il y a des outils mapbasic qui permettent de le faire... de l'aide svp... ca fait 3 jours que je suis dessus et j'ai pas encore rempli la motié... généralement y a moins d'une centaine de caractère...
Merci de votre aide

Hors ligne

 

#9 Mon 08 June 2009 18:37

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

Re: Creation d'une liste dans un champ

Ce que tu arrives à faire avec une requête peut être fait 130 fois avec une générateur de script:
Génération de 130 requêtes à partir d'une requête et d'une liste
Voilà un trés bon utilitaire -----> http://www.geocities.com/rictrem/
Dans ce petit exe il y a un fichier d'aide qui explique comment l'utiliser avec Mapinfo et Arcgis

Hors ligne

 

#10 Mon 08 June 2009 19:07

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Creation d'une liste dans un champ

Le générateur de scripts n'a d'intérêt que si on veut "automatiser" quelque chose que l'on sait faire depuis MapInfo
Est-ce bien le cas ??
- Il faut faire X fois une requête genre
Select * from Boisement_1, Parcelles where Boisement_1.obj intersects Parcelles.obj Group By Boisement_1.ID, Parcelles.ID into Sel_1
- Puis parcourir les enregistrements de cette table Sel_1 non graphique (par Fetch) pour concaténer les Parcelles.ID qu'elle contient et obtenir une chaine de caractères genre AB1, AB 125, AD 56... (de moins de 256 caractères !)
- Enfin mettre à jour une colonne de Boisement_1 avec cette chaine
Si vous savez faire ça dans la FMB, alors le générateur de scripts évoqué sera votre ami smile

Hors ligne

 

#11 Mon 08 June 2009 19:12

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

Re: Creation d'une liste dans un champ

Effectivement Maurice, je voyais pas ça comme ça
Je voyais plutôt dans la table parcelles, un champs qui récapitule à quel polygone elle appartient.
Dans le cas oû dans le champs de la table polygone, il y a un récapitulatif de toutes les parcelles qui le compose (le polygone) ---> là c'est plus dur et je ne vois que Mapbasic
Bon courage
A+
Joël

Hors ligne

 

#12 Tue 09 June 2009 11:27

Cbirdy
Juste Inscrit !
Date d'inscription: 8 Jun 2009
Messages: 7

Re: Creation d'une liste dans un champ

la réponse de Maurice m'interesse au plus haut point, je pense que cela correspond totalement à ma demande... pourrais tu développer, car mise à par la manipulation de mapinfo, je ne maitrise pas bien mapbasic
Merci d'avance.

Hors ligne

 

#13 Tue 09 June 2009 13:15

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Creation d'une liste dans un champ

Je développe et je change de solution compte tenu de ce que tu dis sur ta maîtrise de MapBasic
- je suppose que les 130 boisements ne se chevauchent pas et constituent une table unique où chacun a un identifiant unique
- requête: Select * from Boisements, Parcelles where Boisements.obj intersects Parcelles.obj order by boisements.ID into Sel_1
(suivant le cas, contains ou contains entire plutôt que intersects)
- export de Sel1 en dbf pour traitement sous Excel (eh oui, faut laisser faire les spécialistes...)
- je garde dans cette table les colonnes ID du boisement (ordonnée) et la colonne NOM des parcelles et j'ajoute une colonne TEST
- je fais mon traitement sur Sel1 (voir fichier joint, attention à la première ligne de TEST, la formule est différente)
- dans une seconde feuille, faite à partit d'un "collage spécial: valeurs", je fais un autre traitement pour ne garder que les 130 lignes où il y a le maximum de parcelles (même remarque qu'au point précédent)
- j'obtiens, après tri,  le résultat qu'il ne me reste plus qu'à utiliser pour mettre à jour une colonne de boisements (enregistrer seulement la feuille "RESULTAT" en dbf, ce format est plus "sûr"...)


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

Hors ligne

 

#14 Wed 10 June 2009 17:27

Betula
Participant occasionnel
Date d'inscription: 18 Sep 2005
Messages: 20

Re: Creation d'une liste dans un champ

Bonjour,
La piste du générateur de script est réalisable pour solutionner ce problème en utilisant la fonctionnalité liste de listes.
Il faut le faire en 2 étapes.
Générer un fichier de liste de valeurs pour chaque boisement. Faire une requête de regroupement sur chaque valeur de boisement et exporter dans un fichier texte.
Faire un script qui utilise une variable texte qui concatène chaque valeur.
La mise en oeuvre est relativement simple.
La dernière version du générateur de script offre l'option Liste de listes et permet d'utiliser plusieurs valeurs à remplacer. Ces fonctionnalités ouvrent les portes à plusieurs possibilités.
Salutations


BeTuLa

Hors ligne

 

Pied de page des forums

Powered by FluxBB