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

GEODATA DAYS 2024

#1 Mon 05 May 2003 10:00

Maud Marsauche
Invité

Creation d'enveloppes convexes a partir de selections de polygones

Bonjour,
je souhaite creer des polygones qui reprennent les points exterieurs d'autres polygones.
Il faudrait que les polygones initiaux soient selectionnes en fonction d'une colonne, j'ai en effet plusieurs milliers d'objets.
J'espere que quelqu'un aura la solution a ce probleme.
Cordialement
Maud MARSAUCHE

 

#2 Mon 05 May 2003 11:56

Gilles Andre
Invité

Re: Creation d'enveloppes convexes a partir de selections de polygones

Dans la version 7 de MapInfo il existe une fonction qui permet de creer des enveloppes convexes a partir de points ou de polygones
gilles

 

#3 Mon 05 May 2003 12:32

Maud Marsauche
Invité

Re: Creation d'enveloppes convexes a partir de selections de polygones

En effet, j'ai vu cette fonction
Mais en fait je souhaiterais automatiser l'etape de la selection, j'ai en effet quelques milliers de triangles a partir desquels je voudrais obtenir quelques centaines d'enveloppes convexes, a partir d'un critere commun.

 

#4 Tue 06 May 2003 08:30

Rictrem
Invité

Re: Creation d'enveloppes convexes a partir de selections de polygones

De: Richard Tremblay
Bonjour,

Vous pouvez realiser ce mandat avec les fonctions standards de mapinfo et l'utilisation du logiciel ScriptGen.exe a cette adresse :

www.geocities.com/rictrem/ScriptGen.html

Le generateur de scripts permet d'automatiser l'execution des taches repetitives. Dans votre cas, c'est la partie selection de votre tache qui est cruciale. Comme je ne dispose pas d'autres details, je vais tenter de vous guider d'une maniere hypothetique. Vous adapterez le traitement selon vos besoins exacts.

Je suppose que vous desirez obtenir 1 polygone pour plusieurs ayant une meme valeur comme attribut. Il vous faut faire une requete SQL en faisant un Group by sur cette colonne, dans la zone colonne de l'ecran vous indiquez seulement cette colonne. La requete vous donnera une table ne contenant qu'une seule colonne avec toutes les valeurs possibles contenues dans votre table d'origine. Vous exportez cette table dans un fichier texte que vous utiliserez plus tard dans le generateur de scripts.

Lorsque cette etape sera faite, il vous faudra elaborer le script qui creera vos polygones. Je vous conseille de vous creer une table vide prete a recevoir les objets nouvellement crees. Cette table aura de preference un champ pour recuperer la valeur sur laquelle vous travaillerez.

Voici comment proceder. Vous activez la fenetre mapbasic de mapinfo pour enregistrer vos actions et vous faites la sequence de commandes suivante :

Ouvrir la table d'origine
Ouvrir la table vide
Rendre editable la table vide
Selectionner une valeur dans la table d'origine avec la commande selection
Executer la commande enveloppe convexe
Mettre a jour la colonne avec la valeur
Enregistrer la table vide
Tout fermer

Le code qui s'affichera dans la fenetre mapbasic ressemblera a ceci si vous avez pris soin de nommer vos selection (Seltemp) et de decocher l'option afficher la selection (vous n'avez aucunement besoin de connaitre la syntaxe puisque mapinfo genere le code automatiquement):

Open Table C:Temptableorigine.TAB Interactive
Map From tableorigine
Open Table C:TempTablevide.TAB Interactive
Add Map Auto Layer Tablevide
set map redraw off
Set Map Layer 1 Editable On
set map redraw on
select * from tableorigine where champx= valeurx into Seltemp
Create Object As ConvexHull From Seltemp Into Table Tablevide
Update Seltemp Set champx = valeurx
Commit Table Tablevide Interactive
Close All Interactive

Vous recuperez ces lignes pour les utiliser dans ScriptGen.exe. Vous placez les lignes 1 a 7 dans l'onglet script final. Vous placez les lignes 8 a 10 dans l'onglet script de base. La valeur a inscrire dans la zone d'edition valeur a remplacer sera dans ce script valeurx. Vous cochez l'option utiliser une liste et dans l'onglet Liste de valeurs vous ouvrez votre fichier texte precedemment cree. Vous enlevez les guillemets avec le bouton a cet effet. Il ne vous reste plus qu'a generer le script final en ayant soin de cocher l'option ajouter au script final. Votre traitement sera reecrit dans l'onglet script final selon chaque valeur presente dans la liste.

Pour finir vous ajoutez les lignes 11 et 12 a la fin du script final et vous enregistrez le tout dans un fichier texte ou dans un workspace.

Vous lancez le traitement en ouvrant le workspace avec mapinfo ou en copiant le fichier texte dans la fenetre mapbasic, apres avoir tout selectionne, vous appuyez sur enter. Avant de lancer le traitement assurez-vous que votre table vide le soit.

Voila une maniere de multiplier par 10 votre capacite a traiter des donnees avec mapinfo. Vous decouvrirez avec etonnement tout ce qu'il est possible de realiser de cette facon. Si le traitement reussit, faites-le nous savoir sinon precisez votre probleme, il y a toujours un moyen de faire les choses.

Salutations
Richard Tremblay

 

#5 Tue 06 May 2003 11:02

Maud Marsauche
Invité

Re: Creation d'enveloppes convexes a partir de selections de polygones

Bonjour,
Je viens de developper l'application proposee par R. Tremblay  permettant d'automatiser les selections de polygones pour fabriquer des enveloppes convexes.
Tout fonctionne tres bien.
Je vous remercie.
Cordialement
Maud MARSAUCHE

 

Pied de page des forums

Powered by FluxBB