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

Printemps des cartes 2024

#1 Thu 22 June 2017 21:24

pap
Participant occasionnel
Date d'inscription: 13 Jun 2007
Messages: 40

[MI 8.5] Recherche solution pour automatiser l'assemblage d'objets

Bonsoir,

Je cherche à automatiser le plus possible une tache destinée à créer les limites (frontières) d'ensembles de polygones préalablement sélectionnés et extraits d'une table suivant un ou plusieurs critère ...

J'ai fait un petit schéma que la manipe (pièce jointe).

EXPLICATIONS :

J'ai une table initiale avec un très grand nombre de polygones (type parcelle).
Chaque polygone (parcelle) est renseignée avec plusieurs champs (nom, type, occupation, surface, coordX, coordY, codes, etc.).

Je cherche à réaliser des ensembles de parcelles via une sélection sur 1 critère qui seront ensuite enregistrés dans des tables distinctes.

J'ai ensuite 2 besoins supplémentaires :

1 - je veux garder l'intégrité graphique de mes ensembles (je ne veux pas "Assembler" les parcelles d'une sélection)... j'ai besoin d'identifier chaque parcelle et de garder les attributs de chacune d'elles.

2- j'ai ensuite besoin de nouvelles tables contenant uniquement les limites (les frontières) de mes sélections (pour chaque sélection je veux "Assembler" les parcelles en un seul objet afin de définir la limite extérieure de mes sélections = frontière).


Ayant beaucoup (...) de parcelles, je cherche à automatiser au maximum les choses...

J'ai réalisé la première étape qui est de découper la table initiale en plusieurs tables (sélection de parcelles) suivant un critère de sélection via un outils de découpage de table (decoupe_table_V2.MBX)


Il me reste à créer pour chacune de ces nouvelles tables (sélections de parcelles) leur frontière et je souhaite automatiser la chose (assemblage des objets + agrégation des données attributaires).

Voilà, si vous avez une idée... je suis grandement preneur.

Avec un grand merci d'avance !

PAP

Hors ligne

 

#2 Thu 22 June 2017 21:28

pap
Participant occasionnel
Date d'inscription: 13 Jun 2007
Messages: 40

Re: [MI 8.5] Recherche solution pour automatiser l'assemblage d'objets

L'image de la manipe


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

Hors ligne

 

#3 Mon 26 June 2017 09:49

Raphaël_
Participant actif
Date d'inscription: 18 Jan 2016
Messages: 110

Re: [MI 8.5] Recherche solution pour automatiser l'assemblage d'objets

Salut,
Tu peux toujours dupliquer ta table et fusionner les objets de cette nouvelle table, je n'ai pas le code en tête pour générer les variables mais dans ton cas en 3-4 lignes de MB... smile

Hors ligne

 

#4 Mon 26 June 2017 10:35

pap
Participant occasionnel
Date d'inscription: 13 Jun 2007
Messages: 40

Re: [MI 8.5] Recherche solution pour automatiser l'assemblage d'objets

[img][/img]

Raphaël_ a écrit:

Salut,
Tu peux toujours dupliquer ta table et fusionner les objets de cette nouvelle table, je n'ai pas le code en tête pour générer les variables mais dans ton cas en 3-4 lignes de MB... smile


Bonjour,

Oui, c'est la manière "artisanale" que j'utilise quand j'ai peu de manipes du genre à réaliser.

Dans le cas présent, je souhaite automatiser la chose car j'ai une très grande quantité de regroupements de parcelles pour lesquels je doit sortir les frontières.
Le faire manuellement ce serait trop long avec un risque d'erreur de manipulation trop important... et en plus c'est assez urgent !

Autres soucis, MapBasic et moi ça fait 2 !!!... mais si tu retrouves le code et avec quelques explication pour le mettre en oeuvre, je suis preneur !!!

Merci

Dernière modification par pap (Mon 03 July 2017 15:02)

Hors ligne

 

#5 Mon 26 June 2017 10:54

Raphaël_
Participant actif
Date d'inscription: 18 Jan 2016
Messages: 110

Re: [MI 8.5] Recherche solution pour automatiser l'assemblage d'objets

Ah ! Je pensais que comme tu avais fait ton MBX, tu t'en sortais dessus. N'y connaissant rien dessus non plus, j'avais fait ça en VBA à l'époque, qui me générait du texte que je n'avais plus qu'à copier dans la fenêtre MapBasic...

Je n'ai plus que ça comme code sous la main, mais je pense que ça peut déjà être une base de départ. Ca te crée de nouvelles tables à partir des critères que tu souhaites.
Alors ça va te créer un paquet de tables, mais tu peux les fusionner ensuite sans trop de soucis.

Code:

Dim rep As String
rep = ApplicationDirectory$()
Select * From TABLE_ORIGINE Into TABLE_DESTINATION where CONDITION_DE_SELECTION NoSelect
Commit Table TABLE_DESTINATION As rep+"TABLE_DESTINATION.TAB" TYPE NATIVE Charset "WindowsLatin1"
Close Table TABLE_DESTINATION Interactive
Open Table rep+"TABLE_DESTINATION.TAB" Interactive

Alors j'ai clairement pas la prétention d'être capable de répondre à ta question, mais au moins on y réfléchis... smile
Pour les modalités de fusion (notamment somme des surfaces...) je ne sais pas où ça se définit, mais bon après ça peut se recalculer, ça sera peut être même plus rapide yikes

Dernière modification par Raphaël_ (Mon 26 June 2017 10:55)

Hors ligne

 

#6 Mon 03 July 2017 15:07

pap
Participant occasionnel
Date d'inscription: 13 Jun 2007
Messages: 40

Re: [MI 8.5] Recherche solution pour automatiser l'assemblage d'objets

Raphaël_ a écrit:

Ah ! Je pensais que comme tu avais fait ton MBX, tu t'en sortais dessus. N'y connaissant rien dessus non plus, j'avais fait ça en VBA à l'époque, qui me générait du texte que je n'avais plus qu'à copier dans la fenêtre MapBasic...

Je n'ai plus que ça comme code sous la main, mais je pense que ça peut déjà être une base de départ. Ca te crée de nouvelles tables à partir des critères que tu souhaites.
Alors ça va te créer un paquet de tables, mais tu peux les fusionner ensuite sans trop de soucis.

Code:

Dim rep As String
rep = ApplicationDirectory$()
Select * From TABLE_ORIGINE Into TABLE_DESTINATION where CONDITION_DE_SELECTION NoSelect
Commit Table TABLE_DESTINATION As rep+"TABLE_DESTINATION.TAB" TYPE NATIVE Charset "WindowsLatin1"
Close Table TABLE_DESTINATION Interactive
Open Table rep+"TABLE_DESTINATION.TAB" Interactive

Alors j'ai clairement pas la prétention d'être capable de répondre à ta question, mais au moins on y réfléchis... smile
Pour les modalités de fusion (notamment somme des surfaces...) je ne sais pas où ça se définit, mais bon après ça peut se recalculer, ça sera peut être même plus rapide yikes


Hello,

Merci du retour... mais ce code va me donner quoi en résultat ?... comme exposé plus haut, MapBasic et autres langages de prog... je ne sais pas les lire !

PAP

Hors ligne

 

#7 Thu 30 November 2017 20:51

pap
Participant occasionnel
Date d'inscription: 13 Jun 2007
Messages: 40

Re: [MI 8.5] Recherche solution pour automatiser l'assemblage d'objets

petit up

Hors ligne

 

Pied de page des forums

Powered by FluxBB