Annonce
Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !
10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …
Retrouver nos membres bienfaiteurs
#1 Tue 07 January 2014 16:43
- bill08
- Participant assidu
- Date d'inscription: 27 May 2011
- Messages: 171
Afficher longueur de la polyligne dans la table
Bonjour à tous et à toutes,
J'ai un petit souci avec l'affichage des données métriques de ma table :
Dans une table X, j'ai différentes colonnes dont une qui doit me donner le linéaire des polylignes tracées. Jusqu'à ce jour, chaque nouvelle polyligne une fois tracée se rajoutait logiquement dans ma table et de mémoire le linéaire s'affichait dans la colonne prévue à cet effet.
Hier je trace de nouvelles polylignes dans la table générale et le linéaire de ces nouvelles polylignes se met à 0.
J'ai donc en tout logique voulu faire ma mise à jour de colonne (donc soit clic droit dans la table ou "table, mettre à jour colonne")...
Je met donc :
Table à mettre à jour : la table
Utiliser une colonne de la table : la table
Colonne à mettre à jour : la colonne "Linéaire"
Valeur : "Linéaire" (comme ci dessus) = ObjectLen(obj, "m") (j'ai essayé avec CartesianObjectLen(obj, "m") en sachant que j'ai remplacé le "mi" par m comme on peut le voir.
Que je fasse avec Objectlen ou CartesianObjectLen, l'ensemble des données de ma colonne "Linéaire" passe à 0 (du coup les dernières polylignes restent à 0).
Est-ce moi qui ai loupé quelque chose ? que dois-je faire pour que le linéaire s'affiche ?
Merci par avance
et Meilleurs vœux
Hors ligne
#2 Tue 07 January 2014 17:12
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Afficher longueur de la polyligne dans la table
Salut,
As tu essayé de passer par la FMB?
Avec ceci:
Code:
Set coordsys Table TaTable Select * from TaTable where TaColonneMesure=0 into AModifier update AModifier Set TaColonneMesure=CartesianObjectLen(obj, "m")
PS:Sélectionner tout le code dans la FMB avant de valider
A+
Joël
Dernière modification par Spacejo (Tue 07 January 2014 17:13)
Hors ligne
#3 Tue 07 January 2014 17:38
- bill08
- Participant assidu
- Date d'inscription: 27 May 2011
- Messages: 171
Re: Afficher longueur de la polyligne dans la table
Non je n'ai pas essayé avec la FMB et surtout, je ne connais pas donc il va falloir me détailler un peu pour que j'essaie cette manipulation ^^
Merci par avance
Hors ligne
#4 Tue 07 January 2014 17:49
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Afficher longueur de la polyligne dans la table
Alors la FMB (Fenêtre MapBasic) -> C'est un poste de pilotage de Mapinfo en lignes de commande.
Pour l'ouvrir -> Options -> Afficher Fenêtre MapBasic.
Il te suffit de copier le code que je t'ai posté (avec les modifs qui vont bien -> TaTable, TaColonneMesure par tes propres noms)
Puis tu colles le tout dans la FMB, tu sélectionnes tout le code (sinon la FMB ne prendra en compte que la dernière ligne)
Puis tu valides
J'espère être clair
A+
Joël
Hors ligne
#5 Wed 08 January 2014 08:45
- bill08
- Participant assidu
- Date d'inscription: 27 May 2011
- Messages: 171
Re: Afficher longueur de la polyligne dans la table
Bonjour (et oui, nouvelle journée oblige),
J'ai fais la manipulation prévue, mais après avoir sélectionné le code et appuyé sur "ENTRER", ca me met "table "Amodifier" absente. J'ai par hasard refait "ENTRER" et ca a marché (j'ai du le faire 2 fois pour que ca marche). Bref, ca semble réglé, cependant, y a-t-il une explication à ce problème/changement ?
à priori, ca marche donc tout baigne, en tout cas merci
Code:
Set coordsys Table propo_clôtures Select * from propo_clôtures where Linéaire_m=0 into AModifier update AModifier Set Linéaire_m=CartesianObjectLen(obj, "m")Browse * From propo_clôtures
Hors ligne
#6 Wed 08 January 2014 14:51
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Afficher longueur de la polyligne dans la table
Salut,
Non je n'ai pas d'explication pour le moment.
C'est bien la première fois que pour ces lignes de commande j'entende parler d'un tel message d'erreur .
Car AModifier dans mon exemple n'est pas une table mais une sélection de la Table "propo_clôtures".
Pour traduire les lignes de commande:
---> Set coordsys Table propo_clôtures : Force la FMB à prendre la projection de ta table "propo_clôtures".
---> Select * from propo_clôtures where Linéaire_m=0 into AModifier : Sélection des lignes ayant 0 pour valeur dans leur champ "Linéaire_m"
---> update AModifier Set Linéaire_m=CartesianObjectLen(obj, "m") : Modification uniquement pour la sélection "AModifier" en attribuant la valeur du linéaire à la place du "0".
Voilà pour quelques explications
A+
Joël
Dernière modification par Spacejo (Wed 08 January 2014 14:52)
Hors ligne
#7 Wed 08 January 2014 15:01
- bill08
- Participant assidu
- Date d'inscription: 27 May 2011
- Messages: 171
Re: Afficher longueur de la polyligne dans la table
OK merci bien pour ce complément d'information
en clair je devrai refaire cette manip à chaque fois je crains...vu que ca me remet toujours 0 pour mes nouvelles polylignes -_-
si des fois une solution pour revenir à la normale existe, je suis preneur ^^
merci encore
Hors ligne
#8 Wed 08 January 2014 18:27
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Afficher longueur de la polyligne dans la table
Salut,
Tu veux dire que lorsque tu finis une polyligne, le calcul de ta longueur se fait tout seul ?
A+
Joël
Hors ligne
#9 Mon 13 January 2014 14:27
- bill08
- Participant assidu
- Date d'inscription: 27 May 2011
- Messages: 171
Re: Afficher longueur de la polyligne dans la table
Bonjour,
Effectivement, l'idée était que la colonne linéaire se MAJ automatiquement dès qu'une nouvelle polyligne est créée.
Hors ligne
#10 Mon 13 January 2014 15:17
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Afficher longueur de la polyligne dans la table
Y'a t'il un outil qui fonctionne en tâche de fond?
C'est peut être lui qui n'est plus actif à l'ouverture de Mapinfo.
A+
Joël
Hors ligne
#11 Mon 13 January 2014 16:07
- bill08
- Participant assidu
- Date d'inscription: 27 May 2011
- Messages: 171
Re: Afficher longueur de la polyligne dans la table
un outil qui fonctionne en fond ? sur mapinfo ou quelque chose sans rapport avec mapinfo ? (style, je dis une betise, excel?)
sinon, en ce qui concerne mapinfo, j'ouvre mes doc "normalement" comme toujours. Et le problème reste en place malgré l'extinction du pc en fin de journée et sa réouverture le lendemain.
donc je ne sais pas ce qu'il faudrait faire fonctionner ou non pour que ca marche.
Hors ligne
#12 Mon 13 January 2014 16:22
Re: Afficher longueur de la polyligne dans la table
Bonjour,
la solution consisterait peut-être à écrire la requête proposée par Spacejo dans le document .wor : à chaque ouverture du doc. la mise à jour se fait.
Cordialement,
Jean-François Behm, formateur SIG, jf.behm@, idgeo.frformations@ idgeo.fr
IDGEO, www.idgeo.fr
Institut de Développement de la Géomatique 42, avenue de Général de Croutte - 31100 toulouse
Hors ligne
#13 Mon 13 January 2014 16:31
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Afficher longueur de la polyligne dans la table
OK avec toi Jean François -> Pour une mise à jour par ouverture de .wor.
Mais un calcul en temps réel dés la fin de la création de la polyligne.
Je ne vois qu'un outil en tâche de fond qui se charge à l'ouverture de Mapinfo.
-> Outils -> Gestionnaire d'outils --> Dans la grille d'outils, il devait avoir un outil qui était en (Autoload) et qui ne l'est plus.
Pour ma part je ne vois que celà (avec les infos que tu nous a données Bill08)
Une solution intermédiaire possible ---> mapupdate ---> http://www.mapinfotools.com/index.php?o … ;Itemid=53
A+
Joël
Dernière modification par Spacejo (Tue 14 January 2014 09:09)
Hors ligne
#14 Wed 15 January 2014 17:18
- bill08
- Participant assidu
- Date d'inscription: 27 May 2011
- Messages: 171
Re: Afficher longueur de la polyligne dans la table
Bonjour,
effectivement, pas d'autoload dans mon gestionnaire d'outils (d'ailleurs, au passage, la quasi totalité de mes outils sont en Francais, mais il n'y a pas d'outil en Français qui ressemble de prêt ou de loin à une traduction d'autoload). J'ai un truc nommé easyloader pour mapinfo qui est totalement décoché.
je vais voir à télécharger l'update pour réavoir cet outil (faut-il effectuer une manip ensuite ? télécharger puis dans Mapinfo, gestionnaire d'outils, ajouter je suppose ?)
merci bien
Hors ligne
#15 Wed 15 January 2014 18:24
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Afficher longueur de la polyligne dans la table
Salut,
Aprés avoir téléchargé l'outil "mapupdate".
Tu décompresses l'archive puis tu places "mapupdate.MBX" dans ton dossier d'outils.
Par défaut, il se trouve ici --> C:\Program Files\MapInfo\Professional\Tools
Puis: Outils --> Gestionnaire d'outils --> Ajouter Outil --> Tu lui donnes un titre --> tu vas le localiser avec le "parcourir" (...)
La case loaded sera cochée -> tu peux cocher aussi l'autoload si tu veux le charger automatiquement à l'ouverture de Mapinfo.
Ensuite concernant l'outil.
Outil -> MapUpdate -> Manage Functions -> Tu choisis la table surlaquelle tu veux le calcul de Longueur.
Puis -> "Add" -> Tu donnes un Nom à ta commande (Calcul Longueur par exemple) -> Tu choisis le champ sur lequel tu veux le calcul ->
Dans "expression" tu colles -> CartesianObjectLen(obj, "m").
Aprés c'est à toi de choisir avec les options proposées.
Il te suffiras aprés digitalisation de plusieurs polylignes de faire Outils -> MapUpdate -> et la commande Update qui te convient.
PS:Attention il y a la possibilité de cocher "Auto Commit" enregistrement automatique de la table.Si c'est coché pas de retour possible en arrière (pas de message "voulez vous enregistrer" )
En espérant être clair
A+
Joël
Dernière modification par Spacejo (Wed 15 January 2014 18:26)
Hors ligne
#16 Tue 28 January 2014 15:07
- bill08
- Participant assidu
- Date d'inscription: 27 May 2011
- Messages: 171
Re: Afficher longueur de la polyligne dans la table
Bonjour,
A priori ca semble marcher, (désolé du temps de retour, je n'avais pas eu le temps de remettre le nez dans le SIG).
Merci en tout cas du coup de main
Cordialement
EDIT : un message d'erreur apparait une fois que j'ai fais la manip pour que mon linéaire s'affiche après avoir créé de nouvelles polylignes :
ca me met :
"Nom de ma table"(Nom de ma colonne linéaire) : updating errors.
A priori, ca marche quand meme puisque mes linéaires passent de "0" à une distance X
est-ce inquiétant ?
Dernière modification par bill08 (Tue 28 January 2014 15:14)
Hors ligne
#17 Thu 30 January 2014 10:48
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Afficher longueur de la polyligne dans la table
Salut,
Je pense que ce message d'erreur vient des options que tu as peut être cocher dans l'outil.
A+
Joël
Dernière modification par Spacejo (Thu 30 January 2014 10:50)
Hors ligne