#1 Fri 07 December 2007 11:51
- dimsen
- Participant occasionnel
- Date d'inscription: 7 Dec 2007
- Messages: 13
transformer automatiquement les points en polygones
Bonjour à tous,
je vous prie par avance de m'excuser si cette question a déjà été posée, mais j'ai surtout trouvé comment transformer un polygone en point, mais pas l'inverse.
Mes recherches ont été quelque peu avortées du fait d'un problème technique sur l'outil recherche, et d'autres forums ne m'ont pas apporté de réponses non plus, donc je me tourne donc vers vous en espérant ne pas trop me faire taper sur les doigts .
Voilà, j'ai fait des relevés GPS de bateaux logement, que j'ai intégré à ma carte en tant que points, jusque là pas de problèmes. Mais je souhaiterais transformer ces points en un polygone défini (une péniche vue de dessus), avec pour centroïde le relevé GPS (dans un premier temps). Or, je souhaiterais pouvoir faire celà automatiquement, c'est à dire utiliser une fonction du genre : "créer polygones" à la place de "créer points" (je sais, je rêve un peu).
Je souhaiterais ne pas avoir à redessiner à chaque fois le polygone (j'ai près de 200 bateaux) mais s'il faut en passer par là...
J'ai essayé de passer par l'outil "mettre à jour", mais je ne comprends pas pourquoi lorsque je crée une table modifiable avec des polygones, la table reste desesperement vide, alors que mes polygones ont une bien position. Cela peut vous sembler stupide mais j'ai appris Mapinfo sur le tas, et je ne sais quelle manip faire pour que mes création/modifs graphique sur la couche active se répercutent dans la table associée. Par exemple avoir une table avec 3 colonnes, la première l'index, et les deux suivantes les X et Y des polygones que je viens de dessiner sous cette couche. J'utilise la version 6.5 de Mapinfo sous XP, et j'ai le week end pour faire quelquechose de correct.
Si quelqu'un veut bien m'aider ou même m'engueuler en disant "hé ho, toutes les réponses sont dans le post trucmcuhe", ça serait top bueno.
Merci par avance et bonne journée tout le monde!
elvis is still alive @ :- )
dimsen
Hors ligne
#2 Fri 07 December 2007 12:14
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: transformer automatiquement les points en polygones
Bonjour
Vous l'aurez voulu ...hé ho, toutes les réponses sont dans le post trucmcuhe
Sinon, comme c'est difficile de dessiner une (belle) péniche vue de dessus, vous pouvez trouver dans les symboles disponibles quelque chose de correct pour la représenter. Si oui, rendez modifiable vos points, sélectionnez les, choisissez le "bon" symbole (outil Style symboles - punaise avec un point d'interrogation)...et enregistrez la table
Qui que ce soit qui l'ouvre (en dehors de l'aouverture par un *.wor) la verra avec cette symbolisation
Hors ligne
#3 Fri 07 December 2007 13:40
- dimsen
- Participant occasionnel
- Date d'inscription: 7 Dec 2007
- Messages: 13
Re: transformer automatiquement les points en polygones
Bonjour,
et merci pour la réponse rapide. Le problème c'est que d'après mon expérience, les symboles ont une taille absolue en points indépendante du niveau de zoom, or la carte à créer va servir autant de acte globale que de vue très précise (à l'echelle de la petit dizaine de mètres).
Ce qui fait que lorsque l'on dézoome, les symboles font l'équivalent d'une centaine de mètre de large, se chevauchent, etc... Il m'a semblé que l'interet des polygones justement était de pouvoir leur donner une taille fixe en mètres et donc une taille visuelle relative au zoom.
La solution donnée dans le post proposé semble très bonne... mais je n'ai pas Mapbasic, arf!!! Et difficile de me le procurer, sur cette version il est payant et mon administrateur info n'en a jamais entendu parlé. Donc si quelqu'un avait une solution "MapInfo only", ça serait génial.
En ce qui concerne mes talents de dessinateur de péniche, on va se limiter à un rectangle avec un triangle posé dessus, donc ça devrait pas être le plus dur. L'avantage également c'est que celà permettra de savoir dans quel sens le bateau a accosté, et ainsi savoir si on à affaire à un "bon" ou à un "mauvais" marinier...
@plus
dimsen
Dernière modification par dimsen (Fri 07 December 2007 14:18)
Hors ligne
#4 Fri 07 December 2007 14:21
Re: transformer automatiquement les points en polygones
En ce qui concerne mes talents de dessinateur de péniche, on va se limiter à un rectangle avec un triangle posé dessus, donc ça devrait pas être le plus dur. L'avantage également c'est que celà permettra de savoir dans quel sens le bateau a accosté, et ainsi savoir si on à affaire à un "bon" ou à un "mauvais" marinier...
Pour le plaisir, j'ai dessiné vite fait les parties principales d'une péniche dans un petit TAB ci joint.
Je suis parti sur la base d'une peniche de 40m de long environ.
A vous de jouer, vous pouvez simplifier la forme en fusionnant les 3 polygones (bateau/pont/cabine), je les ai mis pour la representation graphique (et pour m'amuser)
Bonne journée,
Robin.
Hors ligne
#5 Fri 07 December 2007 15:05
- dimsen
- Participant occasionnel
- Date d'inscription: 7 Dec 2007
- Messages: 13
Re: transformer automatiquement les points en polygones
Re bonjour,
et merci pour la péniche! En plus elle respecte à quelques mètres près le gabarit classique...
J'ai peut être trouvé une solution pour MapBasic, j'ai un ami qui possède ce module et qui pourrait donc effectuer l'opération :
Update ma_table Set Obj = Create Rect (X-a,Y+b) (X+c,Y-d)
Mais celà va-t-il créer une table utilisable sur une version MI dépourvue de MapBasic? Auquel cas je pourrais récuperer cette table pour l'intégrer dans mon document...
Si oui, existe-t-il une commande permettant de créer autre chose qu'un rectangle? C'est juste une curiosité, si j'arrive à faire des rectangles automatiquement centrés sur mes coordonées ça serait déjà le top!
Je me permets de poser une autre question dans le prolongement de mon travail, mais si vous le souhaitez je peux créer un autre post, afin d'éviter d'embrouiller le forum : voilà mes coordonées ne tombent pas exactement sur le pont de la péniche localisée, mais quelques mètres à coté (nous avons fait le repérage à partir d'une vedette, pas en montant sur les péniches). Je souhaitais replacer les points/polygones manuellement afin de donner une meilleure impression visuelle. Sur la carte pas de soucis, mais cela ne modifie pas les coordonées dans la table, ce qui aurait été le top.
Voilà en espérant que je n'ai pas trop dépassé les bornes avec toutes mes question de newbie.
bon week end à tous
dimsen
Dernière modification par dimsen (Fri 07 December 2007 15:24)
Hors ligne
#6 Fri 07 December 2007 15:47
- dimsen
- Participant occasionnel
- Date d'inscription: 7 Dec 2007
- Messages: 13
Re: transformer automatiquement les points en polygones
Re bonjour à tous,
bon désolé encore pour ce post à rallonge, mais j'ai quelques précisions à apporter à mon problème : on vient de m'installer MI 7.8 , et oh miracle MapBasic est inclus dedans.
Donc je me dis qu'il me suffit d'appliquer la commande :
Update table_polygones Set Obj = Create Rect (Longitude-5,Latitude+5) (Longitude+10,Latitude-10)
pour que je finisse de vous embeter... Mais bien sûr ce n'est aussi simple, car j'ai un/une "Variable ou Champ Create non défini" (cf copie d'écran jointe au post). Alors bien sûr je pense que ma syntaxe n'est pas bonne, mais j'ai pourtant essayer avec un peu tout (sachant que table_polygones est ma table de test contenant mes coordonnées et Longitude et Latitude sont le nom de mes champs X et Y).
L'aide de MapBasic est assez succinte vous en conviendrez, et mes recherches sur le net ne m'ont pas beaucoup aidé non plus...
Désolé de vous embetez encore une fois, surtout que la solution vous crève peut être les yeux (oubli de guillemets ou d'un membre de la syntaxe), mais là je sèche completement.
Merci par avance à tous ceux qui auront la patience de me lire et encore plus à ceux qui auront celle de m'aider!
@plus
dimsen
Hors ligne
#7 Fri 07 December 2007 16:06
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: transformer automatiquement les points en polygones
...J'ai peut être trouvé une solution pour MapBasic, j'ai un ami qui possède ce module et qui pourrait donc effectuer l'opération :
Update ma_table Set Obj = Create Rect (X-a,Y+b) (X+c,Y-d)
Mais celà va-t-il créer une table utilisable sur une version MI dépourvue de MapBasic? Auquel cas je pourrais récuperer cette table pour l'intégrer dans mon document...
Cette commande peut être passée directement dans la fenêtre MapBasic (menu Options), sans posséder celui-ci,...
MAIS elle est fausse ( c'est moi qui l'ai donnée dans un post !!) et ne donnera rien !!
On peut utiliser des fonctions telles que CreatePoint dans Update ma_table Set Obj = CreatePoint (X,Y), pour passer de polygone à point, mais pas aussi simplement des commandes Create Rect ou Create Region ... ou Create Point
Et il n'y a pas de fonction CreateRect ... il faut donc passer par un programme MapBasic
Je vous mitonne un petit outil mbx si le WE est pluvieux (avec des péniches plus basiques que celle de Robin )
...Sur la carte pas de soucis, mais cela ne modifie pas les coordonées dans la table....
Une fois les rectifications manuelles faites, créer 2 colonne (en flottan) et faites une mise à jour de chacune avec les expressions centroidX(obj) et centroidY(obj)
Prudent de taper avant dans la fenêtre MapBasic: Set CoordSys Table ma-table (puis 'enter sur cette ligne)
[EDIT Maurice] Les posts se sont croisés: vous avez la réponse !! mea culpa
Dernière modification par Maurice (Fri 07 December 2007 16:13)
Hors ligne
#8 Fri 07 December 2007 17:23
- dimsen
- Participant occasionnel
- Date d'inscription: 7 Dec 2007
- Messages: 13
Re: transformer automatiquement les points en polygones
Rebonjour tout le monde,
halala fantastique, merci mille fois Maurice, ces petits centroidX(obj) et centroidY(obj) sont un vrai bonheur. Oui bon beaucoup d'entre vous risquent de me trouver bête de dire ça car c'est peut être une des fonctions de base à savoir mais en tous cas ça me permet de voir mon week end plus sereinement car je me voyais déjà modifier dans la table les coordonées lambert des 200 bateaux (ha celui ci 2 mètres de plus à l'est, et 1,5 de plus au nord, je valide, j'examine le résultat sur la carte puis je remodifie...).
En ce qui concerne la commande basic Create Rect, effectivement je ne la retrouvais nulle part. Pour l'outil mbx ça serait vraiment très cool, mais bon faut pas non plus que ça prenne tout votre week end.
En tous cas pour les péniches un rectangle suffira amplement, pas besoin de beaucoup plus de détails, et au pire je pourrais les remodifier après. Comme je le disais, c'est simplement pour garder une taille de péniche relative au zoom, plutôt que de passer par un symbole qui a une valeur absolue de taille si je ne m'abuse. Si une option permet de faire suivre la taille du symbole par rapport au zoom, alors désolé d'avoir voulu faire compliquer avec mon désir de fonction Update ma_table Set Obj = Create Péniche sous MapBasic.
Merci encore pour votre aide, c'est génial!
MapInfo7.8 is still alive
dimsen
Hors ligne
#9 Sat 08 December 2007 20:32
- hanczyk
- Participant assidu
- Lieu: Châlons-en-Champagne
- Date d'inscription: 21 Apr 2006
- Messages: 596
Re: transformer automatiquement les points en polygones
Bonjour,
dimsen a écrit
MapInfo7.8 is still alive
voici la traduction : MapInfo est encore en vie
Jean-Marc Hanczyk
Hors ligne
#10 Tue 11 December 2007 14:34
- dimsen
- Participant occasionnel
- Date d'inscription: 7 Dec 2007
- Messages: 13
Re: transformer automatiquement les points en polygones
Bonjour à tous,
désolé de revenir à la charge avec ma transformation points=>polygones, mais mes recherches de ce week end m'ont fait aboutir à deux hypothèses :
1) il est impossible d'effectuer la transformation sans passer par un outil MapBasic assez complexe (en tous cas trop complexe pour que je puisse le créer)
2) il me semble qu'il est néanmoins possible de créer (relativement facilement) des points autour d'un point donné en utilisant une commance MapBasic (commande que je ne sais pas non plus créer pour l'instant malheureusement!).
Or il me semble aussi qu'il est possible de tracer un polygone à partir de plusieurs points. Mon idée serait de créer 4 points formant un rectangle autour de mon géoréférencé, puis de créer un polygone à partir de ces points. Pensez vous que celà est réaliste et faisable? Par contre j'ai 165 polygones à créer, mais j'ai peur que le polygone à créer ne soit lui aussi composé par mes 165*4 points créés pour chaque coordonée, alors que je souhaiterais faire un polygone pour chaque couple de coordonnées...
Merci en tous cas à tout le monde qui a pris la peine de me lire et de m'aider!
J'aurais bien voulu réussir à me dépatouiller d'un problème qui semble logique sur le papier, c'est à dire créer un rectangle de 38.5*5.05m ayant pour centroïde un couple de coordonées, mais le cheminement semble ardu!
Merci par avance pour votre, et bonne journée
Dimsen
Hors ligne
#11 Tue 11 December 2007 23:21
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: transformer automatiquement les points en polygones
Désolé de ne pas avoir plus de temps...
Ci-joint un embryon de programme qui s'applique à une table qui est seule ouverte ou "la plus haute" dans le contrôle des couches
Il dessine vos péniches de 39.5 x 5.5 (et je crois n'enregistre pas la table à la fin)
On pourra ajouter une rotation en fonction d'une colonne de la table ...après
Hors ligne
#12 Wed 12 December 2007 23:33
- dimsen
- Participant occasionnel
- Date d'inscription: 7 Dec 2007
- Messages: 13
Re: transformer automatiquement les points en polygones
Salut,
merci mille fois Maurice pour ton aide!
J'ai appliqué l'outil sur ma table, ce qui m'a donné une nouvelle ligne vierge pour chaque bateau. Après quelques essais de requetes SQL j'ai réussi à associer chaque ligne "remplie" d'une autre table aux lignes correspondantes aux polygones, génial!
Bon je manque de connaissances en fusion etc pour avoir fait quelque chose de rapide en ce qui concerne la fusion, car je me retrouve finalement avec 4 doublons pour chaque bateau, mais bon vu le temps économisé avec cette manip je peux me permettre de faire quelques dizaines de suppression de lignes dans la joie et la bonne humeur!
Merci encore, et mention spéciale pour les péniches, on dirait presque des vraies! En tous cas si je peux te rendre la pareille (peut être pas sur MapInfo, mais en Escrime ou en qualité de l'eau j'assure un peu ; ), n'hésite pas!
@plus et encore merci.
dimsen
Hors ligne
#13 Wed 12 December 2007 23:45
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: transformer automatiquement les points en polygones
Désolé pour le côté fruste de l'outil: en sélectionnant à la main les lignes "vides" créées dans la table de données (avec la touche "shift" enfoncée...) et en enregistrant cette sélection comme nouvelle table, on obtient la table des polygones "péniche"
Si on supprime cette sélection, la table de points d'origine reprend son aspect ...d'origine (il faudra quand même la compacter)
ps: qualité de l'eau...pourquoi pas (je travaille sur les pollutions diffuses liées aux pesticides) mais je suis plutôt féru de qualité du vin
Hors ligne