#1 Sun 18 April 2010 19:09
- mangouste
- Participant occasionnel
- Date d'inscription: 6 Sep 2008
- Messages: 21
[Mapinfo 9.5] Relier des points à un autre
Bonjour,
Je sais que quelques messages traitent déjà de ce sujet, mais je n'ai trouvé aucune solution à mon problème.
Je m'explique.
J'ai une table ponctuelle avec les casernes des pompiers avec un identifiant numérique pour chacune d'entre elles.
J'ai une autre table ponctuelle avec toutes les interventions d'une année de toutes les casernes de pompiers, avec l'identifiant de la caserne ayant réalisée l'intervention.
Je cherche donc une méthode pour relier toutes les interventions à leur caserne.
J'ai déjà tenté une approche par ArcGIS 9.3, mais sans réussite:
* Le message d'erreur d'oursin m'empêche donc de l'utiliser, et je ne vois vraiment pas quel est le problème. J'aurais lu qu'il faudrait absolument que les 2 tables aient le m^me nombre de lignes....????
* J'ai essayé avec l'outil de flux, mais celui ci utilise 2 champs d'une même table, ce qui ne me convient pas.
* J'ai essayé avec le logiciel FlowMapper mais il ne gère pas les shapes, et n'a l'air de gérer aucun des formats que je possède...
* Enfin avec Xtools Pro, celui ci converti les points d'une table en polylignes, mais toutes reliées entre elles, et pas reliées au point en question (qui serait le centre de l'oursin)...
Quant à Mapinfo, j'ai essayé avec l'outil Spidergraph, mais lorsqu'il se met à travailler, à créer cette nouvelle table, au bout d'un moment il me met ce message d'erreur, sans en dire plus:
Le traitement a été interrompu.
Datatype mismatch in expression.
Quelqu'un aurait-il une solution s'il vous plait?
Merci,
Simon
Hors ligne
#2 Sun 18 April 2010 19:56
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [Mapinfo 9.5] Relier des points à un autre
Salut,
Une soluce est d'utiliser la fenêtre MapBasic (FMB) couplé à un générateur de script pour créer tous tes oursins.
As tu les coordonnées de tes casernes et celles des interventions?
Le script de base --> update point_table set obj=createline(Start_X, Start_Y,End_X,End_Y)
Utiliser le StartX , StarY --> point des casernes et le EndX, EndY --> points d'interventions.
A+
Joël
Hors ligne
#3 Sun 18 April 2010 20:01
- mangouste
- Participant occasionnel
- Date d'inscription: 6 Sep 2008
- Messages: 21
Re: [Mapinfo 9.5] Relier des points à un autre
Merci pour ta réponse! Une lueur d'espoir!
En effet, dans ma table interventions j'ai une colonne X, et une autre Y, pour chaque intervention, chaque point.
Pour celle des casernes, ce n'est pas le cas.
Comment puis-je créer ces 2 colonnes?
Hors ligne
#4 Sun 18 April 2010 20:09
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [Mapinfo 9.5] Relier des points à un autre
Si tes points casernes existent sur ta carte:
A essayer --> http://testdrive.mapinfo.com/TechSupp/M … =0,extract
Connais tu la FMB et scriptgen?
A+
Joël
Dernière modification par Spacejo (Sun 18 April 2010 20:11)
Hors ligne
#5 Sun 18 April 2010 20:17
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [Mapinfo 9.5] Relier des points à un autre
Voilà un exemple et oû se procurer le scriptgen
--> Regarde Post #14 dans --> http://www.forumsig.org/showthread.php?t=26546
Hors ligne
#6 Sun 18 April 2010 20:18
- mangouste
- Participant occasionnel
- Date d'inscription: 6 Sep 2008
- Messages: 21
Re: [Mapinfo 9.5] Relier des points à un autre
Merci pour l'extractor des coordonnées, ça a bien marché.
Pour le script, c'est que je ne m'y connais vraiment pas...
J'ai donc ouvert la fenêtre MapBasic, et je colle donc cette ligne:
update point_table set obj=createline(Start_X, Start_Y,End_X,End_Y)
Comment lui faire comprendre que Start_X est la "colonne X" de la Table caserne?
Hors ligne
#7 Sun 18 April 2010 20:31
- mangouste
- Participant occasionnel
- Date d'inscription: 6 Sep 2008
- Messages: 21
Re: [Mapinfo 9.5] Relier des points à un autre
Ca n'allait pas être aussi simple que de coller une simple ligne quand même!
J'ai donc installé Scriptgen, et je suis sur le message 14 en train d'essayer de comprendre.
Je vois donc qu'il faut copier et coller dans une fenêtre de "liste de valeurs" ma table.
Je suis en train de la passer sous excel pour supprimer les colonnes et n'avoir au final que celle de X et Y.
Est-ce bien ou je peux laisser toutes les autres colonnes de la table?
Mon problème est que j'ai une palanqué de données (environ 12 000). Ca va marcher?
Hors ligne
#8 Sun 18 April 2010 20:31
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [Mapinfo 9.5] Relier des points à un autre
Le but de la manip est de prendre une caserne puis de créer toutes les lignes vers ses interventions puis de changer de caserne et ainsi de suite.
Donc faire la manip pour une caserne et utiliser une liste pour les suivantes.
Tout d'abord une sélection des interventions selon la première caserne --> Select * from Ta_Table interventions where CODE_Caserne=1 into SEL1
Puis utiliser les coordonnées de la première caserne (X,Y) vers SEL1
update Ta_Table_Interventions Set obj = createline(XpremièreCaserne,YpremièreCaserne,ColonneXSEL1,ColonneYSEL1)
Dernière modification par Spacejo (Sun 18 April 2010 20:32)
Hors ligne
#9 Sun 18 April 2010 20:41
- mangouste
- Participant occasionnel
- Date d'inscription: 6 Sep 2008
- Messages: 21
Re: [Mapinfo 9.5] Relier des points à un autre
J'ai une erreur dans la ligne de commande
update emergencias_incendios2 Set obj = createline(266722,75,8666089,1,XSelection,YSelection)
J'ai tenté d'enlever les décimales, car je me dis qu'ave toutes ces virgules il ne doit pas savoir quand je change de données, mais c'est pareil...
Hors ligne
#10 Sun 18 April 2010 20:45
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [Mapinfo 9.5] Relier des points à un autre
Attention tes coordonnées avec un "." pour les décimales la virgule sert à la séparation des données
Dernière modification par Spacejo (Sun 18 April 2010 20:46)
Hors ligne
#11 Sun 18 April 2010 20:50
- mangouste
- Participant occasionnel
- Date d'inscription: 6 Sep 2008
- Messages: 21
Re: [Mapinfo 9.5] Relier des points à un autre
J'ai changé la virgule par un point.
Il me met ce message d'erreur:
Variable or Field XSelection not defined.
J'ai l'impression qu'il n'identifie pas ce qu'est "XSelection"
Hors ligne
#12 Sun 18 April 2010 20:54
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [Mapinfo 9.5] Relier des points à un autre
XSelection correspond à ta colonne de tes X dans ta table_Inyterventions?
Hors ligne
#13 Sun 18 April 2010 20:55
- mangouste
- Participant occasionnel
- Date d'inscription: 6 Sep 2008
- Messages: 21
Re: [Mapinfo 9.5] Relier des points à un autre
Dans ma table interventions, la colonne des X s'appelle X
Hors ligne
#14 Sun 18 April 2010 20:59
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [Mapinfo 9.5] Relier des points à un autre
Essaye:
Code:
Select * from emergencias_incendios2 where CODE_Caserne=1 into SEL1 update SEL1 Set obj = createline(266722.75, 8666089.1, X, Y)
Tout le code sélectionné dans la FMB puis "Exe"
Dernière modification par Spacejo (Sun 18 April 2010 21:05)
Hors ligne
#15 Sun 18 April 2010 21:03
- mangouste
- Participant occasionnel
- Date d'inscription: 6 Sep 2008
- Messages: 21
Re: [Mapinfo 9.5] Relier des points à un autre
Select * from emergencias_incendios2 where Alias="1" into SEL1
update SEL1 Set obj createline(266722.75, 8666089.1, X, Y)
Je mets des guillemets autour du 1 car sinon ça marche pas.
En mettant ce code d'un coup (et en selectionnant les 2 lignes avant de faire ENTRER) maintenant il me met ce message d'erreur:
Found [createline] while searching for [=]
Dernière modification par mangouste (Sun 18 April 2010 21:05)
Hors ligne
#16 Sun 18 April 2010 21:06
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [Mapinfo 9.5] Relier des points à un autre
Oupss il manque le "=" j'ai corrigé au dessus
Hors ligne
#17 Sun 18 April 2010 21:09
- mangouste
- Participant occasionnel
- Date d'inscription: 6 Sep 2008
- Messages: 21
Re: [Mapinfo 9.5] Relier des points à un autre
Avec le = je n'ai plus de message d'erreur.
Une fenetre ou la barre bleue avance apparait un très court instant et rien d'autre...
Hors ligne
#18 Sun 18 April 2010 21:11
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [Mapinfo 9.5] Relier des points à un autre
Tu n'as pas sur ta carte les lignes qui partent de ta caserne vers les autres points?
As tu crées sur ta carte les points correspondant à tes interventions?
Dernière modification par Spacejo (Sun 18 April 2010 21:11)
Hors ligne
#19 Sun 18 April 2010 21:12
- mangouste
- Participant occasionnel
- Date d'inscription: 6 Sep 2008
- Messages: 21
Re: [Mapinfo 9.5] Relier des points à un autre
Mes casernes sont dans une autre table
Il ne faudrait pas changer le X et Y de : update SEL1 Set obj createline(266722.75, 8666089.1, X, Y)
par quelque chose qui dit d'aller chercher dans l'autre table?
Hors ligne
#20 Sun 18 April 2010 21:16
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [Mapinfo 9.5] Relier des points à un autre
Tu travailles sur ta table interventions non?
Ta table caserne, tu n'en as pas besoin dans les requètes car tu mets directement les coordonnées de tes casernes en manuel
ou avec le scriptgen via une liste.
Hors ligne
#21 Sun 18 April 2010 21:16
- mangouste
- Participant occasionnel
- Date d'inscription: 6 Sep 2008
- Messages: 21
Re: [Mapinfo 9.5] Relier des points à un autre
En effet, en réfléchissant, je n'ai pas besoin de ma table caserne...
Donc non, pas de trais qui s'affichent après ce code..
Oui je travaille bien avec la table interventions
-----
Pardon je m'y perds...
Je veux dire que le X et le Y sont à aller chercher dans la table intervention?
Ou en tout cas de dire que les coordonnées indiquées sont dans la table des casernes...
Dernière modification par mangouste (Sun 18 April 2010 21:18)
Hors ligne
#22 Sun 18 April 2010 21:19
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [Mapinfo 9.5] Relier des points à un autre
On essaye pour l'instant de faire la manip pour une caserne.
Select * from emergencias_incendios2 where CODE_Caserne=1 into SEL1 <---- Tu sélectionnes toutes les interventions de la première caserne que tu mets dans "SEL1"
update SEL1 Set obj = createline(266722.75, 8666089.1, X, Y) <--- Puis tu crées toutes les lignes qui partent des coordonnées de ta première caserne vers ses interventions
Fais un rafraichissement d'écran "F5"
Dernière modification par Spacejo (Sun 18 April 2010 21:21)
Hors ligne
#23 Sun 18 April 2010 21:25
- mangouste
- Participant occasionnel
- Date d'inscription: 6 Sep 2008
- Messages: 21
Re: [Mapinfo 9.5] Relier des points à un autre
En effet, c'est bien la manip que je réalise, mais rien.
Je viens de penser à rendre la couche modifiable, mais c'est pareil...
[img]http://nsa14.casimages.com/img/2010/04/18/mini_100418092654141254.jpg[/img]
Hors ligne
#24 Sun 18 April 2010 21:29
- mangouste
- Participant occasionnel
- Date d'inscription: 6 Sep 2008
- Messages: 21
Re: [Mapinfo 9.5] Relier des points à un autre
Mes champs X et Y sont en Float.
Je ne sais pas si ça viendrait de là...?
Hors ligne
#25 Sun 18 April 2010 21:31
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [Mapinfo 9.5] Relier des points à un autre
Une manip à faire --> enregistres ta SEL1 puis dans la FMB la requète
Code:
Set coordsys Table SEL1 Update SEL1 Set obj = createline(266722.75, 8666089.1, X, Y)
Dernière modification par Spacejo (Sun 18 April 2010 21:33)
Hors ligne
#26 Sun 18 April 2010 21:38
- mangouste
- Participant occasionnel
- Date d'inscription: 6 Sep 2008
- Messages: 21
Re: [Mapinfo 9.5] Relier des points à un autre
Yessssssssssssssss!!!!!!!!!!!!!!!!!
Hors ligne
#27 Sun 18 April 2010 21:39
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [Mapinfo 9.5] Relier des points à un autre
La ligne "Set Coordsy Table SEL1" force la FMB à prendre la projection de ta table
Hors ligne
#28 Sun 18 April 2010 21:41
- mangouste
- Participant occasionnel
- Date d'inscription: 6 Sep 2008
- Messages: 21
Re: [Mapinfo 9.5] Relier des points à un autre
Merci beaucoup Joël!
Hors ligne
#29 Sun 18 April 2010 21:53
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [Mapinfo 9.5] Relier des points à un autre
Maintenant que tu as fait pour une caserne, il te suffit de sortir la liste de tes coordonnées en .txt
avec --> Select ColonneX, ColonneY from Ta_Table_caserne into Resultat
puis d'exporter "Resultat" en .txt et de coller ça dans le scriptgen
Avec comme script de base
Select * from emergencias_incendios2 where CODE_Caserne=ZZZZ into SELZZZZ
Update SELZZZZ Set obj = createline(XXXX, YYYY, X, Y)
Cocher utilser une liste de valeurs ---> Mettre dans valeurs : XXXX;YYYY;ZZZZ
Puis insérer ta liste dans l'onglet "liste" avec les coordonnées comme ceci:
X1;Y1;1
X2;Y2;2
etc...
Et enfin tu généres ton script final qui reprendra toutes tes requètes.
Un copier coller dans la FMB puis tu sélectionnes tout le code et "Exe"
Cela devrait le faire
Bonne soirée
Dernière modification par Spacejo (Sun 18 April 2010 22:02)
Hors ligne
#30 Sun 18 April 2010 22:38
- mangouste
- Participant occasionnel
- Date d'inscription: 6 Sep 2008
- Messages: 21
Re: [Mapinfo 9.5] Relier des points à un autre
Super niquel!
Ca a marché impeccable!
Un grand merci!!!
Si un jour quelqu'un passe par là et qu'il a besoin grossomodo de faire la même chose que moi, je résume la démarche:
1- faire un test avec un seul oursin, une première entité (entité numéro 1 dans notre exemple)
Select * from nom_de_votre_table where nom_de_la_colonne="1" into SEL1
Set coordsys Table SEL1
Update SEL1 Set obj = createline(coordonnéesX, coordonnéesY, X, Y)
- Où coordonnées X et coordonnées Y sont les coord. des centres des oursins (ici les coord. de l'entité 1)
- X et Y sont les noms des colonnes où sont renseignés les coordonnées de caque extrémité de l'oursin
Si ca a marché on passe au point 2, sinon reprendre tout le déroulé de notre conversation.
2- Télécharger Scriptgen http://www.forumsig.org/attachment.php? … 1263298677
3- et le script de base (à mettre dans l'onglet script de base)
Select * from nom_de_votre_table where nom_de_votre_colonne="ZZZZ" into SELZZZZ
Set coordsys Table SELZZZZ
Update SELZZZZ Set obj = createline(XXXX, YYYY, X, Y)
Dans l'onglet "Liste des valeurs", mettre toutes les coordonnées comme par exemple:
280173.42;8656396.77;16
On a: XXXX;YYYY;entité numéro 16
Bien regarder les 3 screen du post #14 : http://www.forumsig.org/showthread.php?t=26546 (surtout cocher en bas: utiliser plusieurs valeurs à remplacer et mettre nos 3 valeurs changeantes: XXXX;YYYY;ZZZZ), celles que l'on retrouve renseignées, écrites de la même façcon dans l'onglet "Liste des valeurs".
Voilà, si j'ai mal résumé, et je pense que c'est le cas, une lecture de notre conversation vous permettra j'espère d'y arriver.
Je peux continuer sur mon analyse, et je remercie encore Joël pour sa précieuse aide!
Dernière modification par mangouste (Sun 18 April 2010 22:50)
Hors ligne